�
�cJ@ � � � d Z ddlmZ ddlmZ ddlmZ ddlmZm Z m
Z
mZmZm
Z
e
d� � Zde_ dZ G d� d e� � Z ed
� � Z G d� de� � Z G d
� de� � 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.
� )�contextmanager)�warn)�WeakValueDictionary)� WeakTypes�defaultdict�hashable_identity�
lazy_property� reference�symbol�ANYzToken for "any sender".c � � e Zd ZdZeZed� � � Zed� � � Zdd�Zedfd�Z dd �Z
eefd
�� � Zefd�Z
d� Zd
� Zd� Zefd�Zd� Zd� Zd� Zd� Zd� ZdS )�SignalzA notification emitter.c �" |