_AppCtxGlobals Class — flask Architecture
Architecture documentation for the _AppCtxGlobals class in ctx.py from the flask codebase.
Entity Profile
Dependency Diagram
graph TD 27fd902b_d034_0c03_9e1b_dd8edc261a75["_AppCtxGlobals"] 49f8280b_d7dc_110c_b848_8e7e56bfb19b["ctx.py"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|defined in| 49f8280b_d7dc_110c_b848_8e7e56bfb19b 1ceda961_9e3e_a465_64cb_8b34fe2317c1["__getattr__()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| 1ceda961_9e3e_a465_64cb_8b34fe2317c1 75a1d695_bf16_641d_14a9_5f797ad92660["__setattr__()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| 75a1d695_bf16_641d_14a9_5f797ad92660 108e3d12_b573_c97e_4add_729458493aa2["__delattr__()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| 108e3d12_b573_c97e_4add_729458493aa2 c1644887_6834_cf5b_9551_6a1aa07a77d7["get()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| c1644887_6834_cf5b_9551_6a1aa07a77d7 9c229141_7037_617a_d840_a301ff163737["pop()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| 9c229141_7037_617a_d840_a301ff163737 68978d8f_e723_82bd_e102_5f78205ce7a8["setdefault()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| 68978d8f_e723_82bd_e102_5f78205ce7a8 e495386d_dd7f_3056_7685_306a9e2e86ca["__contains__()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| e495386d_dd7f_3056_7685_306a9e2e86ca 2cf0cca4_49fe_4de2_d560_f8d1cc623338["__iter__()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| 2cf0cca4_49fe_4de2_d560_f8d1cc623338 1d3f07dc_9109_7e7a_b38b_b74fa5c8b2de["__repr__()"] 27fd902b_d034_0c03_9e1b_dd8edc261a75 -->|method| 1d3f07dc_9109_7e7a_b38b_b74fa5c8b2de
Relationship Graph
Source Code
src/flask/ctx.py lines 29–114
class _AppCtxGlobals:
"""A plain object. Used as a namespace for storing data during an
application context.
Creating an app context automatically creates this object, which is
made available as the :data:`.g` proxy.
.. describe:: 'key' in g
Check whether an attribute is present.
.. versionadded:: 0.10
.. describe:: iter(g)
Return an iterator over the attribute names.
.. versionadded:: 0.10
"""
# Define attr methods to let mypy know this is a namespace object
# that has arbitrary attributes.
def __getattr__(self, name: str) -> t.Any:
try:
return self.__dict__[name]
except KeyError:
raise AttributeError(name) from None
def __setattr__(self, name: str, value: t.Any) -> None:
self.__dict__[name] = value
def __delattr__(self, name: str) -> None:
try:
del self.__dict__[name]
except KeyError:
raise AttributeError(name) from None
def get(self, name: str, default: t.Any | None = None) -> t.Any:
"""Get an attribute by name, or a default value. Like
:meth:`dict.get`.
:param name: Name of attribute to get.
:param default: Value to return if the attribute is not present.
.. versionadded:: 0.10
"""
return self.__dict__.get(name, default)
def pop(self, name: str, default: t.Any = _sentinel) -> t.Any:
"""Get and remove an attribute by name. Like :meth:`dict.pop`.
:param name: Name of attribute to pop.
:param default: Value to return if the attribute is not present,
instead of raising a ``KeyError``.
.. versionadded:: 0.11
"""
if default is _sentinel:
return self.__dict__.pop(name)
else:
return self.__dict__.pop(name, default)
def setdefault(self, name: str, default: t.Any = None) -> t.Any:
"""Get the value of an attribute if it is present, otherwise
set and return a default value. Like :meth:`dict.setdefault`.
:param name: Name of attribute to get.
:param default: Value to set and return if the attribute is not
present.
.. versionadded:: 0.11
"""
return self.__dict__.setdefault(name, default)
def __contains__(self, item: str) -> bool:
return item in self.__dict__
def __iter__(self) -> t.Iterator[str]:
return iter(self.__dict__)
Domain
Defined In
Source
Frequently Asked Questions
What is the _AppCtxGlobals class?
_AppCtxGlobals is a class in the flask codebase, defined in src/flask/ctx.py.
Where is _AppCtxGlobals defined?
_AppCtxGlobals is defined in src/flask/ctx.py at line 29.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free