(
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,
)
| 122 | |
| 123 | @typing.no_type_check |
| 124 | def _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), |
no test coverage detected