Brian Bjarke Jensen and Cursor
1babb52d09
Apply ruff formatting to postgres adapter and tests.
...
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 13s
Code Quality Pipeline / code-quality (pull_request) Successful in 24s
Test Python Package / integration-tests (pull_request) Successful in 29s
Test Python Package / coverage-report (pull_request) Successful in 10s
Co-authored-by: Cursor <[email protected] >
2026-07-11 15:01:58 +02:00
Brian Bjarke Jensen and Cursor
dc6f8a3e89
Add Postgres table adapter with TableRepositoryInterface.
...
PR Title Check / check-title (pull_request) Successful in 7s
Code Quality Pipeline / code-quality (pull_request) Failing after 19s
Test Python Package / unit-tests (pull_request) Successful in 47s
Test Python Package / integration-tests (pull_request) Successful in 44s
Test Python Package / coverage-report (pull_request) Successful in 11s
Introduce PostgresAdapter for dict-based row CRUD via psycopg3, including config, lazy exports, unit/integration tests with testcontainers, and an example UserTableRepository.
Co-authored-by: Cursor <[email protected] >
2026-07-11 14:57:34 +02:00
Brian Bjarke Jensen and Cursor
f6ee9a3724
Add runtime-checkable Protocol typing to all public interfaces.
...
PR Title Check / check-title (pull_request) Successful in 7s
Test Python Package / unit-tests (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Successful in 22s
Test Python Package / integration-tests (pull_request) Successful in 24s
Test Python Package / coverage-report (pull_request) Successful in 8s
Enables structural subtyping for consumers while preserving nominal adapter inheritance, instantiation guards, and scan_keys defaults.
Co-authored-by: Cursor <[email protected] >
2026-07-11 09:45:42 +02:00
Brian Bjarke Jensen and Cursor
57b396bcd3
Allow empty payloads in Redis and MinIO adapters.
...
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 20s
Test Python Package / integration-tests (pull_request) Successful in 24s
Test Python Package / coverage-report (pull_request) Successful in 11s
Relax write validation so {} and zero-byte BytesIO round-trip correctly,
document None-vs-empty semantics on interfaces and adapters, and add
integration tests for placeholders and existence distinction.
Co-authored-by: Cursor <[email protected] >
2026-07-10 21:39:51 +02:00
Brian Bjarke Jensen and Cursor
565879dd52
Unify dev tooling via uv so pre-commit, CI, and the update bot stay aligned.
...
Test Python Package / unit-tests (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 19s
PR Title Check / check-title (pull_request) Successful in 31s
Test Python Package / integration-tests (pull_request) Successful in 23s
Test Python Package / coverage-report (pull_request) Successful in 10s
Route Python hooks through uv run with versions pinned in uv.lock, add explicit
Ruff settings, and extend the dependency bot to run pre-commit autoupdate.
Co-authored-by: Cursor <[email protected] >
2026-07-10 14:29:22 +02:00
Brian Bjarke Jensen and Cursor
b886a7c147
Use structured fields for adapter debug and info logs.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Failing after 14s
Test Python Package / integration-tests (pull_request) Successful in 1m2s
Test Python Package / coverage-report (pull_request) Successful in 11s
Replace f-string log messages with structlog keyword fields so events aggregate cleanly and Redis payloads are not logged verbatim.
Co-authored-by: Cursor <[email protected] >
2026-07-10 14:00:34 +02:00
Brian Bjarke Jensen and Cursor
42e885edd5
Use dict[str, Any] for JSON repository document types.
...
PR Title Check / check-title (pull_request) Successful in 6s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m28s
Test Python Package / unit-tests (pull_request) Successful in 1m29s
Test Python Package / coverage-report (pull_request) Successful in 16s
Test Python Package / integration-tests (pull_request) Successful in 48s
Clarifies that JSON CRUD operates on string-keyed objects without changing runtime behavior.
Co-authored-by: Cursor <[email protected] >
2026-07-09 18:41:23 +02:00
Brian Bjarke Jensen and Cursor
67bb88fbb4
Align Redis and MinIO connect() idempotency in ConnectionAwareAdapter.
...
PR Title Check / check-title (pull_request) Successful in 5s
Test Python Package / unit-tests (pull_request) Successful in 13s
Test Python Package / integration-tests (pull_request) Successful in 30s
Test Python Package / coverage-report (pull_request) Failing after 15s
Code Quality Pipeline / code-quality (pull_request) Successful in 53s
Move shared connect orchestration into the base adapter so both backends short-circuit when already healthy and only reconnect after a failed probe.
Co-authored-by: Cursor <[email protected] >
2026-07-09 15:46:39 +02:00
Brian Bjarke Jensen and Cursor
4a5b3b631f
Make MinIO bucket creation opt-in with production-safe defaults.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 18s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m28s
Test Python Package / integration-tests (pull_request) Failing after 1m54s
Test Python Package / coverage-report (pull_request) Has been skipped
Require buckets to exist by default on connect, extract env_bool parsing, and document local dev overrides for secure and auto-creation settings.
Co-authored-by: Cursor <[email protected] >
2026-07-09 14:52:14 +02:00
Brian Bjarke Jensen and Cursor
50444af982
Add Redis scan_keys iterator API.
...
Test Python Package / unit-tests (pull_request) Successful in 14s
Code Quality Pipeline / code-quality (pull_request) Successful in 32s
Test Python Package / coverage-report (pull_request) Successful in 16s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / integration-tests (pull_request) Successful in 1m3s
Provide a SCAN-based key iterator for Redis adapters so callers can enumerate large keyspaces without relying on blocking KEYS lookups.
Co-authored-by: Cursor <[email protected] >
2026-07-08 21:06:13 +02:00
Brian Bjarke Jensen and Cursor
5311d49fa6
Clarify MinIO get() error semantics to match Redis behavior.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / integration-tests (pull_request) Successful in 1m17s
Test Python Package / unit-tests (pull_request) Successful in 1m28s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m36s
Test Python Package / coverage-report (pull_request) Successful in 16s
Return None only for missing objects and re-raise other S3 and network failures so callers can distinguish not-found from real errors.
Co-authored-by: Cursor <[email protected] >
2026-07-08 20:02:03 +02:00
Brian Bjarke Jensen and Cursor
8c34534187
Fix MinIO get_object response leak in MinioAdapter.get().
...
Test Python Package / integration-tests (pull_request) Successful in 27s
Code Quality Pipeline / code-quality (pull_request) Successful in 31s
Test Python Package / unit-tests (pull_request) Successful in 36s
Test Python Package / coverage-report (pull_request) Successful in 53s
PR Title Check / check-title (pull_request) Failing after 5s
Close and release the HTTP response in a finally block per SDK guidance, and add unit tests for success and read-failure cleanup.
Co-authored-by: Cursor <[email protected] >
2026-07-07 21:21:42 +02:00
Brian Bjarke Jensen and Cursor
3aa91280ec
Load MINIO_SECURE from env and replace adapter asserts with explicit errors.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 32s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Successful in 57s
Default TLS to enabled for production MinIO setups while keeping local and integration tests on plain HTTP via explicit secure=false configuration.
Co-authored-by: Cursor <[email protected] >
2026-07-06 20:45:37 +02:00
Brian Bjarke Jensen and Cursor
7991dabdbc
Add config and client injection with test reorganization.
...
Introduce typed config objects, optional adapter injection, and .env loading to simplify testing while preserving env-based defaults for production usage.
Co-authored-by: Cursor <[email protected] >
2026-07-06 20:44:08 +02:00
Brian Bjarke Jensen and Cursor
7b950e0d93
Extract shared connection lifecycle into ConnectionAwareAdapter.
...
Move duplicated context-manager, health-check cache, and connection guards from Redis and Minio adapters into an internal base class.
Co-authored-by: Cursor <[email protected] >
2026-07-05 16:09:25 +02:00
Brian Bjarke Jensen and Cursor
5149299c1b
Strengthen is_connected with cached health probes.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 35s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Successful in 1m9s
Convert is_connected to a method that verifies backend liveness via TTL-cached ping (Redis) or bucket_exists (MinIO), with cache invalidation on connect/disconnect.
Co-authored-by: Cursor <[email protected] >
2026-07-05 15:28:25 +02:00
Brian Bjarke Jensen and Cursor
1f02195c27
Delegate top-level adapter imports to adapters package.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 47s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Failing after 1m1s
Keep lazy loading in adapters/__init__.py as the single place to register new adapters.
Co-authored-by: Cursor <[email protected] >
2026-06-30 15:57:52 +02:00
Brian Bjarke Jensen and Cursor
c6eed43d70
Fix optional dependency handling for Redis and MinIO adapters.
...
Lazy-load adapters at package boundaries and fail fast with install hints when extras are missing.
Co-authored-by: Cursor <[email protected] >
2026-06-30 15:47:04 +02:00
Brian Bjarke Jensen and Cursor
0f31170209
Fix mypy errors from minio 7.2.20 type stubs.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 36s
PR Title Check / check-title (pull_request) Failing after 6s
Test Python Package / test (pull_request) Successful in 43s
Guard bucket_name before Minio API calls, update S3Error test mocks for the new constructor signature, and add types-redis to the pre-commit mypy hook.
Co-authored-by: Cursor <[email protected] >
2026-06-28 23:32:31 +02:00
Brian Bjarke Jensen and Cursor
497533f0e3
Fix mypy context manager typing for adapter subclasses.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 26s
Test Python Package / test (pull_request) Successful in 1m7s
Return Self from __enter__ so with-blocks preserve subclass types, and align mypy python_version with the 3.12 runtime target.
Co-authored-by: Cursor <[email protected] >
2026-06-28 19:42:15 +02:00
Brian Bjarke Jensen and Cursor
e98fd3b90d
Add public repository interfaces and subclassable adapter CRUD API.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 19s
Test Python Package / test (pull_request) Successful in 50s
Define split JSON and object repository ABCs, promote adapter methods to public CRUD, add example domain repositories, modernize interface stubs, and make the package installable for tests.
Co-authored-by: Cursor <[email protected] >
2026-06-28 10:58:33 +02:00
Brian Bjarke Jensen
2e9330949c
ruff format fix
Code Quality Pipeline / code-quality (pull_request) Successful in 29s
Test Python Package / test (pull_request) Successful in 35s
2025-09-18 19:38:22 +02:00
Brian Bjarke Jensen
3ab8da92fb
added support for content type when putting object in minio
Code Quality Pipeline / code-quality (pull_request) Failing after 24s
Test Python Package / test (pull_request) Successful in 1m9s
2025-09-18 19:34:05 +02:00
Brian Bjarke Jensen
e5c4025aeb
added graceful handling of missing optional packages
Code Quality Pipeline / code-quality (pull_request) Successful in 26s
Test Python Package / test (pull_request) Successful in 34s
2025-09-17 12:36:22 +02:00
Brian Bjarke Jensen
396cf83a05
code quality fixes
Code Quality Pipeline / code-quality (pull_request) Successful in 30s
Test Python Package / test (pull_request) Successful in 1m12s
2025-09-17 12:14:37 +02:00
Brian Bjarke Jensen
538b26b62f
mypy fixed
2025-09-17 12:04:45 +02:00
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
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
Brian Bjarke Jensen
5a72507775
ruff format
2025-09-15 00:53:38 +02:00
Brian Bjarke Jensen
c45ba3c5d5
mypy fixes
2025-09-15 00:53:26 +02:00
Brian Bjarke Jensen
a3b5443e0d
added minio adapter and tests
Code Quality Pipeline / code-quality (pull_request) Failing after 46s
Test Python Package / test (pull_request) Failing after 11s
2025-09-15 00:43:43 +02:00
Brian Bjarke Jensen
524bd0f06b
fixed connection error handling
2025-09-14 19:52:39 +02:00
Brian Bjarke Jensen
5d7afe7a6c
ruff format corrections
Code Quality Pipeline / code-quality (pull_request) Successful in 16s
Test Python Package / test (pull_request) Failing after 9s
2025-09-14 16:17:04 +02:00
Brian Bjarke Jensen
59a943e39a
added redis types stub and fixed return type
Test Python Package / test (pull_request) Failing after 9s
Code Quality Pipeline / code-quality (pull_request) Failing after 13s
2025-09-14 16:16:01 +02:00
Brian Bjarke Jensen
1abcae4050
added redis adapter
Code Quality Pipeline / code-quality (pull_request) Failing after 42s
Test Python Package / test (pull_request) Failing after 1s
2025-09-14 15:45:19 +02:00