All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 - 2026-02-16
- Public API exports in
__init__.pyfor all synchronous CRUD functions - Public API exports in
__init__.pyfor all asynchronous CRUD functions witha_prefix __version__attribute set to "0.2.0"__all__list for explicit public API definition- Comprehensive module docstring in
__init__.py - This CHANGELOG.md file to track all changes
- Made
loguruan optional dependency via[loguru]extra inpyproject.toml - Improved type annotations across the codebase for better type checking support
- Fixed type checking errors in
sync.pyanda_sync.pymodules - Fixed parameter name inconsistency in
get_row()function (lazy_load_keyswas misspelled aslazy_load_keysin sync version) - Fixed return type issues in various CRUD functions
- Fixed relationship loading validation to properly check if attributes are relationships
- Fixed
get_rows_within_id_list()in async module to properly return results list - Documentation build errors related to
dateutilpackage
@logger.catchdecorators from all functions to makelogurutruly optional
0.1.0 - 2024-01-XX
- Initial release of SQLModel CRUD Utilities
- Synchronous CRUD operations in
sync.py:get_row()- Fetch a single row by primary keyget_rows()- Fetch multiple rows with filtering, sorting, and paginationget_one_or_create()- Get existing record or create new onewrite_row()- Insert a single new rowinsert_data_rows()- Insert multiple rows with fallbackupdate_row()- Update an existing rowdelete_row()- Delete a row by primary keyget_rows_within_id_list()- Fetch rows by list of primary keysbulk_upsert_mappings()- Bulk insert-or-update operationsget_result_from_query()- Execute query and get single result
- Asynchronous CRUD operations in
a_sync.py(mirror of sync functions) - Utility functions in
utils.py:- SQL dialect detection and import handling
- Environment variable management
- Date parsing utilities
- Logging configuration
- Flexible filtering with comparison operators (
__like,__gte,__lte,__gt,__lt,__in) - Relationship loading support (eager loading with
selectinload, lazy loading withlazyload) - Pagination support in
get_rows()functions - Dialect-specific upsert operations based on
SQL_DIALECTenvironment variable - Error handling with session rollback on exceptions
- Support for Python 3.9+
- Core dependencies:
sqlmodel>=0.0.24,python-dateutil>=2.9.0.post0,python-dotenv>=1.1.0 - Comprehensive test suite with
pytest,pytest-asyncio, andpytest-cov - Documentation generation with
pdoc - Code quality tools:
black,isort,ruff - Pre-commit hooks configuration