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.
Files changed (56) hide show
  1. {hexkit-3.7.0/src/hexkit.egg-info → hexkit-3.8.0}/PKG-INFO +1 -1
  2. {hexkit-3.7.0 → hexkit-3.8.0}/pyproject.toml +1 -1
  3. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/provider.py +8 -0
  4. {hexkit-3.7.0 → hexkit-3.8.0/src/hexkit.egg-info}/PKG-INFO +1 -1
  5. {hexkit-3.7.0 → hexkit-3.8.0}/LICENSE +0 -0
  6. {hexkit-3.7.0 → hexkit-3.8.0}/MANIFEST.in +0 -0
  7. {hexkit-3.7.0 → hexkit-3.8.0}/README.md +0 -0
  8. {hexkit-3.7.0 → hexkit-3.8.0}/setup.cfg +0 -0
  9. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/__init__.py +0 -0
  10. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/__main__.py +0 -0
  11. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/base.py +0 -0
  12. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/config.py +0 -0
  13. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/correlation.py +0 -0
  14. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/custom_types.py +0 -0
  15. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/log.py +0 -0
  16. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/__init__.py +0 -0
  17. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/dao.py +0 -0
  18. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/daopub.py +0 -0
  19. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/daosub.py +0 -0
  20. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/eventpub.py +0 -0
  21. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/eventsub.py +0 -0
  22. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/protocols/objstorage.py +0 -0
  23. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/__init__.py +0 -0
  24. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/__init__.py +0 -0
  25. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/config.py +0 -0
  26. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/__init__.py +0 -0
  27. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/daosub.py +0 -0
  28. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/eventpub.py +0 -0
  29. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/eventsub.py +0 -0
  30. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/provider/utils.py +0 -0
  31. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/testcontainer.py +0 -0
  32. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/akafka/testutils.py +0 -0
  33. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongodb/__init__.py +0 -0
  34. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongodb/provider.py +0 -0
  35. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongodb/testutils.py +0 -0
  36. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongokafka/__init__.py +0 -0
  37. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongokafka/provider.py +0 -0
  38. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/mongokafka/testutils.py +0 -0
  39. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/__init__.py +0 -0
  40. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/__init__.py +0 -0
  41. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file1.yaml +0 -0
  42. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file2.yaml +0 -0
  43. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file3.yaml +0 -0
  44. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/test_files/test_file4.yaml +0 -0
  45. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/__init__.py +0 -0
  46. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/_fixtures.py +0 -0
  47. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/_typical_workflow.py +0 -0
  48. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/s3/testutils/_utils.py +0 -0
  49. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/testing/__init__.py +0 -0
  50. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/providers/testing/eventpub.py +0 -0
  51. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/py.typed +0 -0
  52. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit/utils.py +0 -0
  53. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/SOURCES.txt +0 -0
  54. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/dependency_links.txt +0 -0
  55. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/requires.txt +0 -0
  56. {hexkit-3.7.0 → hexkit-3.8.0}/src/hexkit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hexkit
3
- Version: 3.7.0
3
+ Version: 3.8.0
4
4
  Summary: A Toolkit for Building Microservices using the Hexagonal Architecture
5
5
  Author-email: "German Human Genome Phenome Archive (GHGA)" <contact@ghga.de>
6
6
  License: Apache 2.0
@@ -23,7 +23,7 @@ classifiers = [
23
23
  "Intended Audience :: Developers",
24
24
  ]
25
25
  name = "hexkit"
26
- version = "3.7.0"
26
+ version = "3.8.0"
27
27
  description = "A Toolkit for Building Microservices using the Hexagonal Architecture"
28
28
  dependencies = [
29
29
  "pydantic >=2, <3",
@@ -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
  *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hexkit
3
- Version: 3.7.0
3
+ Version: 3.8.0
4
4
  Summary: A Toolkit for Building Microservices using the Hexagonal Architecture
5
5
  Author-email: "German Human Genome Phenome Archive (GHGA)" <contact@ghga.de>
6
6
  License: Apache 2.0
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