MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / _Environ

Class _Environ

tools/python-3.11.9-amd64/Lib/os.py:666–737  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

664from _collections_abc import MutableMapping, Mapping
665
666class _Environ(MutableMapping):
667 def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue):
668 self.encodekey = encodekey
669 self.decodekey = decodekey
670 self.encodevalue = encodevalue
671 self.decodevalue = decodevalue
672 self._data = data
673
674 def __getitem__(self, key):
675 try:
676 value = self._data[self.encodekey(key)]
677 except KeyError:
678 # raise KeyError with the original key value
679 raise KeyError(key) from None
680 return self.decodevalue(value)
681
682 def __setitem__(self, key, value):
683 key = self.encodekey(key)
684 value = self.encodevalue(value)
685 putenv(key, value)
686 self._data[key] = value
687
688 def __delitem__(self, key):
689 encodedkey = self.encodekey(key)
690 unsetenv(encodedkey)
691 try:
692 del self._data[encodedkey]
693 except KeyError:
694 # raise KeyError with the original key value
695 raise KeyError(key) from None
696
697 def __iter__(self):
698 # list() from dict object is an atomic operation
699 keys = list(self._data)
700 for key in keys:
701 yield self.decodekey(key)
702
703 def __len__(self):
704 return len(self._data)
705
706 def __repr__(self):
707 formatted_items = ", ".join(
708 f"{self.decodekey(key)!r}: {self.decodevalue(value)!r}"
709 for key, value in self._data.items()
710 )
711 return f"environ({{{formatted_items}}})"
712
713 def copy(self):
714 return dict(self)
715
716 def setdefault(self, key, value):
717 if key not in self:
718 self[key] = value
719 return self[key]
720
721 def __ior__(self, other):
722 self.update(other)
723 return self

Callers 2

_createenvironFunction · 0.85
os.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected