3
,�[� � @ sf d Z dZyddlmZ dZW n4 ek
rP G dd� de�ZG dd� de�ZY nX e� Zejd �Z d
S )z�
Implements signals based on blinker if available, otherwise
falls silently back to a noop. Shamelessly stolen from flask.signals:
https://github.com/mitsuhiko/flask/blob/master/flask/signals.py
F� )� NamespaceTc @ s e Zd Zddd�ZdS )r Nc C s
t ||�S )N)�_FakeSignal)�self�name�doc� r �/usr/lib/python3.6/signals.py�signal
s zNamespace.signal)N)�__name__�
__module__�__qualname__r r r r r r s r c @ sD e Zd ZdZd dd�Zdd� Zdd� Ze Z Z Z Z
ZZ[dS )
r a If blinker is unavailable, create a fake class with the same
interface that allows sending of signals but will fail with an
error on anything else. Instead of doing anything on send, it
will just ignore the arguments and do nothing instead.
Nc C s || _ || _d S )N)r �__doc__)r r r r r r �__init__ s z_FakeSignal.__init__c O s t d��d S )NzOsignalling support is unavailable because the blinker library is not installed.)�RuntimeError)r �args�kwargsr r r �_fail s z_FakeSignal._failc O s d S )Nr )�a�kwr r r �<lambda> s z_FakeSignal.<lambda>)N)
r
r r r
r r �sendZconnectZ
disconnectZhas_receivers_forZ
receivers_forZtemporarily_connected_toZconnected_tor r r r r s
r z
scope-changedN)
r
Zsignals_availableZblinkerr �ImportError�objectr Z_signalsr Z
scope_changedr r r r �<module> s