Version 1.8.2 ------------- Released 2024-05-06 - Simplify type for ``_async_wrapper`` and ``_sync_wrapper`` arguments. :pr:`156` Version 1.8.1 ------------- Released 2024-04-28 - Restore identity handling for ``str`` and ``int`` senders. :pr:`148` - Fix deprecated ``blinker.base.WeakNamespace`` import. :pr:`149` - Fix deprecated ``blinker.base.receiver_connected import``. :pr:`153` - Use types from ``collections.abc`` instead of ``typing``. :pr:`150` - Fully specify exported types as reported by pyright. :pr:`152` Version 1.8.0 ------------- Released 2024-04-27 - Deprecate the ``__version__`` attribute. Use feature detection, or ``importlib.metadata.version("blinker")``, instead. :issue:`128` - Specify that the deprecated ``temporarily_connected_to`` will be removed in the next version. - Show a deprecation warning for the deprecated global ``receiver_connected`` signal and specify that it will be removed in the next version. - Show a deprecation warning for the deprecated ``WeakNamespace`` and specify that it will be removed in the next version. - Greatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. :pr:`144` - Expose the namespace used by ``signal()`` as ``default_namespace``. :pr:`145` Version 1.7.0 ------------- Released 2023-11-01 - Fixed messages printed to standard error about unraisable exceptions during signal cleanup, typically during interpreter shutdown. :pr:`123` - Allow the Signal ``set_class`` to be customised, to allow calling of receivers in registration order. :pr:`116`. - Drop Python 3.7 and support Python 3.12. :pr:`126` Version 1.6.3 ------------- Released 2023-09-23 - Fix ``SyncWrapperType`` and ``AsyncWrapperType`` :pr:`108` - Fixed issue where ``connected_to`` would not disconnect the receiver if an instance of ``BaseException`` was raised. :pr:`114` Version 1.6.2 ------------- Released 2023-04-12 - Type annotations are not evaluated at runtime. typing-extensions is not a runtime dependency. :pr:`94` Version 1.6.1 ------------- Released 2023-04-09 - Ensure that ``py.typed`` is present in the distributions (to enable other projects to use Blinker's typing). - Require typing-extensions > 4.2 to ensure it includes ``ParamSpec``. :issue:`90` Version 1.6 ----------- Released 2023-04-02 - Add a ``muted`` context manager to temporarily turn off a signal. :pr:`84` - ``int`` instances with the same value will be treated as the same sender, the same as ``str`` instances. :pr:`83` - Add a ``send_async`` method to allow signals to send to coroutine receivers. :pr:`76` - Update and modernise the project structure to match that used by the Pallets projects. :pr:`77` - Add an initial set of type hints for the project. Version 1.5 ----------- Released 2022-07-17 - Support Python >= 3.7 and PyPy. Python 2, Python < 3.7, and Jython may continue to work, but the next release will make incompatible changes. Version 1.4 ----------- Released 2015-07-23 - Verified Python 3.4 support, no changes needed. - Additional bookkeeping cleanup for non-``ANY`` connections at disconnect time. - Added ``Signal._cleanup_bookeeping()`` to prune stale bookkeeping on demand. Version 1.3 ----------- Released 2013-07-03 - The global signal stash behind ``signal()`` is now backed by a regular name-to-``Signal`` dictionary. Previously, weak references were held in the mapping and ephermal usage in code like ``signal('foo').connect(...)`` could have surprising program behavior depending on import order of modules. - ``Namespace`` is now built on a regular dict. Use ``WeakNamespace`` for the older, weak-referencing behavior. - ``Signal.connect('text-sender')`` uses an alterate hashing strategy to avoid sharp edges in text identity. Version 1.2 ----------- Released 2011-10-26 - Added ``Signal.receiver_connected`` and ``Signal.receiver_disconnected`` per-``Signal`` signals. - Deprecated the global ``receiver_connected`` signal. - Verified Python 3.2 support, no changes needed. Version 1.1 ----------- Released 2010-07-21 - Added ``@signal.connect_via(sender)`` decorator - Added ``signal.connected_to`` shorthand name for the ``temporarily_connected_to`` context manager. Version 1.0 ----------- Released 2010-03-28 - Python 3.0 and 3.1 compatibility. Version 0.9 ----------- Released 2010-02-26 - Added ``Signal.temporarily_connected_to`` context manager. - Docs! Sphinx docs, project web site. Version 0.8 ----------- Released 2010-02-14 - Initial release. - Extracted from ``flatland.util.signals``. - Added Python 2.4 compatibility. - Added nearly functional Python 3.1 compatibility. Everything except connecting to instance methods seems to work.