dsw-storage 4.13.0__py2.py3-none-any.whl → 4.15.0__py2.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.
dsw/storage/build_info.py CHANGED
@@ -9,9 +9,9 @@ BuildInfo = namedtuple(
9
9
  )
10
10
 
11
11
  BUILD_INFO = BuildInfo(
12
- version='v4.13.0~c8e1cb3',
13
- built_at='2024-12-05 08:07:38Z',
14
- sha='c8e1cb3b7e0cc93bdf509eef715cd0a926d907c3',
12
+ version='v4.15.0~0624f1a',
13
+ built_at='2025-02-04 15:03:55Z',
14
+ sha='0624f1af3f4ccd0fa38ec76a640b17ef405ab153',
15
15
  branch='HEAD',
16
- tag='v4.13.0',
16
+ tag='v4.15.0',
17
17
  )
dsw/storage/s3storage.py CHANGED
@@ -1,13 +1,12 @@
1
1
  import contextlib
2
2
  import io
3
3
  import logging
4
- import minio # type: ignore
5
- import minio.error # type: ignore
6
4
  import pathlib
7
5
  import tempfile
8
- import tenacity
9
6
 
10
- from typing import Optional
7
+ import minio
8
+ import minio.error
9
+ import tenacity
11
10
 
12
11
  from dsw.config.model import S3Config
13
12
 
@@ -35,7 +34,7 @@ class S3Storage:
35
34
  parts = url.split('://', maxsplit=1)
36
35
  return parts[0] if len(parts) == 1 else parts[1]
37
36
 
38
- def __init__(self, cfg: S3Config, multi_tenant: bool):
37
+ def __init__(self, *, cfg: S3Config, multi_tenant: bool):
39
38
  self.cfg = cfg
40
39
  self.multi_tenant = multi_tenant
41
40
  self.client = minio.Minio(
@@ -69,9 +68,9 @@ class S3Storage:
69
68
  before=tenacity.before_log(LOG, logging.DEBUG),
70
69
  after=tenacity.after_log(LOG, logging.DEBUG),
71
70
  )
72
- def store_document(self, tenant_uuid: str, file_name: str,
71
+ def store_document(self, *, tenant_uuid: str, file_name: str,
73
72
  content_type: str, data: bytes,
74
- metadata: Optional[dict] = None):
73
+ metadata: dict | None = None):
75
74
  object_name = f'{DOCUMENTS_DIR}/{file_name}'
76
75
  if self.multi_tenant:
77
76
  object_name = f'{tenant_uuid}/{object_name}'
@@ -92,7 +91,7 @@ class S3Storage:
92
91
  before=tenacity.before_log(LOG, logging.DEBUG),
93
92
  after=tenacity.after_log(LOG, logging.DEBUG),
94
93
  )
95
- def download_file(self, file_name: str, target_path: pathlib.Path) -> bool:
94
+ def download_file(self, *, file_name: str, target_path: pathlib.Path) -> bool:
96
95
  try:
97
96
  self.client.fget_object(
98
97
  bucket_name=self.cfg.bucket,
@@ -112,9 +111,9 @@ class S3Storage:
112
111
  before=tenacity.before_log(LOG, logging.DEBUG),
113
112
  after=tenacity.after_log(LOG, logging.DEBUG),
114
113
  )
115
- def store_object(self, tenant_uuid: str, object_name: str,
114
+ def store_object(self, *, tenant_uuid: str, object_name: str,
116
115
  content_type: str, data: bytes,
117
- metadata: Optional[dict] = None):
116
+ metadata: dict | None = None):
118
117
  if self.multi_tenant:
119
118
  object_name = f'{tenant_uuid}/{object_name}'
120
119
  with io.BytesIO(data) as file:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: dsw-storage
3
- Version: 4.13.0
3
+ Version: 4.15.0
4
4
  Summary: Library for managing DSW S3 storage
5
5
  Author-email: Marek Suchánek <marek.suchanek@ds-wizard.org>
6
6
  License: Apache License 2.0
@@ -11,16 +11,16 @@ Keywords: dsw,s3,bucket,storage
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Programming Language :: Python
14
- Classifier: Programming Language :: Python :: 3.10
15
14
  Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
16
  Classifier: Topic :: Communications :: File Sharing
17
17
  Classifier: Topic :: Utilities
18
- Requires-Python: <4,>=3.10
18
+ Requires-Python: <4,>=3.11
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: minio
22
22
  Requires-Dist: tenacity
23
- Requires-Dist: dsw-config==4.13.0
23
+ Requires-Dist: dsw-config==4.15.0
24
24
 
25
25
  # Data Stewardship Wizard: Storage
26
26
 
@@ -0,0 +1,8 @@
1
+ dsw/storage/__init__.py,sha256=okElJ2yrAceGuwqdX_N6Gcv8btAiXX9OQqyQMZQnfSk,58
2
+ dsw/storage/build_info.py,sha256=Uz_Zl-aH87_YaxkQeyvFutdptWRLvXPqDQ2yhNHy-2o,381
3
+ dsw/storage/s3storage.py,sha256=NWHKe35-uYgnnUo8XFbVh11zlrmeU4B2UlAi1AWqTxI,4079
4
+ dsw_storage-4.15.0.dist-info/LICENSE,sha256=rDtJ4LdsXvf_euOpGD0Q86P78K4JyM5m4yfYz9wZ750,11346
5
+ dsw_storage-4.15.0.dist-info/METADATA,sha256=sMZNC8apNL5qwmT0mts44avbuzMqwHbPbEZnresbHVg,1849
6
+ dsw_storage-4.15.0.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
7
+ dsw_storage-4.15.0.dist-info/top_level.txt,sha256=7SfbsHFoJ_vlAgG6C-xzETETwYO71dBrGnod8uMFnjw,4
8
+ dsw_storage-4.15.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any
@@ -1,8 +0,0 @@
1
- dsw/storage/__init__.py,sha256=okElJ2yrAceGuwqdX_N6Gcv8btAiXX9OQqyQMZQnfSk,58
2
- dsw/storage/build_info.py,sha256=1RMDitddaSrCsQLWw6-uewQdKO5018YyDEYEPvKauVA,381
3
- dsw/storage/s3storage.py,sha256=H9A_gDFW8bAybX_uHJxnlLoQObt-OyXEDyy598rSykc,4133
4
- dsw_storage-4.13.0.dist-info/LICENSE,sha256=rDtJ4LdsXvf_euOpGD0Q86P78K4JyM5m4yfYz9wZ750,11346
5
- dsw_storage-4.13.0.dist-info/METADATA,sha256=vIf7ZUMyIZ3gypLkZU63kXu4G4-BeW-BbX41o0-G5rQ,1849
6
- dsw_storage-4.13.0.dist-info/WHEEL,sha256=pxeNX5JdtCe58PUSYP9upmc7jdRPgvT0Gm9kb1SHlVw,109
7
- dsw_storage-4.13.0.dist-info/top_level.txt,sha256=7SfbsHFoJ_vlAgG6C-xzETETwYO71dBrGnod8uMFnjw,4
8
- dsw_storage-4.13.0.dist-info/RECORD,,