Unreleased
Released 2024-11-08
- Drop support for Python 3.8. :pr:`175`
- Remove previously deprecated
__version__
,receiver_connected
,Signal.temporarily_connected_to
andWeakNamespace
. :pr:`172` - Skip weakref signal cleanup if the interpreter is shutting down. :issue:`173`
Released 2024-05-06
- Simplify type for
_async_wrapper
and_sync_wrapper
arguments. :pr:`156`
Released 2024-04-28
- Restore identity handling for
str
andint
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 oftyping
. :pr:`150` - Fully specify exported types as reported by pyright. :pr:`152`
Released 2024-04-27
- Deprecate the
__version__
attribute. Use feature detection, orimportlib.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()
asdefault_namespace
. :pr:`145`
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`
Released 2023-09-23
- Fix
SyncWrapperType
andAsyncWrapperType
:pr:`108` - Fixed issue where
connected_to
would not disconnect the receiver if an instance ofBaseException
was raised. :pr:`114`
Released 2023-04-12
- Type annotations are not evaluated at runtime. typing-extensions is not a runtime dependency. :pr:`94`
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`
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 asstr
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.
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.
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.
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 likesignal('foo').connect(...)
could have surprising program behavior depending on import order of modules. Namespace
is now built on a regular dict. UseWeakNamespace
for the older, weak-referencing behavior.Signal.connect('text-sender')
uses an alterate hashing strategy to avoid sharp edges in text identity.
Released 2011-10-26
- Added
Signal.receiver_connected
andSignal.receiver_disconnected
per-Signal
signals. - Deprecated the global
receiver_connected
signal. - Verified Python 3.2 support, no changes needed.
Released 2010-07-21
- Added
@signal.connect_via(sender)
decorator - Added
signal.connected_to
shorthand name for thetemporarily_connected_to
context manager.
Released 2010-03-28
- Python 3.0 and 3.1 compatibility.
Released 2010-02-26
- Added
Signal.temporarily_connected_to
context manager. - Docs! Sphinx docs, project web site.
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.