# pydoc > blinker

---
type: CommandReference
command: blinker
mode: pydoc
section: ""
source: pydoc3
---

## Quick Reference

- `from blinker import Signal` — Import the Signal class.
- `on_ready = Signal()` — Create a signal.
- `on_ready.connect(receiver, sender=ANY, weak=True)` — Connect a receiver.
- `on_ready.send(sender, **kwargs)` — Emit the signal.
- `with on_ready.connected_to(receiver):` — Temporarily connect a receiver.
- `on_ready.disconnect(receiver, sender=ANY)` — Disconnect a receiver.
- `named_signal = NamedSignal('name', doc=None)` — Create a named signal.
- `ns = Namespace(); ns.signal('name')` — Create a namespace and get a signal.

## Name

blinker — A fast, simple object-to-object and broadcast signaling library.

## Classes

### `Signal`

- `Signal(doc=None)` — Create a notification emitter.
- `connect(receiver, sender=ANY, weak=True)` — Connect *receiver* to signal events sent by *sender*. *receiver* is a callable invoked with `sender=` as positional argument and any `**kwargs` from `send`. *sender* defaults to `ANY` (all senders). *weak* defaults to `True` (use weak reference).
- `connect_via(sender, weak=False)` — Decorator to connect the decorated function as a receiver for *sender*. *weak* defaults to `False`.
- `connected_to(receiver, sender=ANY)` — Context manager. Temporarily connects *receiver* for the duration of the `with` block.
- `disconnect(receiver, sender=ANY)` — Disconnect *receiver* from *sender* (or all senders if `ANY`).
- `has_receivers_for(sender)` — Optimistic check: `True` if there is probably a receiver for *sender*.
- `receivers_for(sender)` — Iterate over all live receivers listening for *sender*.
- `send(*sender, **kwargs)` — Emit the signal on behalf of *sender*. Returns list of `(receiver, return_value)` tuples. Only accepts one positional argument (the sender).
- `receiver_connected` — Signal emitted after each `connect`. Arguments: `receiver`, `sender`, `weak`.
- `receiver_disconnected` — Signal emitted after each explicit `disconnect`. Arguments: `receiver`, `sender`.
- `ANY = ANY` — Token for "any sender".

### `NamedSignal`

- `NamedSignal(name, doc=None)` — A named generic notification emitter. Inherits all methods from `Signal`.
- `__repr__(self)` — Return `repr(self)`.

### `Namespace`

- `signal(name, doc=None)` — Return the `NamedSignal` *name*, creating it if required. Repeated calls return the same signal object.
- Inherits all methods from `builtins.dict`.

### `WeakNamespace`

- `WeakNamespace(other=(), /, **kw)` — A weak mapping of signal names to signals. Automatically cleans up unused signals when the last reference goes out of scope. Provides legacy compatibility with Blinker <= 1.2.
- `signal(name, doc=None)` — Same as `Namespace.signal`.
- Inherits methods from `weakref.WeakValueDictionary`.

## Functions

- `signal(name, doc=None)` — Return the `NamedSignal` *name* from the default namespace, creating it if required.

## Data

- `ANY = ANY` — Token for "any sender".
- `receiver_connected` — Global signal sent by a `Signal` after a receiver connects. Deprecated since 1.2; use per-signal `receiver_connected` instead.
- `__all__` — List of public names: `['ANY', 'NamedSignal', 'Namespace', 'Signal', 'WeakNamespace', ...]`.

## See Also

- [Blinker Documentation](https://pythonhosted.org/blinker/)
- [Flask signals](https://flask.palletsprojects.com/en/stable/signals/) (used extensively in Flask)