dycw-utilities 0.166.14__py3-none-any.whl → 0.166.15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dycw-utilities
3
- Version: 0.166.14
3
+ Version: 0.166.15
4
4
  Author-email: Derek Wan <d.wan@icloud.com>
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -1,4 +1,4 @@
1
- utilities/__init__.py,sha256=LHLSfs3x6K8Je1WwehDM1bM0Q8SOdoD9tS9S-GD9Vq0,61
1
+ utilities/__init__.py,sha256=jOtUA_AbgiE81h3dMxZMFbVi1ROzPoQzJX8qlRlwxKs,61
2
2
  utilities/aeventkit.py,sha256=ddoleSwW9zdc2tjX5Ge0pMKtYwV_JMxhHYOxnWX2AGM,12609
3
3
  utilities/altair.py,sha256=nHdpWt8ZwdUwRQN970MvHd5bRWokNqzHcZQEdSHKRuE,9033
4
4
  utilities/asyncio.py,sha256=PUedzQ5deqlSECQ33sam9cRzI9TnygHz3FdOqWJWPTM,15288
@@ -53,7 +53,7 @@ utilities/pottery.py,sha256=ggMN72Y7wx7Js8VN6eyNyodpm8TIYqZHGghkDPXIVWk,3949
53
53
  utilities/pqdm.py,sha256=idv2seRVP2f6NeSfpeEnT5A-tQezaHZKDyeu16g2-0E,3091
54
54
  utilities/psutil.py,sha256=KUlu4lrUw9Zg1V7ZGetpWpGb9DB8l_SSDWGbANFNCPU,2104
55
55
  utilities/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- utilities/pydantic_settings.py,sha256=Kr02KzDBeohkH0n69sn7NBiJsO9W5DxNtemCm1Pp1Qg,1744
56
+ utilities/pydantic_settings.py,sha256=oUosQ7KExpXTC1PioIc4bju6C6Yj6gMZQLBpOKRL4Xc,2166
57
57
  utilities/pydantic_settings_sops.py,sha256=3RGZbRgfJjAxveMUNpdf7TNBtGuEBYZZ5_TkIxf1mNE,1194
58
58
  utilities/pyinstrument.py,sha256=hnXaL-4HE7wWBI5JKaPfYTpsrXe68YiuZKahHV0VJn8,841
59
59
  utilities/pytest.py,sha256=Pu8jmeNQq659uQmZsmFj6lb0sHMDsNN3fcd6M21J-ww,7723
@@ -91,8 +91,8 @@ utilities/zoneinfo.py,sha256=tdIScrTB2-B-LH0ukb1HUXKooLknOfJNwHk10MuMYvA,3619
91
91
  utilities/pytest_plugins/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
92
92
  utilities/pytest_plugins/pytest_randomly.py,sha256=B1qYVlExGOxTywq2r1SMi5o7btHLk2PNdY_b1p98dkE,409
93
93
  utilities/pytest_plugins/pytest_regressions.py,sha256=9v8kAXDM2ycIXJBimoiF4EgrwbUvxTycFWJiGR_GHhM,1466
94
- dycw_utilities-0.166.14.dist-info/METADATA,sha256=3P4m1rDK_LKVZkdmx4ardJpV3nshnt7hch0pA53rWyk,1702
95
- dycw_utilities-0.166.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
96
- dycw_utilities-0.166.14.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
97
- dycw_utilities-0.166.14.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
98
- dycw_utilities-0.166.14.dist-info/RECORD,,
94
+ dycw_utilities-0.166.15.dist-info/METADATA,sha256=tZarKfDKJCz0QAcuEaTEObHvD4g5MTe-eNSIe_DbDkM,1702
95
+ dycw_utilities-0.166.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
96
+ dycw_utilities-0.166.15.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
97
+ dycw_utilities-0.166.15.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
98
+ dycw_utilities-0.166.15.dist-info/RECORD,,
utilities/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.166.14"
3
+ __version__ = "0.166.15"
@@ -7,6 +7,8 @@ from pydantic_settings import (
7
7
  JsonConfigSettingsSource,
8
8
  PydanticBaseSettingsSource,
9
9
  SettingsConfigDict,
10
+ TomlConfigSettingsSource,
11
+ YamlConfigSettingsSource,
10
12
  )
11
13
 
12
14
  from utilities.iterables import always_iterable
@@ -22,6 +24,8 @@ class CustomBaseSettings(BaseSettings):
22
24
 
23
25
  # paths
24
26
  json_files: ClassVar[MaybeIterable[PathLike]] = ()
27
+ toml_files: ClassVar[MaybeIterable[PathLike]] = ()
28
+ yaml_files: ClassVar[MaybeIterable[PathLike]] = ()
25
29
 
26
30
  # config
27
31
  model_config: ClassVar[SettingsConfigDict] = SettingsConfigDict(
@@ -51,6 +55,10 @@ class CustomBaseSettings(BaseSettings):
51
55
  yield env_settings
52
56
  for file in always_iterable(cls.json_files):
53
57
  yield JsonConfigSettingsSource(settings_cls, json_file=file)
58
+ for file in always_iterable(cls.toml_files):
59
+ yield TomlConfigSettingsSource(settings_cls, toml_file=file)
60
+ for file in always_iterable(cls.yaml_files):
61
+ yield YamlConfigSettingsSource(settings_cls, yaml_file=file)
54
62
 
55
63
 
56
64
  def load_settings[T: BaseSettings](cls: type[T], /) -> T: