3 `¨=\ùã @sfdZdZyddlmZdZWn4ek rPGdd„deƒZGdd„deƒZYnXeƒ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@seZdZddd„ZdS)rNcCs t||ƒS)N)Ú _FakeSignal)ÚselfÚnameÚdoc©rúj/private/var/folders/47/550316q90kl84vt_jn5ctz8chwmm0c/T/pip-install-yoigbb1v/oauthlib/oauthlib/signals.pyÚsignal szNamespace.signal)N)Ú__name__Ú __module__Ú __qualname__r rrrrr src@sDeZdZdZd dd„Zdd„Zdd„ZeZZZ Z Z Z [dS) 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. NcCs||_||_dS)N)rÚ__doc__)rrrrrrÚ__init__sz_FakeSignal.__init__cOs tdƒ‚dS)NzOsignalling support is unavailable because the blinker library is not installed.)Ú RuntimeError)rÚargsÚkwargsrrrÚ_failsz_FakeSignal._failcOsdS)Nr)ÚaÚkwrrrÚsz_FakeSignal.)N) r r r r rrÚsendÚconnectZ disconnectZhas_receivers_forZ receivers_forZtemporarily_connected_toZ connected_torrrrrs  rz scope-changedN) r Zsignals_availableZblinkerrÚ ImportErrorÚobjectrZ_signalsr Z scope_changedrrrrÚs