diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2013-04-14 14:38:35 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2013-04-14 14:38:35 (GMT) |
commit | 43aa0d07e2ab93bde71fb2dd5d300fef524b36cd (patch) | |
tree | 2c3248941c8aef267d978eb71954a239a050979c /Lib/os.py | |
parent | 76b3b2726c3c3c58932b460d9a9af1b5021fd8f9 (diff) | |
parent | 6d10139d70b80cf1326c2763dd13ecc169ce1931 (diff) | |
download | cpython-43aa0d07e2ab93bde71fb2dd5d300fef524b36cd.zip cpython-43aa0d07e2ab93bde71fb2dd5d300fef524b36cd.tar.gz cpython-43aa0d07e2ab93bde71fb2dd5d300fef524b36cd.tar.bz2 |
(Merge 3.3) Close #17702: os.environ now raises KeyError with the original
environment variable name (str on UNIX), instead of using the encoded name
(bytes on UNIX).
Diffstat (limited to 'Lib/os.py')
-rw-r--r-- | Lib/os.py | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -644,7 +644,11 @@ class _Environ(MutableMapping): self._data = data def __getitem__(self, key): - value = self._data[self.encodekey(key)] + try: + value = self._data[self.encodekey(key)] + except KeyError: + # raise KeyError with the original key value + raise KeyError(key) return self.decodevalue(value) def __setitem__(self, key, value): @@ -654,9 +658,13 @@ class _Environ(MutableMapping): self._data[key] = value def __delitem__(self, key): - key = self.encodekey(key) - self.unsetenv(key) - del self._data[key] + encodedkey = self.encodekey(key) + self.unsetenv(encodedkey) + try: + del self._data[encodedkey] + except KeyError: + # raise KeyError with the original key value + raise KeyError(key) def __iter__(self): for key in self._data: |