U
    Ž“I]ù  ã                   @   sf   d Z dZzddlmZ dZW n4 ek
rP   G dd„ deƒZG dd„ deƒZY nX eƒ Ze d	¡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 Zd Zddd„ZdS )r   Nc                 C   s
   t ||ƒS ©N)Ú_FakeSignal©ÚselfÚnameÚdoc© r	   ú2/usr/lib/python3/dist-packages/oauthlib/signals.pyÚsignal   s    zNamespace.signal)N)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r
   r      s   r   c                   @   sD   e Zd ZdZd	dd„Zdd„ Zdd„ Ze Z Z Z	 Z
 ZZ[dS )
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 r   )r   Ú__doc__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 r   r	   )ÚaÚkwr	   r	   r
   Ú<lambda>   ó    z_FakeSignal.<lambda>)N)r   r   r   r   r   r   ÚsendZconnectZ
disconnectZhas_receivers_forZreceivers_forZtemporarily_connected_toZconnected_tor	   r	   r	   r
   r      s   
ÿ r   zscope-changedN)
r   Zsignals_availableZblinkerr   ÚImportErrorÚobjectr   Z_signalsr   Zscope_changedr	   r	   r	   r
   Ú<module>   s   