Changelog
2023/10/14 Version 11.0.1
- Bump development dependencies, thanks to dependabot
- Support Python 3.12
- Use node.js LTS in GitHub Actions
- Read support Python versions from
pyproject.toml
in GitHub Actions
2023/06/19 Version 11.0.0
- Require Python >= 3.8
2023/06/19 Version 10.0.2
- Remove mention of Python 3.5 from documentation
- Update classifiers in
pyproject.toml
- Add just task to tag releases in git
- Update RTD badge in README.md
- Copy fixes to changelog
2023/06/08 Version 10.0.1
- Remove package.json/package-lock.json
- Use Python 3.8 on Read the Docs
- Various bugfixes for
.readthedocs.yml
2023/06/08 Version 10.0.0
Development Environment Updates:
- Switch from
make
tojust
- Switch from vanilla
pip
topip-tools
environment.yml
updatedenvironment.yml
not currently supported
Packaging Updates:
- Switch from
setup.py
topyproject.toml
(still using setuptools)
Documentation updates:
- Switch documentation generator from Sphinx to mkdocs (including on ReadTheDocs)
- Use Python 3.10 on ReadTheDocs
- Change documentation them to
readthedocs
(old theme not available in mkdocs) - Switch documentation format from RST to markdown (Including in docstrings)
Testing and Linting Updates:
- use
npx
to run pyright pyproject.toml
linting withvalidate-pyproject
API Updates:
- Minor type annotation bugfixes
2023/06/08 Version 9.1.1
- Store AsyncIO Futures in a set
2023/04/30 Version 9.1.0
EventEmitter
supports pickling- Development dependencies updated to latest
- Dependency on mock removed in favor of unittest.mock
- Additional type hints so pyright check passes on latest
- Drop 3.7 support
2022/02/04 Version 9.0.4
- Add
py.typed
file toMANIFEST.in
(ensures mypy actually respects the type annotations)
2022/01/18 Version 9.0.3
- Improve type safety of
EventEmitter#on
,EventEmitter#add_listener
andEventEmitter#listens_to
by parameterizing theHandler
- Minor fixes to documentation
2022/01/17 Version 9.0.2
- Add
tests_require
to setup.py, fixing COPR build - Install as an editable package in
environment.yml
andrequirements_docs.txt
, fixing Conda workflows and ReadTheDocs respectively
2022/01/17 Version 9.0.1
- Fix regression where
EventEmitter#listeners
began crashing when called with uninitialized listeners
2022/01/17 Version 9.0.0
Compatibility:
- Drop 3.6 support
New features:
- New
EventEmitter.event_names()
method (see PR #96) - Type annotations and type checking with
pyright
- Exprimental
pyee.cls
module exposing an@evented
class decorator and a@on
method decorator (see PR #84)
Moved/deprecated interfaces:
pyee.TwistedEventEmitter
->pyee.twisted.TwistedEventEmitter
pyee.AsyncIOEventEmitter
->pyee.asyncio.AsyncIOEventEmitter
pyee.ExecutorEventEmitter
->pyee.executor.ExecutorEventEmitter
pyee.TrioEventEmitter
->pyee.trio.TrioEventEmitter
Removed interfaces:
pyee.CompatEventEmitter
Documentation fixes:
- Add docstring to
BaseEventEmitter
- Update docstrings to reference
EventEmitter
instead ofBaseEventEmitter
throughout
Developer Setup & CI:
- Migrated builds from Travis to GitHub Actions
- Refactor developer setup to use a local virtualenv
2021/8/14 Version 8.2.2
- Correct version in docs
2021/8/14 Version 8.2.1
- Add .readthedocs.yaml file
- Remove vcversioner dependency from docs build
2021/8/14 Version 8.2.0
- Remove test_requires and setup_requires directives from setup.py (closing #82)
- Remove vcversioner from dependencies
- Streamline requirements.txt and environment.yml files
- Update and extend CONTRIBUTING.rst
- CI with GitHub Actions instead of Travis (closing #56)
- Format all code with black
- Switch default branch to
main
- Add the CHANGELOG to Sphinx docs (closing #51)
- Updated copyright information
2020/10/08 Version 8.1.0
- Improve thread safety in base EventEmitter
- Documentation fix in ExecutorEventEmitter
2020/09/20 Version 8.0.1
- Update README to reflect new API
2020/09/20 Version 8.0.0
- Drop support for Python 2.7
- Remove CompatEventEmitter and rename BaseEventEmitter to EventEmitter
- Create an alias for BaseEventEmitter with a deprecation warning
2020/09/20 Version 7.0.4
- setup_requires vs tests_require now correct
- tests_require updated to pass in tox
- 3.7 testing removed from tox
- 2.7 testing removed from Travis
2020/09/04 Version 7.0.3
- Tag license as MIT in setup.py
- Update requirements and environment to pip -e the package
2020/05/12 Version 7.0.2
- Support Python 3.8 by attempting to import TimeoutError from
asyncio.exceptions
- Add LICENSE to package manifest
- Add trio testing to tox
- Add Python 3.8 to tox
- Fix Python 2.7 in tox
2020/01/30 Version 7.0.1
- Some tweaks to the docs
2020/01/30 Version 7.0.0
- Added a
TrioEventEmitter
class for intended use with trio AsyncIOEventEmitter
now correctly handles cancellations- Add a new experimental
pyee.uplift
API for adding new functionality to existing event emitters
2019/04/11 Version 6.0.0
- Added a
BaseEventEmitter
class which is entirely synchronous and intended for simple use and for subclassing - Added an
AsyncIOEventEmitter
class for intended use with asyncio - Added a
TwistedEventEmitter
class for intended use with twisted - Added an
ExecutorEventEmitter
class which runs events in an executor - Deprecated
EventEmitter
(use one of the new classes)
2017/11/18 Version 5.0.0
- CHANGELOG.md reformatted to CHANGELOG.rst
- Added CONTRIBUTORS.rst
- The
listeners
method no longer returns the raw list of listeners, and instead returns a list of unwrapped listeners; This means that mutating listeners on the EventEmitter by mutating the list returned by this method isn't possible anymore, and that for once handlers this method returns the unwrapped handler rather than the wrapped handler once
API now returns the unwrapped handler in both decorator and non-decorator cases- Possible to remove once handlers with unwrapped handlers
- Internally, listeners are now stored on a OrderedDict rather than a list
- Minor stylistic tweaks to make code more pythonic
2017/11/17 Version 4.0.1
- Fix bug in setup.py; Now publishable
2017/11/17 Version 4.0.0
- Coroutines now work with .once
- Wrapped listener is removed prior to hook execution rather than after for synchronous .once handlers
2017/02/12 Version 3.0.3
- Add universal wheel
2017/02/10 Version 3.0.2
- EventEmitter now inherits from object
2016/10/02 Version 3.0.1
- Fixes/Updates to pyee docs
- Uses vcversioner for managing version information
2016/10/02 Version 3.0.0
- Errors resulting from async functions are now proxied to the "error" event, rather than being lost into the aether.
2016/10/01 Version 2.0.3
- Fix setup.py broken in python 2.7
- Add link to CHANGELOG in README
2016/10/01 Version 2.0.2
- Fix RST render warnings in README
2016/10/01 Version 2.0.1
- Add README contents as long_description inside setup.py
2016/10/01 Version 2.0.0
- Drop support for pythons 3.2, 3.3 and 3.4 (support 2.7 and 3.5)
- Use pytest instead of nose
- Removed Event_emitter alias
- Code passes flake8
- Use setuptools (no support for users without setuptools)
- Reogranized docs, hosted on readthedocs.org
- Support for scheduling coroutine functions passed to
@ee.on
2016/02/15 Version 1.0.2
- Make copy of event handlers array before iterating on emit
2015/09/21 Version 1.0.1
- Change URLs to reference jfhbrook
2015/09/20 Version 1.0.0
- Decorators return original function for
on
andonce
- Explicit python 3 support
- Addition of legit license file
- Addition of CHANGELOG.md
- Now properly using semver