MCPcopy
hub / github.com/pydantic/pydantic / _copy_and_set_values

Function _copy_and_set_values

pydantic/deprecated/copy_internals.py:98–120  ·  view source on GitHub ↗
(
    self: Model,
    values: dict[str, Any],
    fields_set: set[str],
    extra: dict[str, Any] | None = None,
    private: dict[str, Any] | None = None,
    *,
    deep: bool,  # UP006
)

Source from the content-addressed store, hash-verified

96
97
98def _copy_and_set_values(
99 self: Model,
100 values: dict[str, Any],
101 fields_set: set[str],
102 extra: dict[str, Any] | None = None,
103 private: dict[str, Any] | None = None,
104 *,
105 deep: bool, # UP006
106) -> Model:
107 if deep:
108 # chances of having empty dict here are quite low for using smart_deepcopy
109 values = deepcopy(values)
110 extra = deepcopy(extra)
111 private = deepcopy(private)
112
113 cls = self.__class__
114 m = cls.__new__(cls)
115 _object_setattr(m, '__dict__', values)
116 _object_setattr(m, '__pydantic_extra__', extra)
117 _object_setattr(m, '__pydantic_fields_set__', fields_set)
118 _object_setattr(m, '__pydantic_private__', private)
119
120 return m
121
122
123@typing.no_type_check

Callers

nothing calls this directly

Calls 1

__new__Method · 0.45

Tested by

no test coverage detected