hexkit 3.7.0__tar.gz → 3.8.0__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.
- {hexkit-3.7.0/src/hexkit.egg-info → hexkit-3.8.0}/PKG-INFO +1 -1
- {hexkit-3.7.0 → hexkit-3.8.0}/pyproject.toml +1 -1
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/provider.py +8 -0
- {hexkit-3.7.0 → hexkit-3.8.0/src/hexkit.egg-info}/PKG-INFO +1 -1
- {hexkit-3.7.0 → hexkit-3.8.0}/LICENSE +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/MANIFEST.in +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/README.md +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/setup.cfg +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/__main__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/base.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/config.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/correlation.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/custom_types.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/log.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/dao.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/daopub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/daosub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/eventpub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/eventsub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/objstorage.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/config.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/daosub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/eventpub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/eventsub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/utils.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/testcontainer.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/testutils.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongodb/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongodb/provider.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongodb/testutils.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongokafka/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongokafka/provider.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongokafka/testutils.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file1.yaml +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file2.yaml +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file3.yaml +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file4.yaml +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/_fixtures.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/_typical_workflow.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/_utils.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/testing/__init__.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/testing/eventpub.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/py.typed +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/utils.py +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/SOURCES.txt +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/dependency_links.txt +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/requires.txt +0 -0
- {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/top_level.txt +0 -0
|
@@ -22,6 +22,7 @@ Utilities for testing are located in `./testutils.py`.
|
|
|
22
22
|
# ruff: noqa: PLR0913
|
|
23
23
|
|
|
24
24
|
import asyncio
|
|
25
|
+
import re
|
|
25
26
|
from functools import lru_cache
|
|
26
27
|
from pathlib import Path
|
|
27
28
|
from typing import Any, Optional
|
|
@@ -31,6 +32,7 @@ import botocore.client
|
|
|
31
32
|
import botocore.config
|
|
32
33
|
import botocore.configloader
|
|
33
34
|
import botocore.exceptions
|
|
35
|
+
import botocore.handlers
|
|
34
36
|
from boto3.s3.transfer import TransferConfig
|
|
35
37
|
from pydantic import Field, SecretStr
|
|
36
38
|
from pydantic_settings import BaseSettings
|
|
@@ -39,6 +41,10 @@ from hexkit.protocols.objstorage import ObjectStorageProtocol, PresignedPostURL
|
|
|
39
41
|
from hexkit.utils import calc_part_size
|
|
40
42
|
|
|
41
43
|
__all__ = ["ObjectStorageProtocol", "PresignedPostURL"]
|
|
44
|
+
# Allow colon character in bucket names to accommodate Ceph multi tenancy S3
|
|
45
|
+
botocore.handlers.VALID_BUCKET = re.compile(
|
|
46
|
+
r"^(?:[a-zA-Z0-9_]{1,191}:)?[a-z0-9\-]{3,63}$"
|
|
47
|
+
)
|
|
42
48
|
|
|
43
49
|
|
|
44
50
|
class S3Config(BaseSettings):
|
|
@@ -116,6 +122,8 @@ def read_aws_config_ini(aws_config_ini: Path) -> botocore.config.Config:
|
|
|
116
122
|
class S3ObjectStorage(ObjectStorageProtocol):
|
|
117
123
|
"""S3-based provider implementing the ObjectStorageProtocol."""
|
|
118
124
|
|
|
125
|
+
_re_bucket_id = botocore.handlers.VALID_BUCKET
|
|
126
|
+
|
|
119
127
|
def __init__(
|
|
120
128
|
self,
|
|
121
129
|
*,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|