- Comprehensive type annotations across all modules (issue #5)
[tool.mypy]configuration inpyproject.tomlwithdisallow_untyped_defs,disallow_incomplete_defs,check_untyped_defs,no_implicit_optional,warn_unused_ignores,warn_redundant_casts@overloadsignatures forApplicationModule.handler()decorator to preserve decorated function types
- Registering multiple handlers for the same
CommandorQueryin a single module now raisesDuplicateHandlerError(fixes #8)
lato.exceptionsmodule with all custom exceptionsDuplicateHandlerError(TypeError)— raised on duplicate command/query handler registrationHandlerNotFoundError(LookupError)— raised when no handler is found for an alias or messageUnknownDependencyError(KeyError)— moved fromdependency_providertoexceptions
- Moved
pytest-asynciofrom runtime to dev dependencies (fixes #9, #10)
- Fixed
__version__inlato/__init__.pyto match release version - Removed EOL
pypy-3.8from CI test matrix - Fixed CI compatibility with Poetry 2.x (
poetry check --lock) - Pin Poetry 1.8.5 for Python 3.9 CI jobs
- Gate release workflow on Tests passing
- Updated release workflow to Python 3.12
- Improved handling of async functions by
TransactionContext. Will raiseTypeErrorif sync middleware is used with async handler.
- Fix type annotations in
ApplicationModule
- Change
composer()signature fromcompose(values)tocompose(**kwargs)
- Add async support in
Application. New methods:call_async,execute_async,publish_async - Add async support in
TransactionContext. New methods:call_async,execute_async,publish_async
- Add Sphinx docs
- Rename
TasktoCommand - Rename
Application.emit()toApplication.publish() - Rename
TransactionContext.emit()toTransactionContext.publish() - Remove
Application.on()decorator in favor ofApplication.handler()
Early release.