[Python-checkins] python/dist/src/Lib UserDict.py, 1.26, 1.27 os.py, 1.74, 1.75 weakref.py, 1.20, 1.21

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Thu Mar 4 03:25:46 EST 2004


Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14562/Lib
Modified Files:
	UserDict.py os.py weakref.py 
Log Message:
SF #904720: dict.update should take a 2-tuple sequence like dict.__init_
(Championed by Bob Ippolito.)
The update() method for mappings now accepts all the same argument forms
as the dict() constructor. This includes item lists and/or keyword
arguments.
Index: UserDict.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/UserDict.py,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** UserDict.py	21 Dec 2003 22:19:08 -0000	1.26
--- UserDict.py	4 Mar 2004 08:25:44 -0000	1.27
***************
*** 5,10 ****
 self.data = {}
 if dict is not None:
- if not hasattr(dict,'keys'):
- dict = type({})(dict) # make mapping from a sequence
 self.update(dict)
 if len(kwargs):
--- 5,8 ----
***************
*** 40,51 ****
 def values(self): return self.data.values()
 def has_key(self, key): return self.data.has_key(key)
! def update(self, dict):
! if isinstance(dict, UserDict):
 self.data.update(dict.data)
! elif isinstance(dict, type(self.data)):
 self.data.update(dict)
 else:
 for k, v in dict.items():
 self[k] = v
 def get(self, key, failobj=None):
 if not self.has_key(key):
--- 38,53 ----
 def values(self): return self.data.values()
 def has_key(self, key): return self.data.has_key(key)
! def update(self, dict=None, **kwargs):
! if dict is None:
! pass
! elif isinstance(dict, UserDict):
 self.data.update(dict.data)
! elif isinstance(dict, type({})) or not hasattr(dict, 'items'):
 self.data.update(dict)
 else:
 for k, v in dict.items():
 self[k] = v
+ if len(kwargs):
+ self.data.update(kwargs)
 def get(self, key, failobj=None):
 if not self.has_key(key):
***************
*** 137,151 ****
 del self[k]
 return (k, v)
! def update(self, other):
 # Make progressively weaker assumptions about "other"
! if hasattr(other, 'iteritems'): # iteritems saves memory and lookups
 for k, v in other.iteritems():
 self[k] = v
! elif hasattr(other, '__iter__'): # iter saves memory
! for k in other:
! self[k] = other[k]
! else:
 for k in other.keys():
 self[k] = other[k]
 def get(self, key, default=None):
 try:
--- 139,157 ----
 del self[k]
 return (k, v)
! def update(self, other=None, **kwargs):
 # Make progressively weaker assumptions about "other"
! if other is None:
! pass
! elif hasattr(other, 'iteritems'): # iteritems saves memory and lookups
 for k, v in other.iteritems():
 self[k] = v
! elif hasattr(other, 'keys'):
 for k in other.keys():
 self[k] = other[k]
+ else:
+ for k, v in other:
+ self[k] = v
+ if kwargs:
+ self.update(kwargs)
 def get(self, key, default=None):
 try:
Index: os.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/os.py,v
retrieving revision 1.74
retrieving revision 1.75
diff -C2 -d -r1.74 -r1.75
*** os.py	23 Dec 2003 16:33:28 -0000	1.74
--- os.py	4 Mar 2004 08:25:44 -0000	1.75
***************
*** 434,440 ****
 def get(self, key, failobj=None):
 return self.data.get(key.upper(), failobj)
- def update(self, dict):
- for k, v in dict.items():
- self[k] = v
 def copy(self):
 return dict(self)
--- 434,437 ----
***************
*** 448,454 ****
 putenv(key, item)
 self.data[key] = item
- def update(self, dict):
- for k, v in dict.items():
- self[k] = v
 try:
 unsetenv
--- 445,448 ----
Index: weakref.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/weakref.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** weakref.py	25 May 2003 01:45:11 -0000	1.20
--- weakref.py	4 Mar 2004 08:25:44 -0000	1.21
***************
*** 123,130 ****
 return wr()
 
! def update(self, dict):
 d = self.data
! for key, o in dict.items():
! d[key] = ref(o, self.__makeremove(key))
 
 def values(self):
--- 123,135 ----
 return wr()
 
! def update(self, dict=None, **kwargs):
 d = self.data
! if dict is not None:
! if not hasattr(dict, "items"):
! dict = type({})(dict)
! for key, o in dict.items():
! d[key] = ref(o, self.__makeremove(key))
! if len(kwargs):
! self.update(kwargs)
 
 def values(self):
***************
*** 240,247 ****
 return self.data.setdefault(ref(key, self._remove),default)
 
! def update(self, dict):
 d = self.data
! for key, value in dict.items():
! d[ref(key, self._remove)] = value
 
 
--- 245,257 ----
 return self.data.setdefault(ref(key, self._remove),default)
 
! def update(self, dict=None, **kwargs):
 d = self.data
! if dict is not None:
! if not hasattr(dict, "items"):
! dict = type({})(dict)
! for key, value in dict.items():
! d[ref(key, self._remove)] = value
! if len(kwargs):
! self.update(kwargs)
 
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /