[Python-checkins] CVS: python/dist/src/Lib os.py,1.47,1.48

Guido van Rossum gvanrossum@users.sourceforge.net
Thu, 18 Oct 2001 18:32:01 -0700


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv3916/Lib

Modified Files:
	os.py 
Log Message:
SF patch #460805 by Chris Gonnerman: Support for unsetenv()

This adds unsetenv to posix, and uses it in the __delitem__ method of
os.environ.

(XXX Should we change the preferred name for putenv to setenv, for
consistency?)



Index: os.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/os.py,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -d -r1.47 -r1.48
*** os.py	2001/03/07 09:05:44	1.47
--- os.py	2001/10/19 01:31:59	1.48
***************
*** 355,358 ****
--- 355,366 ----
      import UserDict
  
+     # Fake unsetenv() for Windows
+     # not sure about os2 and dos here but 
+     # I'm guessing they are the same.
+ 
+     if name in ('os2', 'nt', 'dos'):
+         def unsetenv(key):
+             putenv(key, "")
+ 
      if name == "riscos":
          # On RISC OS, all env access goes through getenv and putenv
***************
*** 371,376 ****
              def __getitem__(self, key):
                  return self.data[key.upper()]
!             def __delitem__(self, key):
!                 del self.data[key.upper()]
              def has_key(self, key):
                  return self.data.has_key(key.upper())
--- 379,391 ----
              def __getitem__(self, key):
                  return self.data[key.upper()]
!             try:
!                 unsetenv
!             except NameError:
!                 def __delitem__(self, key):
!                     del self.data[key.upper()]
!             else:
!                 def __delitem__(self, key):
!                     unsetenv(key)
!                     del self.data[key.upper()]
              def has_key(self, key):
                  return self.data.has_key(key.upper())
***************
*** 392,395 ****
--- 407,419 ----
                  for k, v in dict.items():
                      self[k] = v
+             try:
+                 unsetenv
+             except NameError:
+                 pass
+             else:
+                 def __delitem__(self, key):
+                     unsetenv(key)
+                     del self.data[key]
+                 
  
      environ = _Environ(environ)