MCPcopy Create free account
hub / github.com/encode/starlette / Session

Class Session

starlette/middleware/sessions.py:94–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92
93
94class Session(dict[str, typing.Any]):
95 accessed: bool = False
96 modified: bool = False
97
98 def mark_accessed(self) -> None:
99 self.accessed = True
100
101 def mark_modified(self) -> None:
102 self.accessed = True
103 self.modified = True
104
105 def __setitem__(self, key: str, value: typing.Any) -> None:
106 self.mark_modified()
107 super().__setitem__(key, value)
108
109 def __delitem__(self, key: str) -> None:
110 self.mark_modified()
111 super().__delitem__(key)
112
113 def clear(self) -> None:
114 self.mark_modified()
115 super().clear()
116
117 def pop(self, key: str, *args: typing.Any) -> typing.Any:
118 self.modified = self.modified or key in self
119 return super().pop(key, *args)
120
121 def popitem(self) -> tuple[str, typing.Any]:
122 item = super().popitem()
123 self.mark_modified()
124 return item
125
126 def setdefault(self, key: str, default: typing.Any = None) -> typing.Any:
127 if key not in self:
128 self.mark_modified()
129 return super().setdefault(key, default)
130
131 def update(self, *args: typing.Any, **kwargs: typing.Any) -> None:
132 self.mark_modified()
133 super().update(*args, **kwargs)
134
135 def __ior__(self, other: typing.Any, /) -> Session: # type: ignore[override,misc]
136 self.mark_modified()
137 return super().__ior__(other)

Callers 2

__call__Method · 0.85

Calls

no outgoing calls

Tested by 1