]> granicus.if.org Git - python/commitdiff
_Environ(): Added __getinitargs__() method so os.environ.copy() works,
authorBarry Warsaw <barry@python.org>
Mon, 1 Dec 1997 04:30:19 +0000 (04:30 +0000)
committerBarry Warsaw <barry@python.org>
Mon, 1 Dec 1997 04:30:19 +0000 (04:30 +0000)
as does unpickling, as in: pickle.loads(pickle.dumps(os.environ)).

Hope this is right!  Don't shoot me Guido. :-)

Lib/os.py

index 16d0af9240e654a5432bb71d3cf8c27bca69a957..2776cd7c670a965d8e3d0f06630e9e6c5d8c5859 100644 (file)
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -162,8 +162,13 @@ else:
                def __init__(self, environ):
                        UserDict.UserDict.__init__(self)
                        self.data = environ
+               def __getinitargs__(self):
+                       import copy
+                       return (copy.copy(self.data),)
                def __setitem__(self, key, item):
                        putenv(key, item)
                        self.data[key] = item
+               def __copy__(self):
+                       return _Environ(self.data.copy())
 
        environ = _Environ(environ)