_Environ(): Added __getinitargs__() method so os.environ.copy() works,
as does unpickling, as in: pickle.loads(pickle.dumps(os.environ)).
Hope this is right! Don't shoot me Guido. :-)
diff --git a/Lib/os.py b/Lib/os.py
index 16d0af9..2776cd7 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -162,8 +162,13 @@
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)