Compare commits

...
5 Commits
Author SHA1 Message Date
Brian Bjarke Jensen ee6acc6791 moved import of optional packages into classes
Code Quality Pipeline / code-quality (pull_request) Failing after 1m53s
Test Python Package / test (pull_request) Failing after 22s
2025-09-17 11:44:47 +02:00
Brian Bjarke Jensen 0ca07c02ac Merge pull request 'exposed minio adapter' (#5) from expose-minio-adapter into main
Code Quality Pipeline / code-quality (push) Successful in 36s
Test Python Package / test (push) Successful in 35s
Publish Python Package / build-and-publish (push) Successful in 15s
Reviewed-on: brian/python-repositories#5
2025-09-15 14:44:00 +02:00
Brian Bjarke Jensen 7446e88850 added py.typed mypy config file
Code Quality Pipeline / code-quality (pull_request) Successful in 34s
Test Python Package / test (pull_request) Successful in 40s
2025-09-15 14:15:39 +02:00
Brian Bjarke Jensen d5f437f77c ruff format fix
Code Quality Pipeline / code-quality (pull_request) Successful in 1m21s
Test Python Package / test (pull_request) Successful in 1m30s
2025-09-15 13:59:03 +02:00
Brian Bjarke Jensen 7beca7c398 exposed minio adapter
Code Quality Pipeline / code-quality (pull_request) Failing after 1m9s
Test Python Package / test (pull_request) Successful in 1m29s
2025-09-15 13:38:06 +02:00
4 changed files with 20 additions and 8 deletions
+9 -1
View File
@@ -1,5 +1,13 @@
from .redis_adapter import RedisAdapter as RedisAdapter
"""
Adapters for various backend repositories (e.g., Redis, Minio).
This module exposes concrete implementations for repository interfaces.
"""
from .redis_adapter import RedisAdapter
from .minio_adapter import MinioAdapter
__all__ = [
"RedisAdapter",
"MinioAdapter",
]
@@ -3,10 +3,7 @@
from __future__ import annotations
import os
from io import BytesIO
import structlog
from minio import Minio, S3Error
from python_utils import check_env
from python_repositories.interfaces import (
@@ -28,6 +25,11 @@ class MinioAdapter(
chunk_size: int = 5 * 2**20 # 5 MiB
def __init__(self) -> None:
# Import here to avoid hard dependency if MinioAdapter is not used
try:
from minio import Minio, S3Error # type: ignore[import]
except ImportError as e:
raise RuntimeError("MinioAdapter dependencies missing") from e
# Setup logger
self.logger = structlog.get_logger(
self.__class__.__name__,
@@ -2,13 +2,9 @@
from __future__ import annotations
from typing import cast
import os
import structlog
import redis
from redis.commands.json.path import Path as RedisPath
from python_utils import check_env
from python_repositories.interfaces import (
@@ -28,6 +24,12 @@ class RedisAdapter(
encoding: str = "UTF-8"
def __init__(self) -> None:
# Import here to avoid hard dependency to optional package
try:
import redis # type: ignore[import]
from redis.commands.json.path import Path as RedisPath # type: ignore[import]
except ImportError as e:
raise RuntimeError("RedisAdapter dependencies missing") from e
# Setup logger
self.logger = structlog.get_logger(
self.__class__.__name__,
View File