[pypy-svn] rev 2490 - pypy/trunk/src/pypy/objspace/std

pmaupin at codespeak.net pmaupin at codespeak.net
Thu Dec 18 13:24:14 CET 2003


Author: pmaupin
Date: Thu Dec 18 13:24:13 2003
New Revision: 2490

Modified:
   pypy/trunk/src/pypy/objspace/std/dicttype.py
Log:
Fix setdefault with one parameter, and popitem on empty dict

Modified: pypy/trunk/src/pypy/objspace/std/dicttype.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/dicttype.py	(original)
+++ pypy/trunk/src/pypy/objspace/std/dicttype.py	Thu Dec 18 13:24:13 2003
@@ -19,7 +19,7 @@
     dict_get        = MultiMethod('get',        3, defaults=(None,))
     dict_pop        = MultiMethod('pop',        2, varargs=True)
     dict_popitem    = MultiMethod('popitem',    1)
-    dict_setdefault = MultiMethod('setdefault', 3)
+    dict_setdefault = MultiMethod('setdefault', 3, defaults=(None,))
     dict_update     = MultiMethod('update',     2)
     dict_iteritems  = MultiMethod('iteritems',  1)
     dict_iterkeys   = MultiMethod('iterkeys',   1)
@@ -41,7 +41,10 @@
         d[k] = o[k]
 
 def app_dict_popitem__ANY(d):
-    k = d.keys()[0]
+    k = d.keys()
+    if not k:
+        raise KeyError("popitem(): dictionary is empty")
+    k = k[0]
     v = d[k]
     del d[k]
     return k, v


More information about the Pypy-commit mailing list