Created
June 3, 2018 07:52
-
-
Save dsignr/ac105f1028a9f537bb0d12a851d1f15f to your computer and use it in GitHub Desktop.
Sample Python syntax example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
""" | |
flask.globals | |
~~~~~~~~~~~~~ | |
Defines all the global objects that are proxies to the current | |
active context. | |
:copyright: © 2010 by the Pallets team. | |
:license: BSD, see LICENSE for more details. | |
""" | |
from functools import partial | |
from werkzeug.local import LocalStack, LocalProxy | |
_request_ctx_err_msg = '''\ | |
Working outside of request context. | |
This typically means that you attempted to use functionality that needed | |
an active HTTP request. Consult the documentation on testing for | |
information about how to avoid this problem.\ | |
''' | |
_app_ctx_err_msg = '''\ | |
Working outside of application context. | |
This typically means that you attempted to use functionality that needed | |
to interface with the current application object in some way. To solve | |
this, set up an application context with app.app_context(). See the | |
documentation for more information.\ | |
''' | |
def _lookup_req_object(name): | |
top = _request_ctx_stack.top | |
if top is None: | |
raise RuntimeError(_request_ctx_err_msg) | |
return getattr(top, name) | |
def _lookup_app_object(name): | |
top = _app_ctx_stack.top | |
if top is None: | |
raise RuntimeError(_app_ctx_err_msg) | |
return getattr(top, name) | |
def _find_app(): | |
top = _app_ctx_stack.top | |
if top is None: | |
raise RuntimeError(_app_ctx_err_msg) | |
return top.app | |
# context locals | |
_request_ctx_stack = LocalStack() | |
_app_ctx_stack = LocalStack() | |
current_app = LocalProxy(_find_app) | |
request = LocalProxy(partial(_lookup_req_object, 'request')) | |
session = LocalProxy(partial(_lookup_req_object, 'session')) | |
g = LocalProxy(partial(_lookup_app_object, 'g')) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment