diff options
-rw-r--r-- | Doc/library/os.rst | 8 | ||||
-rw-r--r-- | Lib/os.py | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/Doc/library/os.rst b/Doc/library/os.rst index 7f03a75..24830d2 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -115,9 +115,13 @@ process and user. passed to the appropriate process-creation functions to cause child processes to use a modified environment. - 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 - automatically when an item is deleted from ``os.environ``. + automatically when an item is deleted from ``os.environ``, and when + :meth:`os.environ.clear` is called. + + .. versionchanged:: 2.6 + Also unset environment variables when calling :meth:`os.environ.clear`. .. function:: chdir(path) @@ -446,6 +446,10 @@ else: def __delitem__(self, key): unsetenv(key) del self.data[key.upper()] + def clear(self): + for key in self.data.keys(): + unsetenv(key) + del self.data[key] def has_key(self, key): return key.upper() in self.data def __contains__(self, key): @@ -503,6 +507,10 @@ else: def __delitem__(self, key): unsetenv(key) del self.data[key] + def clear(self): + for key in self.data.keys(): + unsetenv(key) + del self.data[key] def copy(self): return dict(self) |