&`dZdZ ddlmZdZeZejd Zy #e$rGddZGddZY4wxYw) 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) NamespaceTceZdZddZy)rNct||SN) _FakeSignalselfnamedocs 2/usr/lib/python3/dist-packages/oauthlib/signals.pysignalzNamespace.signal stS) )r)__name__ __module__ __qualname__r rr rr s *rrc>eZdZdZddZdZdZexZxZxZ xZ xZ Z [y)raIf 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 ||_||_yr)r __doc__rs r __init__z_FakeSignal.__init__sDIDLrctd)NzOsignalling support is unavailable because the blinker library is not installed.) RuntimeError)r argskwargss r _failz_FakeSignal._fails 01 1rcyrr)akws r z_FakeSignal.srr) rrrrrrsendconnect disconnecthas_receivers_for receivers_fortemporarily_connected_to connected_torrr rrsE   1%6; < <* <0 <= < $| rrz scope-changedN) rsignals_availableblinkerr ImportErrorr_signalsr scope_changedrrr r,s^ !6 ;0 =** s'AA