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

Class State

starlette/datastructures.py:664–704  ·  view source on GitHub ↗

An object that can be used to store arbitrary state. Used for `request.state` and `app.state`.

Source from the content-addressed store, hash-verified

662
663
664class State:
665 """
666 An object that can be used to store arbitrary state.
667
668 Used for `request.state` and `app.state`.
669 """
670
671 _state: dict[str, Any]
672
673 def __init__(self, state: dict[str, Any] | None = None):
674 if state is None:
675 state = {}
676 super().__setattr__("_state", state)
677
678 def __setattr__(self, key: Any, value: Any) -> None:
679 self._state[key] = value
680
681 def __getattr__(self, key: Any) -> Any:
682 try:
683 return self._state[key]
684 except KeyError:
685 message = "'{}' object has no attribute '{}'"
686 raise AttributeError(message.format(self.__class__.__name__, key))
687
688 def __delattr__(self, key: Any) -> None:
689 del self._state[key]
690
691 def __getitem__(self, key: str) -> Any:
692 return self._state[key]
693
694 def __setitem__(self, key: str, value: Any) -> None:
695 self._state[key] = value
696
697 def __delitem__(self, key: str) -> None:
698 del self._state[key]
699
700 def __iter__(self) -> Iterator[str]:
701 return iter(self._state)
702
703 def __len__(self) -> int:
704 return len(self._state)

Callers 3

stateMethod · 0.90
__init__Method · 0.90

Calls

no outgoing calls

Tested by 1