Changelog
All notable changes to this project will be documented in this file.
[0.4.0] - 2025-09-29
Added
- Dependency Injection for Configuration: Components like
serve(),DownloadClient, and CLI commands now accept an optionalConfigobject. This is the new recommended pattern, reducing reliance on the global singleton. - Fully Asynchronous S3 Client: The
S3ClientandDownloadClient's S3 operations have been rewritten usingaioboto3to be truly non-blocking, improving performance in I/O-bound applications. - New Asynchronous S3 Methods: Introduced
upload_file_async,download_file_async, andcopy_s3_to_s3_asyncfor explicit asynchronous S3 operations. - Optional Database Layer: Integrated
achemyto provide an optional, asynchronous database layer with a repository pattern and session management for FastAPI. - Database Seeding Framework: Added a
seed dbCLI command to run application-specific database seeders, configurable via an import string.
Changed
- The minimum required Python version has been updated to
3.12.
Deprecated
- Global
config()Singleton: Using the globalconfig()singleton is now deprecated. Please load your configuration once at application startup and pass it to the components that need it. - Synchronous S3 Methods: The original synchronous methods (
upload_file,download_file,copy_s3_to_s3) inS3Clientare deprecated and will be removed in a future version. Please migrate to the new_asyncsuffixed methods.
Fixed
- Resolved test failures related to mocking asynchronous AWS calls by integrating
pytest-aioboto3.