python3-commons 0.9.15__py3-none-any.whl → 0.9.17__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.
python3_commons/conf.py CHANGED
@@ -65,9 +65,9 @@ class DBSettings(BaseSettings):
65
65
 
66
66
  class S3Settings(BaseSettings):
67
67
  s3_endpoint_url: str | None = None
68
- s3_region_name: str | None = None
69
- s3_access_key_id: SecretStr = SecretStr('')
70
- s3_secret_access_key: SecretStr = SecretStr('')
68
+ s3_region_name: str | None = Field(default=None, alias='AWS_REGION')
69
+ s3_access_key_id: SecretStr | None = None
70
+ s3_secret_access_key: SecretStr | None = None
71
71
  s3_addressing_style: Literal['path', 'virtual'] = 'virtual'
72
72
  s3_secure: bool = True
73
73
  s3_bucket: str | None = None
@@ -21,20 +21,25 @@ logger = logging.getLogger(__name__)
21
21
 
22
22
  class ObjectStorage(metaclass=SingletonMeta):
23
23
  def __init__(self, settings: S3Settings):
24
- if not settings.s3_endpoint_url:
25
- raise ValueError('s3_endpoint_url must be set')
26
-
27
24
  self._session = aiobotocore.session.get_session()
28
- self._config = {
29
- 'endpoint_url': settings.s3_endpoint_url,
25
+ config = {
30
26
  'region_name': settings.s3_region_name,
31
- 'aws_access_key_id': settings.s3_access_key_id.get_secret_value(),
32
- 'aws_secret_access_key': settings.s3_secret_access_key.get_secret_value(),
33
27
  'use_ssl': settings.s3_secure,
34
28
  'verify': settings.s3_cert_verify,
35
29
  'config': Config(s3={'addressing_style': settings.s3_addressing_style}, signature_version='s3v4'),
36
30
  }
37
31
 
32
+ if s3_endpoint_url := settings.s3_endpoint_url:
33
+ config['endpoint_url'] = s3_endpoint_url
34
+
35
+ if s3_access_key_id := settings.s3_access_key_id:
36
+ config['aws_access_key_id'] = s3_access_key_id.get_secret_value()
37
+
38
+ if s3_secret_access_key := settings.s3_secret_access_key:
39
+ config['aws_secret_access_key'] = s3_secret_access_key.get_secret_value()
40
+
41
+ self._config = config
42
+
38
43
  @asynccontextmanager
39
44
  async def get_client(self) -> AsyncGenerator[S3Client, None]:
40
45
  async with self._session.create_client('s3', **self._config) as client:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-commons
3
- Version: 0.9.15
3
+ Version: 0.9.17
4
4
  Summary: Re-usable Python3 code
5
5
  Author-email: Oleg Korsak <kamikaze.is.waiting.you@gmail.com>
6
6
  License-Expression: GPL-3.0
@@ -3,10 +3,10 @@ python3_commons/api_client.py,sha256=vIWt6QIbHw_x-1yKhXyJEN3Aj22KMsZwJXMsdWR7oaQ
3
3
  python3_commons/audit.py,sha256=p4KRKt0ogkHhJSulg6j5GU-JKBBE903H2c0nuW16GtM,6083
4
4
  python3_commons/auth.py,sha256=fINE7zeq-oaEk2lwkdP1KOhfCpcIBaC8P9UzXQI37J0,2922
5
5
  python3_commons/cache.py,sha256=lf27LTD4Z9Iqi5GaK8jH8UC0cL9sHH8wicZ88YDp6Mg,7725
6
- python3_commons/conf.py,sha256=DYFA2_n7W40MBbpaNWv4iTWh7-GPsGU6Ilygz32tHhs,2397
6
+ python3_commons/conf.py,sha256=GOvR1oYss6AKnNlyj9JbT0mSrfQFrnzmgm0IiGVahho,2428
7
7
  python3_commons/fs.py,sha256=wfLjybXndwLqNlOxTpm_HRJnuTcC4wbrHEOaEeCo9Wc,337
8
8
  python3_commons/helpers.py,sha256=9m9Q_ImXzOsKmt7ObLUhd11vnGfwUH_KO4IwLaTMrFA,3930
9
- python3_commons/object_storage.py,sha256=4-nWfcYF9Uj6bx3aVM6a4P5Ac2fFCTEaDfejDzn63Qk,6441
9
+ python3_commons/object_storage.py,sha256=6jESNzI__r9wJdTWJQRXhpbdmC2QrZVUoZyvetfQNwY,6544
10
10
  python3_commons/permissions.py,sha256=bhjTp-tq-oaTGFMHNnSBlcVX5XQCTL0nWcu6SdPEAB4,1555
11
11
  python3_commons/db/__init__.py,sha256=5nArsGm17e-pelpOwAeBKy2n_Py20XqklZsNgkcJ-DQ,2947
12
12
  python3_commons/db/helpers.py,sha256=PY0h08aLiGx-J54wmP3GHPCgGCcLd60rayAUnR3aWdI,1742
@@ -21,9 +21,9 @@ python3_commons/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
21
21
  python3_commons/serializers/json.py,sha256=91UaXLGKGj0yPyrnuMeNrkG2GuPUgcgAsmIokUgEwpU,808
22
22
  python3_commons/serializers/msgpack.py,sha256=WrvaPE187shSK8zkH4UHHMimEZNMv9RaDSwsBE2HlCw,1269
23
23
  python3_commons/serializers/msgspec.py,sha256=0AliXlEl5sewi0UENjI8St5ZScXE5DNRERKzqWKy2Ps,2674
24
- python3_commons-0.9.15.dist-info/licenses/AUTHORS.rst,sha256=3R9JnfjfjH5RoPWOeqKFJgxVShSSfzQPIrEr1nxIo9Q,90
25
- python3_commons-0.9.15.dist-info/licenses/LICENSE,sha256=xxILuojHm4fKQOrMHPSslbyy6WuKAN2RiG74HbrYfzM,34575
26
- python3_commons-0.9.15.dist-info/METADATA,sha256=I_AM8xoyUMhTDx7KDRFf9yvkUqhIgMQhEvrsQipTdnQ,1134
27
- python3_commons-0.9.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
- python3_commons-0.9.15.dist-info/top_level.txt,sha256=lJI6sCBf68eUHzupCnn2dzG10lH3jJKTWM_hrN1cQ7M,16
29
- python3_commons-0.9.15.dist-info/RECORD,,
24
+ python3_commons-0.9.17.dist-info/licenses/AUTHORS.rst,sha256=3R9JnfjfjH5RoPWOeqKFJgxVShSSfzQPIrEr1nxIo9Q,90
25
+ python3_commons-0.9.17.dist-info/licenses/LICENSE,sha256=xxILuojHm4fKQOrMHPSslbyy6WuKAN2RiG74HbrYfzM,34575
26
+ python3_commons-0.9.17.dist-info/METADATA,sha256=_Euxly2fSHCOTstV3gicOHVVui1Oq3KfrmVq3im5RyE,1134
27
+ python3_commons-0.9.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
+ python3_commons-0.9.17.dist-info/top_level.txt,sha256=lJI6sCBf68eUHzupCnn2dzG10lH3jJKTWM_hrN1cQ7M,16
29
+ python3_commons-0.9.17.dist-info/RECORD,,