/opt/imunify360/venv/lib/python3.11/site-packages/blinker/__pycache__
Edit: /opt/imunify360/venv/lib/python3.11/site-packages/blinker/__pycache__/base.cpython-311.pyc (19961B)
]j? d Z ddlmZ ddlmZ ddlmZmZmZm Z m
Z
mZmZ ed Z
de
_ dZ G d de Z ed Z G d
de Z G d d
e Z G d de Z e j ZdS )a+ Signals and events.
A small implementation of signals, inspired by a snippet of Django signal
API client code seen in a blog post. Signals are first-class objects and
each manages its own receivers and message emission.
The :func:`signal` function provides singleton behavior for named signals.
)warn)WeakValueDictionary) WeakTypescontextmanagerdefaultdicthashable_identity
lazy_property referencesymbolANYzToken for "any sender".c e Zd ZdZeZed Zed ZddZedfdZ dd Z
eefd
ZefdZ
d Zd
Zd ZefdZd Zd Zd Zd Zd ZdS )SignalzA notification emitter.c " t d S )zEmitted after each :meth:`connect`.
The signal sender is the signal instance, and the :meth:`connect`
arguments are passed through: *receiver*, *sender*, and *weak*.
.. versionadded:: 1.2
z"Emitted after a receiver connects.docr selfs l/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib/python3.11/site-packages/blinker/base.pyreceiver_connectedzSignal.receiver_connected% s >???? c " t d S )a Emitted after :meth:`disconnect`.
The sender is the signal instance, and the :meth:`disconnect` arguments
are passed through: *receiver* and *sender*.
Note, this signal is emitted **only** when :meth:`disconnect` is
called explicitly.
The disconnect signal can not be emitted by an automatic disconnect
(due to a weakly referenced receiver or sender going out of scope),
as the receiver and/or sender instances are no longer available for
use at the time this signal would be emitted.
An alternative approach is available by subscribing to
:attr:`receiver_connected` and setting up a custom weakref cleanup
callback on weak receivers and senders.
.. versionadded:: 1.2
z%Emitted after a receiver disconnects.r r r s r receiver_disconnectedzSignal.receiver_disconnected1 s , ABBBBr Nc |r|| _ i | _ t t | _ t t | _ i | _ dS )zt
:param doc: optional. If provided, will be assigned to the signal's
__doc__ attribute.
N)__doc__ receiversr set_by_receiver
_by_sender
_weak_senders)r r s r __init__zSignal.__init__I sI DL ',,%c**r Tc Z t | }|rt || j }||_ n|}|t u rt
}nt | }| j || | j | | | j
| | ~|t urS|| j vrJ t || j }||_
| j || ~n# t $ r Y nw xY wd| j v rH| j j r< | j | ||| n# | || xY wt j rE| t ur< t | ||| n# | || xY w|S )aa Connect *receiver* to signal events sent by *sender*.
:param receiver: A callable. Will be invoked by :meth:`send` with
`sender=` as a single positional argument and any \*\*kwargs that
were provided to a call to :meth:`send`.
:param sender: Any object or :obj:`ANY`, defaults to ``ANY``.
Restricts notifications delivered to *receiver* to only those
:meth:`send` emissions sent by *sender*. If ``ANY``, the receiver
will always be notified. A *receiver* may be connected to
multiple *sender* values on the same Signal through multiple calls
to :meth:`connect`.
:param weak: If true, the Signal will hold a weakref to *receiver*
and automatically disconnect when *receiver* goes out of scope or
is garbage collected. Defaults to True.
r )receiversenderweak)receiver_arg
sender_argweak_arg)r r
_cleanup_receiverreceiver_idr ANY_IDr
setdefaultr addr r _cleanup_sender sender_id TypeError__dict__r send
disconnect)r r# r$ r% r* receiver_refr/
sender_refs r connectzSignal.connect\ s &