From 170c68df399edba6e94a61f5a9b72c62517791f1 Mon Sep 17 00:00:00 2001 From: Michael Makukha Date: Wed, 28 Aug 2024 21:02:07 +0300 Subject: [PATCH] Fix potential problem --- pydantic_settings/sources.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pydantic_settings/sources.py b/pydantic_settings/sources.py index 2ff0dad..4e6966b 100644 --- a/pydantic_settings/sources.py +++ b/pydantic_settings/sources.py @@ -595,8 +595,7 @@ def __call__(self) -> dict[str, Any]: return secrets secrets_dirs = [self.secrets_dir] if isinstance(self.secrets_dir, (str, os.PathLike)) else self.secrets_dir - # directories reversed to match the last-wins behaviour of `env_file` - self.secrets_paths = list(reversed([Path(p).expanduser() for p in secrets_dirs])) + self.secrets_paths = [Path(p).expanduser() for p in secrets_dirs] for path in self.secrets_paths: if not path.exists(): @@ -643,7 +642,8 @@ def get_field_value(self, field: FieldInfo, field_name: str) -> tuple[Any, str, """ for field_key, env_name, value_is_complex in self._extract_field_info(field, field_name): - for secrets_path in self.secrets_paths: + # pathss reversed to match the last-wins behaviour of `env_file` + for secrets_path in reversed(self.secrets_paths): path = self.find_case_path(secrets_path, env_name, self.case_sensitive) if not path: # path does not exist, we currently don't return a warning for this