--- a/rtags.py Thu Apr 23 16:10:17 2009 +0200
+++ b/rtags.py Thu Apr 23 16:11:30 2009 +0200
@@ -17,21 +17,21 @@
should use rtags / etype_rtags / add_rtag api. Otherwise, a single tag is
associated to each key, and you should use rtag / etype_rtag / set_rtag api.
"""
-
+
def __init__(self, use_set=False):
self.use_set = use_set
self._tagdefs = {}
-
+
def set_rtag(self, tag, rtype, role, stype='*', otype='*'):
assert not self.use_set
assert role in ('subject', 'object'), role
self._tagdefs[(str(rtype), role, str(stype), str(otype))] = tag
-
+
def del_rtag(self, rtype, role, stype='*', otype='*'):
assert not self.use_set
assert role in ('subject', 'object'), role
del self._tagdefs[(str(rtype), role, str(stype), str(otype))]
-
+
def rtag(self, rtype, role, stype='*', otype='*'):
assert not self.use_set
for key in reversed(self._get_keys(rtype, role, stype, otype)):
@@ -40,18 +40,18 @@
except KeyError:
continue
return None
-
+
def etype_rtag(self, etype, rtype, role, ttype='*'):
if role == 'subject':
return self.rtag(rtype, role, etype, ttype)
return self.rtag(rtype, role, ttype, etype)
-
+
def add_rtag(self, tag, rtype, role, stype='*', otype='*'):
assert self.use_set
assert role in ('subject', 'object'), role
rtags = self._tagdefs.setdefault((rtype, role, stype, otype), set())
rtags.add(tag)
-
+
def rtags(self, rtype, role, stype='*', otype='*'):
assert self.use_set
rtags = set()
@@ -61,13 +61,13 @@
except KeyError:
continue
return rtags
-
+
def etype_rtags(self, etype, rtype, role, ttype='*'):
if role == 'subject':
return self.rtags(rtype, role, etype, ttype)
return self.rtags(rtype, role, ttype, etype)
- def _get_keys(self, rtype, role, stype, otype):
+ def _get_keys(self, rtype, role, stype, otype):
assert role in ('subject', 'object'), role
keys = [(rtype, role, '*', '*'),
(rtype, role, '*', otype),
@@ -78,9 +78,9 @@
if stype == '*':
keys.remove((rtype, role, '*', otype))
if otype == '*':
- keys.remove((rtype, role, stype, '*'))
+ keys.remove((rtype, role, stype, '*'))
return keys
-
+
# dict compat
def __getitem__(self, key):
if isinstance(key, basestring):