python3-commons 0.8.19__tar.gz → 0.8.21__tar.gz

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.
Files changed (54) hide show
  1. {python3_commons-0.8.19/src/python3_commons.egg-info → python3_commons-0.8.21}/PKG-INFO +2 -2
  2. {python3_commons-0.8.19 → python3_commons-0.8.21}/pyproject.toml +1 -1
  3. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/conf.py +28 -1
  4. {python3_commons-0.8.19 → python3_commons-0.8.21/src/python3_commons.egg-info}/PKG-INFO +2 -2
  5. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons.egg-info/SOURCES.txt +3 -3
  6. {python3_commons-0.8.19 → python3_commons-0.8.21}/.coveragerc +0 -0
  7. {python3_commons-0.8.19 → python3_commons-0.8.21}/.github/workflows/python-publish.yaml +0 -0
  8. {python3_commons-0.8.19 → python3_commons-0.8.21}/.gitignore +0 -0
  9. {python3_commons-0.8.19 → python3_commons-0.8.21}/.pre-commit-config.yaml +0 -0
  10. {python3_commons-0.8.19 → python3_commons-0.8.21}/.python-version +0 -0
  11. {python3_commons-0.8.19 → python3_commons-0.8.21}/AUTHORS.rst +0 -0
  12. {python3_commons-0.8.19 → python3_commons-0.8.21}/CHANGELOG.rst +0 -0
  13. {python3_commons-0.8.19 → python3_commons-0.8.21}/LICENSE +0 -0
  14. {python3_commons-0.8.19 → python3_commons-0.8.21}/README.md +0 -0
  15. {python3_commons-0.8.19 → python3_commons-0.8.21}/README.rst +0 -0
  16. {python3_commons-0.8.19 → python3_commons-0.8.21}/docs/Makefile +0 -0
  17. {python3_commons-0.8.19 → python3_commons-0.8.21}/docs/_static/.gitignore +0 -0
  18. {python3_commons-0.8.19 → python3_commons-0.8.21}/docs/authors.rst +0 -0
  19. {python3_commons-0.8.19 → python3_commons-0.8.21}/docs/changelog.rst +0 -0
  20. {python3_commons-0.8.19 → python3_commons-0.8.21}/docs/conf.py +0 -0
  21. {python3_commons-0.8.19 → python3_commons-0.8.21}/docs/index.rst +0 -0
  22. {python3_commons-0.8.19 → python3_commons-0.8.21}/docs/license.rst +0 -0
  23. {python3_commons-0.8.19 → python3_commons-0.8.21}/setup.cfg +0 -0
  24. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/__init__.py +0 -0
  25. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/api_client.py +0 -0
  26. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/audit.py +0 -0
  27. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/auth.py +0 -0
  28. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/cache.py +0 -0
  29. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/db/__init__.py +0 -0
  30. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/db/helpers.py +0 -0
  31. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/db/models/__init__.py +0 -0
  32. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/db/models/auth.py +0 -0
  33. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/db/models/common.py +0 -0
  34. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/db/models/rbac.py +0 -0
  35. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/fs.py +0 -0
  36. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/helpers.py +0 -0
  37. {python3_commons-0.8.19/src/python3_commons/logging → python3_commons-0.8.21/src/python3_commons/log}/__init__.py +0 -0
  38. {python3_commons-0.8.19/src/python3_commons/logging → python3_commons-0.8.21/src/python3_commons/log}/filters.py +0 -0
  39. {python3_commons-0.8.19/src/python3_commons/logging → python3_commons-0.8.21/src/python3_commons/log}/formatters.py +0 -0
  40. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/object_storage.py +0 -0
  41. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/permissions.py +0 -0
  42. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/serializers/__init__.py +0 -0
  43. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/serializers/json.py +0 -0
  44. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/serializers/msgpack.py +0 -0
  45. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons/serializers/msgspec.py +0 -0
  46. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons.egg-info/dependency_links.txt +0 -0
  47. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons.egg-info/requires.txt +0 -0
  48. {python3_commons-0.8.19 → python3_commons-0.8.21}/src/python3_commons.egg-info/top_level.txt +0 -0
  49. {python3_commons-0.8.19 → python3_commons-0.8.21}/tests/conftest.py +0 -0
  50. {python3_commons-0.8.19 → python3_commons-0.8.21}/tests/test_audit.py +0 -0
  51. {python3_commons-0.8.19 → python3_commons-0.8.21}/tests/test_helpers.py +0 -0
  52. {python3_commons-0.8.19 → python3_commons-0.8.21}/tests/test_msgpack.py +0 -0
  53. {python3_commons-0.8.19 → python3_commons-0.8.21}/tests/test_msgspec.py +0 -0
  54. {python3_commons-0.8.19 → python3_commons-0.8.21}/uv.lock +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-commons
3
- Version: 0.8.19
3
+ Version: 0.8.21
4
4
  Summary: Re-usable Python3 code
5
5
  Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
6
- License: gpl-3
6
+ License-Expression: GPL-3.0
7
7
  Project-URL: Homepage, https://github.com/kamikaze/python3-commons
8
8
  Project-URL: Documentation, https://github.com/kamikaze/python3-commons/wiki
9
9
  Classifier: Development Status :: 4 - Beta
@@ -9,7 +9,7 @@ description = "Re-usable Python3 code"
9
9
  authors = [
10
10
  {name = "Oleg Korsak", email = "kamikaze.is.waiting.you@gmail.com"}
11
11
  ]
12
- license = {text = "gpl-3"}
12
+ license = "GPL-3.0"
13
13
  readme = {file = "README.rst", content-type = "text/x-rst"}
14
14
  classifiers = [
15
15
  "Development Status :: 4 - Beta",
@@ -1,4 +1,4 @@
1
- from pydantic import Field, HttpUrl, PostgresDsn, RedisDsn, SecretStr
1
+ from pydantic import Field, HttpUrl, PostgresDsn, RedisDsn, SecretStr, model_validator
2
2
  from pydantic_settings import BaseSettings, SettingsConfigDict
3
3
 
4
4
 
@@ -27,12 +27,39 @@ class DBSettings(BaseSettings):
27
27
  model_config = SettingsConfigDict(env_prefix='DB_')
28
28
 
29
29
  dsn: PostgresDsn | None = Field(default=None, serialization_alias='url')
30
+ scheme: str = 'postgresql+asyncpg'
31
+ host: str = 'localhost'
32
+ port: int = 5432
33
+ name: str | None = None
34
+ user: str | None = None
35
+ password: SecretStr | None = Field(default=None, serialization_alias='pass')
36
+
30
37
  echo: bool = False
31
38
  pool_size: int = 20
32
39
  max_overflow: int = 0
33
40
  pool_timeout: int = 30
34
41
  pool_recycle: int = 1800 # 30 minutes
35
42
 
43
+ @model_validator(mode='after')
44
+ def build_dsn_if_missing(self) -> 'DBSettings':
45
+ if self.dsn is None and all(
46
+ (
47
+ self.user,
48
+ self.password,
49
+ self.name,
50
+ )
51
+ ):
52
+ self.dsn = PostgresDsn.build(
53
+ scheme=self.scheme,
54
+ username=self.user,
55
+ password=self.password.get_secret_value() if self.password else None,
56
+ host=self.host,
57
+ port=self.port,
58
+ path=f'/{self.name}',
59
+ )
60
+
61
+ return self
62
+
36
63
 
37
64
  class S3Settings(BaseSettings):
38
65
  s3_endpoint_url: str | None = None
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-commons
3
- Version: 0.8.19
3
+ Version: 0.8.21
4
4
  Summary: Re-usable Python3 code
5
5
  Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
6
- License: gpl-3
6
+ License-Expression: GPL-3.0
7
7
  Project-URL: Homepage, https://github.com/kamikaze/python3-commons
8
8
  Project-URL: Documentation, https://github.com/kamikaze/python3-commons/wiki
9
9
  Classifier: Development Status :: 4 - Beta
@@ -38,9 +38,9 @@ src/python3_commons/db/models/__init__.py
38
38
  src/python3_commons/db/models/auth.py
39
39
  src/python3_commons/db/models/common.py
40
40
  src/python3_commons/db/models/rbac.py
41
- src/python3_commons/logging/__init__.py
42
- src/python3_commons/logging/filters.py
43
- src/python3_commons/logging/formatters.py
41
+ src/python3_commons/log/__init__.py
42
+ src/python3_commons/log/filters.py
43
+ src/python3_commons/log/formatters.py
44
44
  src/python3_commons/serializers/__init__.py
45
45
  src/python3_commons/serializers/json.py
46
46
  src/python3_commons/serializers/msgpack.py