[pypy-svn] r62456 - pypy/trunk/pypy/objspace/std
cfbolz at codespeak.net
cfbolz at codespeak.net
Tue Mar 3 13:20:04 CET 2009
Author: cfbolz
Date: Tue Mar 3 13:20:04 2009
New Revision: 62456
Modified:
pypy/trunk/pypy/objspace/std/objspace.py
pypy/trunk/pypy/objspace/std/setobject.py
Log:
Removed some code duplication. Fix an error message. Kill the rarely used
space.new[frozen]set.
Modified: pypy/trunk/pypy/objspace/std/objspace.py
==============================================================================
--- pypy/trunk/pypy/objspace/std/objspace.py (original)
+++ pypy/trunk/pypy/objspace/std/objspace.py Tue Mar 3 13:20:04 2009
@@ -556,12 +556,6 @@
def newcomplex(self, realval, imagval):
return W_ComplexObject(realval, imagval)
- def newset(self, rdict_w):
- return W_SetObject(self, rdict_w)
-
- def newfrozenset(self, rdict_w):
- return W_FrozensetObject(self, rdict_w)
-
def newlong(self, val): # val is an int
return W_LongObject.fromint(self, val)
Modified: pypy/trunk/pypy/objspace/std/setobject.py
==============================================================================
--- pypy/trunk/pypy/objspace/std/setobject.py (original)
+++ pypy/trunk/pypy/objspace/std/setobject.py Tue Mar 3 13:20:04 2009
@@ -76,7 +76,7 @@
if w_setiter.len != len(content):
w_setiter.len = -1 # Make this error state sticky
raise OperationError(space.w_RuntimeError,
- space.wrap("dictionary changed size during iteration"))
+ space.wrap("Set changed size during iteration"))
# look for the next entry
w_result = w_setiter.next_entry()
if w_result is not None:
@@ -116,7 +116,8 @@
def _convert_set_to_frozenset(space, w_obj):
if space.is_true(space.isinstance(w_obj, space.w_set)):
- return space.newfrozenset(make_setdata_from_w_iterable(space, w_obj))
+ return W_FrozensetObject(space,
+ make_setdata_from_w_iterable(space, w_obj))
else:
return None
@@ -197,6 +198,16 @@
return ld, rdict
+def _issubset_dict(ldict, rdict):
+ if len(ldict) > len(rdict):
+ return False
+
+ for w_key in ldict:
+ if w_key not in rdict:
+ return False
+ return True
+
+
#end helper functions
def set_update__Set_Set(space, w_left, w_other):
@@ -327,13 +338,7 @@
if space.is_w(w_left, w_other):
return space.w_True
ld, rd = w_left.setdata, w_other.setdata
- if len(ld) > len(rd):
- return space.w_False
-
- for w_key in ld:
- if w_key not in rd:
- return space.w_False
- return space.w_True
+ return space.wrap(_issubset_dict(ld, rd))
set_issubset__Set_Frozenset = set_issubset__Set_Set
frozenset_issubset__Frozenset_Set = set_issubset__Set_Set
@@ -344,13 +349,7 @@
return space.w_True
ld, rd = w_left.setdata, make_setdata_from_w_iterable(space, w_other)
- if len(ld) > len(rd):
- return space.w_False
-
- for w_key in ld:
- if w_key not in rd:
- return space.w_False
- return space.w_True
+ return space.wrap(_issubset_dict(ld, rd))
frozenset_issubset__Frozenset_ANY = set_issubset__Set_ANY
@@ -365,13 +364,7 @@
return space.w_True
ld, rd = w_left.setdata, w_other.setdata
- if len(ld) < len(rd):
- return space.w_False
-
- for w_key in rd:
- if w_key not in ld:
- return space.w_False
- return space.w_True
+ return space.wrap(_issubset_dict(rd, ld))
set_issuperset__Set_Frozenset = set_issuperset__Set_Set
set_issuperset__Frozenset_Set = set_issuperset__Set_Set
@@ -382,13 +375,7 @@
return space.w_True
ld, rd = w_left.setdata, make_setdata_from_w_iterable(space, w_other)
- if len(ld) < len(rd):
- return space.w_False
-
- for w_key in rd:
- if w_key not in ld:
- return space.w_False
- return space.w_True
+ return space.wrap(_issubset_dict(rd, ld))
frozenset_issuperset__Frozenset_ANY = set_issuperset__Set_ANY
More information about the Pypy-commit
mailing list