MCPcopy Index your code
hub / github.com/RustPython/RustPython / _Environ

Class _Environ

Lib/os.py:696–767  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

694from _collections_abc import MutableMapping, Mapping
695
696class _Environ(MutableMapping):
697 def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue):
698 self.encodekey = encodekey
699 self.decodekey = decodekey
700 self.encodevalue = encodevalue
701 self.decodevalue = decodevalue
702 self._data = data
703
704 def __getitem__(self, key):
705 try:
706 value = self._data[self.encodekey(key)]
707 except KeyError:
708 # raise KeyError with the original key value
709 raise KeyError(key) from None
710 return self.decodevalue(value)
711
712 def __setitem__(self, key, value):
713 key = self.encodekey(key)
714 value = self.encodevalue(value)
715 putenv(key, value)
716 self._data[key] = value
717
718 def __delitem__(self, key):
719 encodedkey = self.encodekey(key)
720 unsetenv(encodedkey)
721 try:
722 del self._data[encodedkey]
723 except KeyError:
724 # raise KeyError with the original key value
725 raise KeyError(key) from None
726
727 def __iter__(self):
728 # list() from dict object is an atomic operation
729 keys = list(self._data)
730 for key in keys:
731 yield self.decodekey(key)
732
733 def __len__(self):
734 return len(self._data)
735
736 def __repr__(self):
737 formatted_items = ", ".join(
738 f"{self.decodekey(key)!r}: {self.decodevalue(value)!r}"
739 for key, value in self._data.items()
740 )
741 return f"environ({{{formatted_items}}})"
742
743 def copy(self):
744 return dict(self)
745
746 def setdefault(self, key, value):
747 if key not in self:
748 self[key] = value
749 return self[key]
750
751 def __ior__(self, other):
752 self.update(other)
753 return self

Callers 2

_create_environ_mappingFunction · 0.85
os.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected