Author: jmorliaguet
Date: Mon May  1 19:22:45 2006
New Revision: 3010

Modified:
   cpsskins/branches/paris-sprint-2006/relations/relations.py
Log:

- more robust method



Modified: cpsskins/branches/paris-sprint-2006/relations/relations.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/relations/relations.py  (original)
+++ cpsskins/branches/paris-sprint-2006/relations/relations.py  Mon May  1 
19:22:45 2006
@@ -73,10 +73,9 @@
             raise IOError("Cannot set the relates of a stored relation.")
         if not isinstance(relates, (list, tuple)):
             raise TypeError("Relates must be passed as a list or as a tuple.")
-        if 1 <= len(relates) <= 3:
-            self._relates = tuple([trusted(r) for r in relates])
-        else:
+        if len(relates) != self.arity:
             raise ValueError("Incorrect number of relates (%s)" % len(relates))
+        self._relates = tuple([trusted(r) for r in relates])
 
     predicate = property(getPredicate, setPredicate)
 
@@ -108,6 +107,8 @@
     """
     implements(IMonadicRelation)
 
+    arity = 1
+
     def __init__(self, predicate=None, first=None):
         self._predicate = trusted(predicate)
         self._tuple = trusted(first),
@@ -154,6 +155,8 @@
     """
     implements(IDyadicRelation)
 
+    arity = 2
+
     def __init__(self, predicate=u'', first=None, second=None):
         self._predicate = trusted(predicate)
         self._tuple = trusted(first), trusted(second)
@@ -209,6 +212,8 @@
     """
     implements(ITriadicRelation)
 
+    arity = 3
+
     def __init__(self, predicate=None, first=None, second=None, third=None):
         self._predicate = trusted(predicate)
         self._tuple = trusted(first), trusted(second), trusted(third)
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to