Skip to content

Commit c2e3804

Browse files
committed
Replace model_fields
1 parent 76ee619 commit c2e3804

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

pydantic_settings/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ class CliAppBaseSettings(BaseSettings, model_cls): # type: ignore
572572

573573
model = CliAppBaseSettings(**model_init_data)
574574
model_init_data = {}
575-
for field_name, field_info in model.__pydantic_fields__.items():
575+
for field_name, field_info in type(model).model_fields.items():
576576
model_init_data[_field_name_for_signature(field_name, field_info)] = getattr(model, field_name)
577577

578578
return CliApp._run_cli_cmd(model_cls(**model_init_data), cli_cmd_method_name, is_required=False)

pydantic_settings/sources/base.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ def __init__(self, settings_cls: type[BaseSettings], nested_model_default_partia
227227
else self.config.get('nested_model_default_partial_update', False)
228228
)
229229
if self.nested_model_default_partial_update:
230-
for field_name, field_info in settings_cls.model_fields.items():
230+
for field_name, field_info in settings_cls.__pydantic_fields__.items():
231231
alias_names, *_ = _get_alias_names(field_name, field_info)
232232
preferred_alias = alias_names[0]
233233
if is_dataclass(type(field_info.default)):
@@ -408,13 +408,13 @@ class Settings(BaseSettings):
408408
break
409409

410410
# This is here to make mypy happy
411-
# Item "None" of "Optional[Type[Any]]" has no attribute "model_fields"
412-
if not annotation or not hasattr(annotation, 'model_fields'):
411+
# Item "None" of "Optional[Type[Any]]" has no attribute "__pydantic_fields__"
412+
if not annotation or not hasattr(annotation, '__pydantic_fields__'):
413413
values[name] = value
414414
continue
415415

416416
# Find field in sub model by looking in fields case insensitively
417-
for sub_model_field_name, f in annotation.model_fields.items():
417+
for sub_model_field_name, f in annotation.__pydantic_fields__.items():
418418
if not f.validation_alias and sub_model_field_name.lower() == name.lower():
419419
sub_model_field = f
420420
break
@@ -470,7 +470,7 @@ def _get_resolved_field_value(self, field: FieldInfo, field_name: str) -> tuple[
470470
def __call__(self) -> dict[str, Any]:
471471
data: dict[str, Any] = {}
472472

473-
for field_name, field in self.settings_cls.model_fields.items():
473+
for field_name, field in self.settings_cls.__pydantic_fields__.items():
474474
try:
475475
field_value, field_key, value_is_complex = self._get_resolved_field_value(field, field_name)
476476
except Exception as e:

pydantic_settings/sources/providers/dotenv.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def __call__(self) -> dict[str, Any]:
112112
if not env_value or env_name in data:
113113
continue
114114
env_used = False
115-
for field_name, field in self.settings_cls.model_fields.items():
115+
for field_name, field in self.settings_cls.__pydantic_fields__.items():
116116
for _, field_env_name, _ in self._extract_field_info(field, field_name):
117117
if env_name == field_env_name or (
118118
(

pydantic_settings/sources/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def _annotation_is_complex(annotation: type[Any] | None, metadata: list[Any]) ->
4545
# evaluate the complexity.
4646
if annotation is not None and _lenient_issubclass(annotation, RootModel) and annotation is not RootModel:
4747
annotation = cast('type[RootModel[Any]]', annotation)
48-
root_annotation = annotation.model_fields['root'].annotation
48+
root_annotation = annotation.__pydantic_fields__['root'].annotation
4949
if root_annotation is not None:
5050
annotation = root_annotation
5151

0 commit comments

Comments
 (0)