Home / Class/ _AppCtxGlobals Class — flask Architecture

_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__)

Defined In

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