Skip to content

Commit 8ea89bb

Browse files
committed
chore: rename AwsSsmSourceConfig to AwsSsmBaseSettings
1 parent 9b495c6 commit 8ea89bb

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

pydantic_ssm_settings/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .settings import AwsSsmSourceConfig, SsmSettingsConfigDict
1+
from .settings import AwsSsmBaseSettings, SsmSettingsConfigDict
22
from .source import AwsSsmSettingsSource
33

44
__all__ = ("AwsSsmSourceConfig", "SsmSettingsConfigDict", "AwsSsmSettingsSource")

pydantic_ssm_settings/settings.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,29 @@ class SsmSettingsConfigDict(SettingsConfigDict):
1919
ssm_prefix: str
2020

2121

22-
class BaseSettingsSsmWrapper(BaseSettings):
22+
class AwsSsmBaseSettings(BaseSettings):
2323
"""
24-
Wrapper to store the _ssm_prefix parameter as an instance attribute.
25-
Need a direct access to the attributes dictionary to avoid raising an AttributeError:
26-
__pydantic_private__ exception
24+
Helper to configure the AWS SSM source for Pydantic settings and to pass
25+
options from init args to settings.
2726
"""
2827

29-
def __init__(self, *args, _ssm_prefix: Optional[str] = None, **kwargs: Any) -> None:
28+
def __init__(
29+
self,
30+
*args,
31+
_ssm_prefix: Optional[str] = None,
32+
**kwargs: Any,
33+
) -> None:
3034
"""
3135
Args:
3236
_ssm_prefix: Prefix for all ssm parameters. Must be an absolute path,
3337
separated by "/". NB:unlike its _env_prefix counterpart, _ssm_prefix
3438
is treated case sensitively regardless of the _case_sensitive
3539
parameter value.
3640
"""
41+
# NOTE: Need a direct access to the attributes dictionary to avoid raising an AttributeError: __pydantic_private__ exception
3742
self.__dict__["__ssm_prefix"] = _ssm_prefix
3843
super().__init__(self, *args, **kwargs)
3944

40-
41-
class AwsSsmSourceConfig(BaseSettingsSsmWrapper):
4245
def settings_customise_sources(
4346
self,
4447
settings_cls: Type[BaseSettings],

tests/test_main.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
from pydantic import BaseModel
33
from pydantic_settings import SettingsConfigDict
44

5-
from pydantic_ssm_settings import AwsSsmSourceConfig, SsmSettingsConfigDict
5+
from pydantic_ssm_settings import AwsSsmBaseSettings, SsmSettingsConfigDict
66

77

8-
class SimpleSettings(AwsSsmSourceConfig):
8+
class SimpleSettings(AwsSsmBaseSettings):
99
foo: str
1010

1111

12-
class IntSettings(AwsSsmSourceConfig):
12+
class IntSettings(AwsSsmBaseSettings):
1313
foo: str
1414
bar: int
1515

@@ -18,7 +18,7 @@ class ChildSetting(BaseModel):
1818
bar: str
1919

2020

21-
class ParentSetting(AwsSsmSourceConfig):
21+
class ParentSetting(AwsSsmBaseSettings):
2222
foo: ChildSetting
2323

2424

@@ -96,7 +96,7 @@ def test_ssm_parameter_json_override(ssm):
9696
assert settings.foo.bar == "overwritten"
9797

9898

99-
class CaseInsensitiveSettings(AwsSsmSourceConfig):
99+
class CaseInsensitiveSettings(AwsSsmBaseSettings):
100100
model_config = SettingsConfigDict(case_sensitive=False)
101101
foo: str
102102

@@ -107,7 +107,7 @@ def test_case_insensitivity(ssm):
107107
assert settings.foo == "bar"
108108

109109

110-
class CustomConfigDict(AwsSsmSourceConfig):
110+
class CustomConfigDict(AwsSsmBaseSettings):
111111
model_config = SsmSettingsConfigDict(ssm_prefix="/asdf")
112112
foo: str
113113

0 commit comments

Comments
 (0)