[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