[pypy-svn] r40417 - in pypy/dist/pypy/module/cclp: . constraint
ale at codespeak.net
ale at codespeak.net
Tue Mar 13 10:48:16 CET 2007
Author: ale
Date: Tue Mar 13 10:48:15 2007
New Revision: 40417
Modified:
pypy/dist/pypy/module/cclp/constraint/constraint.py
pypy/dist/pypy/module/cclp/constraint/domain.py
pypy/dist/pypy/module/cclp/constraint/variable.py
pypy/dist/pypy/module/cclp/variable.py
Log:
Fixes for not demoting methods - still not translatable with --faasen
Modified: pypy/dist/pypy/module/cclp/constraint/constraint.py
==============================================================================
--- pypy/dist/pypy/module/cclp/constraint/constraint.py (original)
+++ pypy/dist/pypy/module/cclp/constraint/constraint.py Tue Mar 13 10:48:15 2007
@@ -10,7 +10,7 @@
from pypy.objspace.std.dictobject import W_DictObject
from pypy.module.cclp.types import W_Constraint, W_AbstractDomain, W_Root, \
- W_CVar as W_Variable
+ W_Var, W_CVar as W_Variable
from pypy.objspace.std.model import StdObjSpaceMultiMethod
@@ -30,6 +30,7 @@
self._space.newint(1)))
self._names_to_vars = {}
for var in w_variables.wrappeditems:
+ assert isinstance(var, W_Var)
self._names_to_vars[var.name_w()] = var
self._variables = w_variables.wrappeditems #unwrap once ...
@@ -57,10 +58,12 @@
assert isinstance(w_variables, W_ListObject)
assert isinstance(w_formula, W_StringObject)
items = object_space.unpackiterable(w_variables)
+ lst = []
for it in items:
assert isinstance(it, W_Variable)
- var_ids = ','.join([var.name_w()
- for var in items])
+ lst.append(it.name_w())
+ var_ids = ','.join(lst) #[var.name_w()
+ # for var in items])
func_head = 'lambda ' + var_ids + ':'
expr = func_head + object_space.str_w(w_formula)
func_obj = ev(object_space, object_space.wrap(expr), object_space.newdict(),
@@ -103,7 +106,7 @@
result_cache = self._space.newdict()
for var in self._variables:
assert isinstance(var, W_Variable)
- result_cache.content[var.w_name()] = self._space.newdict()
+ self._space.setitem(result_cache, var.w_name(), self._space.newdict())
return result_cache
def _assign_values(self):
Modified: pypy/dist/pypy/module/cclp/constraint/domain.py
==============================================================================
--- pypy/dist/pypy/module/cclp/constraint/domain.py (original)
+++ pypy/dist/pypy/module/cclp/constraint/domain.py Tue Mar 13 10:48:15 2007
@@ -75,7 +75,7 @@
def remove_value(self, w_value):
"""Remove value of domain and check for consistency"""
assert isinstance(w_value, baseobjspace.W_Root)
- del self._values.content[w_value]
+ self._space.delitem(self._values, w_value)
self._value_removed()
def w_remove_values(self, w_values):
@@ -91,7 +91,7 @@
assert isinstance(values, list)
if len(values) > 0:
for w_val in values:
- del self._values.content[w_val]
+ self._space.delitem(self._values,w_val)
self._value_removed()
def w_size(self):
@@ -110,7 +110,7 @@
return self._space.newlist(self.get_values())
def get_values(self):
- return [x for x in self._values.content.keys()]
+ return [x for x in self._space.unpackiterable(self._values)]
def __repr__(self):
return '<FD %s>' % str(self.w_get_values())
@@ -143,8 +143,8 @@
def intersection__FiniteDomain_FiniteDomain(space, w_fd1, w_fd2):
- w_v1 = w_fd1._values.content
- res = [w_v for w_v in w_fd2._values.content
+ w_v1 = space.unpackiterable(w_fd1._values)
+ res = [w_v for w_v in space.unpackiterable(w_fd2._values)
if w_v in w_v1]
return make_fd(space, space.newlist(res))
Modified: pypy/dist/pypy/module/cclp/constraint/variable.py
==============================================================================
--- pypy/dist/pypy/module/cclp/constraint/variable.py (original)
+++ pypy/dist/pypy/module/cclp/constraint/variable.py Tue Mar 13 10:48:15 2007
@@ -24,7 +24,7 @@
def bind__CVar_Root(space, w_cvar, w_obj):
#XXX we should (want to) be able to test membership
# in a wrapped against wrappeds into a non-wrapped dict
- if [True for elt in w_cvar.w_dom._values.content
+ if [True for elt in space.unpackiterable(w_cvar.w_dom._values)
if space.is_true(space.eq(w_obj, elt))]:
return bind__Var_Root(space, w_cvar, w_obj)
raise_unification_failure(space, "value not in variable domain")
Modified: pypy/dist/pypy/module/cclp/variable.py
==============================================================================
--- pypy/dist/pypy/module/cclp/variable.py (original)
+++ pypy/dist/pypy/module/cclp/variable.py Tue Mar 13 10:48:15 2007
@@ -289,7 +289,7 @@
def _assign(space, w_var, w_val):
assert isinstance(w_var, W_Var)
if isinstance(w_var, W_CVar):
- if not w_val in w_var.w_dom._values.content:
+ if not w_val in space.unpackiterable(w_var.w_dom._values):
raise_unification_failure(space, "assignment out of domain")
w_var.w_bound_to = w_val
@@ -402,7 +402,7 @@
assert isinstance(w_m1, W_DictObject)
assert isinstance(w_m2, W_DictObject)
#print " :unify mappings", w_m1, w_m2
- for w_xk in w_m1.content.keys():
+ for w_xk in space.unpackiterable(w_m1):
w_xi = space.getitem(w_m1, w_xk)
w_yi = space.getitem(w_m2, w_xk)
if space.is_true(space.is_nb_(w_xi, w_yi)):
More information about the Pypy-commit
mailing list