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

Class Environ

starlette/config.py:18–41  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16
17
18class Environ(MutableMapping[str, str]):
19 def __init__(self, environ: MutableMapping[str, str] = os.environ):
20 self._environ = environ
21 self._has_been_read: set[str] = set()
22
23 def __getitem__(self, key: str) -> str:
24 self._has_been_read.add(key)
25 return self._environ.__getitem__(key)
26
27 def __setitem__(self, key: str, value: str) -> None:
28 if key in self._has_been_read:
29 raise EnvironError(f"Attempting to set environ['{key}'], but the value has already been read.")
30 self._environ.__setitem__(key, value)
31
32 def __delitem__(self, key: str) -> None:
33 if key in self._has_been_read:
34 raise EnvironError(f"Attempting to delete environ['{key}'], but the value has already been read.")
35 self._environ.__delitem__(key)
36
37 def __iter__(self) -> Iterator[str]:
38 return iter(self._environ)
39
40 def __len__(self) -> int:
41 return len(self._environ)
42
43
44environ = Environ()

Callers 2

test_environFunction · 0.90
config.pyFile · 0.85

Calls

no outgoing calls

Tested by 1

test_environFunction · 0.72