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