
    &`                         d Z dZ	 ddlmZ dZ e       Zej                  d	      Zy
# e$ r  G d d      Z G d d      ZY 4w xY w)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                       e Zd ZddZy)r   Nc                     t        ||      S N)_FakeSignalselfnamedocs      2/usr/lib/python3/dist-packages/oauthlib/signals.pysignalzNamespace.signal   s    tS))    r   )__name__
__module____qualname__r    r   r   r   r      s    	*r   r   c                   >    e Zd ZdZddZd Zd ZexZxZxZ	xZ
xZZ[y)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                      || _         || _        y r   )r
   __doc__r   s      r   __init__z_FakeSignal.__init__   s    DIDLr   c                     t        d      )NzOsignalling support is unavailable because the blinker library is not installed.)RuntimeError)r	   argskwargss      r   _failz_FakeSignal._fail   s      0 1 1r   c                       y r   r   )akws     r   <lambda>z_FakeSignal.<lambda>   s    r   r   )r   r   r   r   r   r   sendconnect
disconnecthas_receivers_forreceivers_fortemporarily_connected_toconnected_tor   r   r   r   r      sE    			1 %6;	< 	<* 	<0 	<= 	<$|r   r   zscope-changedN)	r   signals_availableblinkerr   ImportErrorr   _signalsr   scope_changedr   r   r   <module>r,      s^   
  !6 ; 0=  * * s   ' AA