sessions.py — flask Source File
Architecture documentation for sessions.py, a python file in the flask codebase. 13 imports, 4 dependents.
Entity Profile
Dependency Diagram
graph LR f793a407_79ea_667a_f29e_29bbf57c781f["sessions.py"] 50d1a27a_8bde_54be_3865_c654d5524051["json.tag"] f793a407_79ea_667a_f29e_29bbf57c781f --> 50d1a27a_8bde_54be_3865_c654d5524051 9612cfdd_2178_92c0_2ed7_16ebb0c72901["app.py"] f793a407_79ea_667a_f29e_29bbf57c781f --> 9612cfdd_2178_92c0_2ed7_16ebb0c72901 9f8cc56e_d5c4_e7a8_438a_3124c0dd5de5["Flask"] f793a407_79ea_667a_f29e_29bbf57c781f --> 9f8cc56e_d5c4_e7a8_438a_3124c0dd5de5 fb9bd0c5_9d0a_c235_58cf_8d691dde64fb["wrappers.py"] f793a407_79ea_667a_f29e_29bbf57c781f --> fb9bd0c5_9d0a_c235_58cf_8d691dde64fb eae007fa_ef39_ed97_113d_df4ad5001c0e["Request"] f793a407_79ea_667a_f29e_29bbf57c781f --> eae007fa_ef39_ed97_113d_df4ad5001c0e d37e98da_a97c_3126_ebd5_0a54e0ea9b29["Response"] f793a407_79ea_667a_f29e_29bbf57c781f --> d37e98da_a97c_3126_ebd5_0a54e0ea9b29 35e18c72_5163_709e_ecef_3bb55bc800bb["collections.abc"] f793a407_79ea_667a_f29e_29bbf57c781f --> 35e18c72_5163_709e_ecef_3bb55bc800bb 9f1adf8e_a27a_b709_d349_73768373e46d["hashlib"] f793a407_79ea_667a_f29e_29bbf57c781f --> 9f1adf8e_a27a_b709_d349_73768373e46d d3e9218c_bf0a_48f5_15c9_90795af6f3ac["typing.py"] f793a407_79ea_667a_f29e_29bbf57c781f --> d3e9218c_bf0a_48f5_15c9_90795af6f3ac bdb4799f_8b0c_fcfd_51cc_f0b833652f8f["datetime"] f793a407_79ea_667a_f29e_29bbf57c781f --> bdb4799f_8b0c_fcfd_51cc_f0b833652f8f 71db8f05_2902_f8e0_0ed2_c0dbc6579acf["itsdangerous"] f793a407_79ea_667a_f29e_29bbf57c781f --> 71db8f05_2902_f8e0_0ed2_c0dbc6579acf ae30ebb5_dd77_01f7_0e7b_30adb2f3df4e["werkzeug.datastructures"] f793a407_79ea_667a_f29e_29bbf57c781f --> ae30ebb5_dd77_01f7_0e7b_30adb2f3df4e 151f2031_7088_18d5_0dfa_595db91e8495["typing_extensions"] f793a407_79ea_667a_f29e_29bbf57c781f --> 151f2031_7088_18d5_0dfa_595db91e8495 9612cfdd_2178_92c0_2ed7_16ebb0c72901["app.py"] 9612cfdd_2178_92c0_2ed7_16ebb0c72901 --> f793a407_79ea_667a_f29e_29bbf57c781f 49f8280b_d7dc_110c_b848_8e7e56bfb19b["ctx.py"] 49f8280b_d7dc_110c_b848_8e7e56bfb19b --> f793a407_79ea_667a_f29e_29bbf57c781f style f793a407_79ea_667a_f29e_29bbf57c781f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
from __future__ import annotations
import collections.abc as c
import hashlib
import typing as t
from collections.abc import MutableMapping
from datetime import datetime
from datetime import timezone
from itsdangerous import BadSignature
from itsdangerous import URLSafeTimedSerializer
from werkzeug.datastructures import CallbackDict
from .json.tag import TaggedJSONSerializer
if t.TYPE_CHECKING: # pragma: no cover
import typing_extensions as te
from .app import Flask
from .wrappers import Request
from .wrappers import Response
class SessionMixin(MutableMapping[str, t.Any]):
"""Expands a basic dictionary with session attributes."""
@property
def permanent(self) -> bool:
"""This reflects the ``'_permanent'`` key in the dict."""
return self.get("_permanent", False) # type: ignore[no-any-return]
@permanent.setter
def permanent(self, value: bool) -> None:
self["_permanent"] = bool(value)
#: Some implementations can detect whether a session is newly
#: created, but that is not guaranteed. Use with caution. The mixin
# default is hard-coded ``False``.
new = False
#: Some implementations can detect changes to the session and set
#: this when that happens. The mixin default is hard coded to
#: ``True``.
modified = True
#: Some implementations can detect when session data is read or
#: written and set this when that happens. The mixin default is hard
#: coded to ``True``.
accessed = True
class SecureCookieSession(CallbackDict[str, t.Any], SessionMixin):
"""Base class for sessions based on signed cookies.
This session backend will set the :attr:`modified` and
:attr:`accessed` attributes. It cannot reliably track whether a
session is new (vs. empty), so :attr:`new` remains hard coded to
``False``.
"""
// ... (340 more lines)
Domain
Subdomains
Functions
Dependencies
Source
Frequently Asked Questions
What does sessions.py do?
sessions.py is a source file in the flask codebase, written in python. It belongs to the ApplicationCore domain, Scaffolding subdomain.
What functions are defined in sessions.py?
sessions.py defines 2 function(s): _lazy_sha1, typing_extensions.
What does sessions.py depend on?
sessions.py imports 13 module(s): Flask, Request, Response, app.py, collections.abc, datetime, hashlib, itsdangerous, and 5 more.
What files import sessions.py?
sessions.py is imported by 4 file(s): app.py, ctx.py, globals.py, testing.py.
Where is sessions.py in the architecture?
sessions.py is located at src/flask/sessions.py (domain: ApplicationCore, subdomain: Scaffolding, directory: src/flask).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free