From 55ff1e5d25049a7120f11a882a05204610f6f840 Mon Sep 17 00:00:00 2001 From: Julian Vanden Broeck Date: Tue, 1 Oct 2024 09:04:17 +0200 Subject: [PATCH] Raise error if settings from file are not a dict We verify the loaded settings from files is dict, otherwise we raise a SettingsError. With that change, we make Pydantic fails a bit faster. --- pydantic_settings/sources.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pydantic_settings/sources.py b/pydantic_settings/sources.py index 6c43994..01b45d6 100644 --- a/pydantic_settings/sources.py +++ b/pydantic_settings/sources.py @@ -1921,6 +1921,10 @@ def _read_files(self, files: PathType | None) -> dict[str, Any]: settings = self._read_file(file_path) except ValueError as e: raise SettingsError(f'Failed to parse settings from {file_path}, {e}') + if not isinstance(settings, dict): + raise SettingsError( + f'Failed to parse settings from {file_path}, expecting an object (valid dictionnary)' + ) vars.update(settings) return vars