MCPcopy
hub / github.com/encode/starlette / Session

Class Session

starlette/middleware/sessions.py:91–125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89
90
91class Session(dict[str, typing.Any]):
92 accessed: bool = False
93 modified: bool = False
94
95 def mark_accessed(self) -> None:
96 self.accessed = True
97
98 def mark_modified(self) -> None:
99 self.accessed = True
100 self.modified = True
101
102 def __setitem__(self, key: str, value: typing.Any) -> None:
103 self.mark_modified()
104 super().__setitem__(key, value)
105
106 def __delitem__(self, key: str) -> None:
107 self.mark_modified()
108 super().__delitem__(key)
109
110 def clear(self) -> None:
111 self.mark_modified()
112 super().clear()
113
114 def pop(self, key: str, *args: typing.Any) -> typing.Any:
115 self.modified = self.modified or key in self
116 return super().pop(key, *args)
117
118 def setdefault(self, key: str, default: typing.Any = None) -> typing.Any:
119 if key not in self:
120 self.mark_modified()
121 return super().setdefault(key, default)
122
123 def update(self, *args: typing.Any, **kwargs: typing.Any) -> None:
124 self.mark_modified()
125 super().update(*args, **kwargs)

Callers 2

__call__Method · 0.85

Calls

no outgoing calls

Tested by 1