You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							2.2 KiB
						
					
					
				# -*- coding: utf-8 -*-
 | 
						|
"""
 | 
						|
    flask.signals
 | 
						|
    ~~~~~~~~~~~~~
 | 
						|
 | 
						|
    Implements signals based on blinker if available, otherwise
 | 
						|
    falls silently back to a noop.
 | 
						|
 | 
						|
    :copyright: © 2010 by the Pallets team.
 | 
						|
    :license: BSD, see LICENSE for more details.
 | 
						|
"""
 | 
						|
 | 
						|
signals_available = False
 | 
						|
try:
 | 
						|
    from blinker import Namespace
 | 
						|
    signals_available = True
 | 
						|
except ImportError:
 | 
						|
    class Namespace(object):
 | 
						|
        def signal(self, name, doc=None):
 | 
						|
            return _FakeSignal(name, doc)
 | 
						|
 | 
						|
    class _FakeSignal(object):
 | 
						|
        """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.
 | 
						|
        """
 | 
						|
 | 
						|
        def __init__(self, name, doc=None):
 | 
						|
            self.name = name
 | 
						|
            self.__doc__ = doc
 | 
						|
        def _fail(self, *args, **kwargs):
 | 
						|
            raise RuntimeError('signalling support is unavailable '
 | 
						|
                               'because the blinker library is '
 | 
						|
                               'not installed.')
 | 
						|
        send = lambda *a, **kw: None
 | 
						|
        connect = disconnect = has_receivers_for = receivers_for = \
 | 
						|
            temporarily_connected_to = connected_to = _fail
 | 
						|
        del _fail
 | 
						|
 | 
						|
# The namespace for code signals.  If you are not Flask code, do
 | 
						|
# not put signals in here.  Create your own namespace instead.
 | 
						|
_signals = Namespace()
 | 
						|
 | 
						|
 | 
						|
# Core signals.  For usage examples grep the source code or consult
 | 
						|
# the API documentation in docs/api.rst as well as docs/signals.rst
 | 
						|
template_rendered = _signals.signal('template-rendered')
 | 
						|
before_render_template = _signals.signal('before-render-template')
 | 
						|
request_started = _signals.signal('request-started')
 | 
						|
request_finished = _signals.signal('request-finished')
 | 
						|
request_tearing_down = _signals.signal('request-tearing-down')
 | 
						|
got_request_exception = _signals.signal('got-request-exception')
 | 
						|
appcontext_tearing_down = _signals.signal('appcontext-tearing-down')
 | 
						|
appcontext_pushed = _signals.signal('appcontext-pushed')
 | 
						|
appcontext_popped = _signals.signal('appcontext-popped')
 | 
						|
message_flashed = _signals.signal('message-flashed')
 | 
						|
 |