def _synthesise_field_init()

in chz/data_model.py [0:0]


def _synthesise_field_init(f: Field, out_vars: dict[str, Any]) -> tuple[str, str]:
    # This function modifies out_vars
    var_type = f"__chz_{f.logical_name}"
    out_vars[var_type] = f._raw_type

    var_default = f"__chz_dflt_{f.logical_name}"
    if f._default_factory is not MISSING:
        out_vars[var_default] = f._default_factory
        value = f"{var_default}() if {f.logical_name} is __chz_MISSING else {f.logical_name}"
        dflt_expr = " = __chz_MISSING"
    elif f._default is not MISSING:
        out_vars[var_default] = f._default
        # Is it ever useful to explicitly pass MISSING?
        # value = f"{var_default} if {f.logical_name} is __chz_MISSING else {f.logical_name}"
        value = f.logical_name
        dflt_expr = f" = {var_default}"
    else:
        value = f.logical_name
        dflt_expr = ""

    arg = f"{f.logical_name}: {var_type}{dflt_expr}"
    body = f"__chz_builtins.object.__setattr__(self, {f.x_name!r}, {value})"

    return arg, body