Release Notes
v0.5.0 April 9, 2024¶
Breaking Changes¶
- Removed the base Eventclass due to improved event semantics and unnecessary redundancy.
- Renamed the get_event_registry()method ofEventLinkertoget_registry().
- Renamed the __event_registryinner property ofEventLinkerto__registry.
- Renamed the get_events_by_handler()method ofEventLinkertoget_events_by_event_handler().
- Renamed the get_handlers_by_events()method ofEventLinkertoget_event_handlers_by_events().
- Renamed the protected method _executor_callback()of theExecutorEventEmitterto_callback().
- Renamed the task name of CeleryEventEmitterfrom_executortopyventus_executorto avoid collisions with other task names.
Added¶
- Added __slots__toEventLinkageWrapperclass for more efficient memory usage.
- Extended support for subscription and emission of any dataclassobject, removing the limitation of onlyEventsubclasses.
- Added the force_asyncparameter to theEventHandlerclass andEventLinkersubscription methods to be able to optimize the execution ofsynccallbacks based on their workload.
- Introduced a new event semantic where the Python ...(Ellipsis) is now used to refer to all events on a subscription, like theonAny()method but with a Pythonic syntax.
- Added the mkdocs-material social cardsplugin, which provides a preview of the documentation content when shared on social media platforms.
Changed¶
- Standardized the order of static methods, class methods, and instance methods for improved readability.
- Applied Python best practices to optimize the methods within the EventLinkerandEventEmitterclasses.
- Improved validation of variable instances in the event emitters, EventLinker, andEventHandler.
- Updated and improved the test suite to ensure accurate validation and consistency.
- Enabled creation date for the mkdocs git-revision-date-localizedplugin.
- Replaced the mkdocs git-authorsplugin with thegit-committersplugin.
- Updated and improved the package description.
- Updated the tutorial section to incorporate recent changes.
- Enhanced the documentation index page and README file with new examples and better descriptions to showcase the unique features of Pyventus.
Removed¶
- Removed the default value of the onceflag in theEventHandlerclass.
Fixed¶
- Fixed and standardized all package docstrings and code comments for consistency and clarity.
- Addressed minor errors and details in the documentation.
v0.4.1 January 30, 2024¶
Changed¶
- Optimized the size of the source distribution (sdist) build by including only essential files and directories, such
  as the /srcand/testsdirectories, as well as the following files:.gitignore,pyproject.toml,CITATION.cff,README, andLICENSE.
- Refactored documentation dependencies into an optional dependency called docs.
- Updated the deploy-docs.ymlGitHub workflow to leverage the new optional dependencydocs.
- Updated the EventEmissionclass with the@finaldecorator from the typing module, indicating that it is meant for internal use only and should not be subclassed.
Fixed¶
- Addressed minor errors and details in the documentation.
v0.4.0 January 6, 2024¶
Added¶
- Added FastAPIEventEmitterimplementation to facilitate seamless integration with theFastAPIframework.
- Added tests for FastAPIEventEmitterto validate its behavior and ensure proper operation.
- Added documentation for FastAPIEventEmitter, including tutorials and API references.
- Integrated the Coveralls.ioworkflow to generate coverage badge and reports.
- Included coverage badges on the main documentation page and the readme file.
- Introduced permalinks within the documentation for easy navigation.
Changed¶
- Updated pyproject.tomlwith the new optional dependency forFastAPIintegration.
Fixed¶
- Addressed minor errors in the Pyventus documentation to improve accuracy and clarity.
v0.3.0 December 29, 2023¶
Breaking Changes¶
- Introduced EventEmissionobject to encapsulate the processing of event emissions. This changes the_execute()method ofEventEmitterbut provides a cleaner, more scalable, and efficient approach.
- Renamed all debug flags from debug_modetodebugfor enhanced clarity and consistency.
- Renamed EventEmitter's _execute()method to_process()to better reflect its purpose of processing event emissions.
Added¶
- Added CeleryEventEmitterimplementation to leverage the Celery distributed task queue for event handling.
- Added tests for CeleryEventEmitterto validate its behavior and ensure proper operation.
- Added documentation for CeleryEventEmitter, including tutorials and API references.
Changed¶
- Restructured the documentation for event emitters tutorials and API references to improve organization and clarity.
- Updated the contributing.mdpage to include the Troubleshooting Hatch Environment Errors section.
- Updated the EventEmitterAPI documentation to include theEventEmissionclass reference.
- Updated pyproject.tomlwith the new optional dependency forCeleryintegration.
- Updated mypyignore flags to properly silence specific false positive error codes.
Fixed¶
- Addressed minor errors in the Pyventus documentation.
v0.2.1 December 17, 2023¶
Changed¶
- Updated docstring links throughout the package to refer to the official documentation.
- Updated the RQEventEmitterAPI Reference and Tutorials docs to reflect the new optional import.
Fixed¶
- Resolved the issue where the RQEventEmitterclass was automatically imported in the main package, requiring the installation of its optional dependency to use any of the package's core functionalities. It is now fully optional.
- Fixed issues with invalid links in the documentation.
v0.2.0 December 16, 2023¶
Added¶
- Introduced the publish to PyPIworkflow, automating the uploading of package builds when new releases are created.
- Added the mkdocs-git-authorsplugin to display git authors of a markdown page in the documentation.
- Added badges to the main page of the documentation as well as the readme file.
- Added a code of conduct for the project, using the Contributor Covenant v2.1.
- Included a CITATION.cfffile to facilitate academic citations.
Changed¶
- Renamed the tests.ymlworkflow torun-tests.yml.
- Updated the deploy-docs.ymlworkflow with themkdocs-git-authorsplugin dependency.
- Modified the mkdocs.ymlconfig file by adding thesite_urlandsite_authorproperties.
- Updated the pyproject.tomlfile with themkdocs-git-authorsplugin dependency and python package keywords.
Fixed¶
- Fixed the python version in the deploy-docs.ymlworkflow.
- Resolved issues with relative links in the documentation.
v0.1.0 December 15, 2023¶
Initial Implementation¶
This release introduces Pyventus v0.1.0, a modern and robust Python package for event-driven programming. Pyventus provides developers with a comprehensive suite of tools and utilities to define, emit, and orchestrate events. It empowers developers to build scalable, extensible, and loosely-coupled event-driven applications.
- Implementation Details: The first implementation includes all the core functionalities of the package, encompassing events, event linkers, event emitters, event handlers, and more.
- Testing and Coverage: This release includes a test suite that verifies the correctness of the package implementation. It also integrates code coverage, achieving 100% test coverage. The tests are configured to run automatically via GitHub Actions on both push and pull requests to the master branch.
- Formatter and Lint Configuration: A formatter and lint configuration have been added to the project. This ensures consistent code style, maintainability, and adherence to the established coding standards defined in the project documentation.
- Documentation: Additionally, this release includes comprehensive documentation for the package. The documentation covers the main page, a detailed getting started guide, tutorials, API reference, and release notes.