From 55f6175f02b8fea3c2fc7ca846c8008fd92f8978 Mon Sep 17 00:00:00 2001 From: Viicos <65306057+Viicos@users.noreply.github.com> Date: Fri, 24 Jan 2025 11:42:20 +0100 Subject: [PATCH] Avoid using `Any` in `BaseSettings` signature to avoid mypy errors When `--disallow-any-explicit`, this raises a mypy error when using the plugin (which synthesizes the `__init__` method). Also use PEP 570 positional only argument for `self`. --- pydantic_settings/main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pydantic_settings/main.py b/pydantic_settings/main.py index f376361..ad5080c 100644 --- a/pydantic_settings/main.py +++ b/pydantic_settings/main.py @@ -140,7 +140,8 @@ class BaseSettings(BaseModel): """ def __init__( - __pydantic_self__, + self, + /, _case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, @@ -152,7 +153,7 @@ def __init__( _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, - _cli_settings_source: CliSettingsSource[Any] | None = None, + _cli_settings_source: CliSettingsSource[object] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, @@ -167,9 +168,8 @@ def __init__( _secrets_dir: PathType | None = None, **values: Any, ) -> None: - # Uses something other than `self` the first arg to allow "self" as a settable attribute super().__init__( - **__pydantic_self__._settings_build_values( + **self._settings_build_values( values, _case_sensitive=_case_sensitive, _nested_model_default_partial_update=_nested_model_default_partial_update,