-
released this
2026-06-28 20:12:00 +02:00 | 141 commits to main since this releaseSummary
This release introduces a clear public CRUD/repository API, making Redis and MinIO adapters intended base classes for domain-specific repositories in consuming projects.
Highlights
Public repository interfaces
- Added
JsonRepositoryInterfacefor JSON document storage (Redis) - Added
ObjectRepositoryInterfacefor binary object storage (MinIO) - Both interfaces are exported from the top-level package alongside existing connection/context interfaces
Adapter CRUD API
- Promoted adapter methods from private (
_get,_set, etc.) to public (get,set,put,delete,list_keys,list_objects) RedisAdapterandMinioAdapternow implement the new repository interfaces- Context managers return
Self, so subclasses keep their concrete type inwithblocks (fixes mypy typing for domain repositories)
Example domain repositories
UserJsonRepository— Redis JSON example withget_user/save_user/delete_userArtifactObjectRepository— MinIO example withget_artifact/store_artifact
Packaging & development
- Package is installable via hatchling (
uv syncinstalls the project editable) - Expanded README with architecture overview, quick-start examples, env vars, and dev setup
- Documented
pre-commit installfor local hook setup - CI Prettier check now runs via pre-commit (pinned, no npm install step)
- Mypy
python_versionaligned to 3.12
Documentation fixes
- Removed references to an unimplemented Mongo adapter from the README
Breaking changes
If you were calling private adapter methods directly, update call sites:
Before After _getget_setset_putput_deletedelete_list_keyslist_keys_list_objectslist_objectsRecommended pattern for application code: subclass an adapter and add domain methods rather than using adapters directly.
Install
uv add python-repositories[redis] uv add python-repositories[minio]Downloads
- Added