MCPcopy
hub / github.com/pydantic/pydantic / _get_value

Function _get_value

pydantic/deprecated/copy_internals.py:124–195  ·  view source on GitHub ↗
(
    cls: type[BaseModel],
    v: Any,
    to_dict: bool,
    by_alias: bool,
    include: AbstractSetIntStr | MappingIntStrAny | None,
    exclude: AbstractSetIntStr | MappingIntStrAny | None,
    exclude_unset: bool,
    exclude_defaults: bool,
    exclude_none: bool,
)

Source from the content-addressed store, hash-verified

122
123@typing.no_type_check
124def _get_value(
125 cls: type[BaseModel],
126 v: Any,
127 to_dict: bool,
128 by_alias: bool,
129 include: AbstractSetIntStr | MappingIntStrAny | None,
130 exclude: AbstractSetIntStr | MappingIntStrAny | None,
131 exclude_unset: bool,
132 exclude_defaults: bool,
133 exclude_none: bool,
134) -> Any:
135 from .. import BaseModel
136
137 if isinstance(v, BaseModel):
138 if to_dict:
139 return v.model_dump(
140 by_alias=by_alias,
141 exclude_unset=exclude_unset,
142 exclude_defaults=exclude_defaults,
143 include=include, # type: ignore
144 exclude=exclude, # type: ignore
145 exclude_none=exclude_none,
146 )
147 else:
148 return v.copy(include=include, exclude=exclude)
149
150 value_exclude = _utils.ValueItems(v, exclude) if exclude else None
151 value_include = _utils.ValueItems(v, include) if include else None
152
153 if isinstance(v, dict):
154 return {
155 k_: _get_value(
156 cls,
157 v_,
158 to_dict=to_dict,
159 by_alias=by_alias,
160 exclude_unset=exclude_unset,
161 exclude_defaults=exclude_defaults,
162 include=value_include and value_include.for_element(k_),
163 exclude=value_exclude and value_exclude.for_element(k_),
164 exclude_none=exclude_none,
165 )
166 for k_, v_ in v.items()
167 if (not value_exclude or not value_exclude.is_excluded(k_))
168 and (not value_include or value_include.is_included(k_))
169 }
170
171 elif _utils.sequence_like(v):
172 seq_args = (
173 _get_value(
174 cls,
175 v_,
176 to_dict=to_dict,
177 by_alias=by_alias,
178 exclude_unset=exclude_unset,
179 exclude_defaults=exclude_defaults,
180 include=value_include and value_include.for_element(i),
181 exclude=value_exclude and value_exclude.for_element(i),

Callers 1

_iterFunction · 0.85

Calls 6

model_dumpMethod · 0.45
copyMethod · 0.45
for_elementMethod · 0.45
itemsMethod · 0.45
is_excludedMethod · 0.45
is_includedMethod · 0.45

Tested by

no test coverage detected