mirror of
https://github.com/python/cpython.git
synced 2025-07-30 06:34:15 +00:00
Bug #1287: make os.environ.pop() work as expected.
This commit is contained in:
parent
9afb9850f2
commit
1a94ec2664
3 changed files with 13 additions and 3 deletions
|
@ -118,10 +118,11 @@ process and user.
|
||||||
If the platform supports the :func:`unsetenv` function, you can delete items in
|
If the platform supports the :func:`unsetenv` function, you can delete items in
|
||||||
this mapping to unset environment variables. :func:`unsetenv` will be called
|
this mapping to unset environment variables. :func:`unsetenv` will be called
|
||||||
automatically when an item is deleted from ``os.environ``, and when
|
automatically when an item is deleted from ``os.environ``, and when
|
||||||
:meth:`os.environ.clear` is called.
|
one of the :meth:`pop` or :meth:`clear` methods is called.
|
||||||
|
|
||||||
.. versionchanged:: 2.6
|
.. versionchanged:: 2.6
|
||||||
Also unset environment variables when calling :meth:`os.environ.clear`.
|
Also unset environment variables when calling :meth:`os.environ.clear`
|
||||||
|
and :meth:`os.environ.pop`.
|
||||||
|
|
||||||
|
|
||||||
.. function:: chdir(path)
|
.. function:: chdir(path)
|
||||||
|
|
|
@ -450,6 +450,9 @@ else:
|
||||||
for key in self.data.keys():
|
for key in self.data.keys():
|
||||||
unsetenv(key)
|
unsetenv(key)
|
||||||
del self.data[key]
|
del self.data[key]
|
||||||
|
def pop(self, key, *args):
|
||||||
|
unsetenv(key)
|
||||||
|
return self.data.pop(key, *args)
|
||||||
def has_key(self, key):
|
def has_key(self, key):
|
||||||
return key.upper() in self.data
|
return key.upper() in self.data
|
||||||
def __contains__(self, key):
|
def __contains__(self, key):
|
||||||
|
@ -511,6 +514,9 @@ else:
|
||||||
for key in self.data.keys():
|
for key in self.data.keys():
|
||||||
unsetenv(key)
|
unsetenv(key)
|
||||||
del self.data[key]
|
del self.data[key]
|
||||||
|
def pop(self, key, *args):
|
||||||
|
unsetenv(key)
|
||||||
|
return self.data.pop(key, *args)
|
||||||
def copy(self):
|
def copy(self):
|
||||||
return dict(self)
|
return dict(self)
|
||||||
|
|
||||||
|
|
|
@ -274,11 +274,14 @@ Core and builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issues #1181, #1287: unsetenv() is now called when the os.environ.pop()
|
||||||
|
and os.environ.clear() methods are used.
|
||||||
|
|
||||||
- ctypes will now work correctly on 32-bit systems when Python is
|
- ctypes will now work correctly on 32-bit systems when Python is
|
||||||
configured with --with-system-ffi.
|
configured with --with-system-ffi.
|
||||||
|
|
||||||
- Patch #1203: ctypes now does work on OS X when Python is built with
|
- Patch #1203: ctypes now does work on OS X when Python is built with
|
||||||
--disable-toolbox-glue
|
--disable-toolbox-glue.
|
||||||
|
|
||||||
- collections.deque() now supports a "maxlen" argument.
|
- collections.deque() now supports a "maxlen" argument.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue