rtags.py
branchtls-sprint
changeset 1179 70825477c6ce
parent 1152 c99ef2a2535c
child 1283 d812bd08c11c
--- a/rtags.py	Fri Mar 27 12:25:24 2009 +0100
+++ b/rtags.py	Fri Mar 27 12:30:19 2009 +0100
@@ -22,58 +22,58 @@
         self.use_set = use_set
         self._tagdefs = {}
         
-    def set_rtag(self, tag, role, rtype, stype='*', otype='*'):
+    def set_rtag(self, tag, rtype, role, stype='*', otype='*'):
         assert not self.use_set
         assert role in ('subject', 'object'), role
-        self._tagdefs[(stype, rtype, otype, role)] = tag
+        self._tagdefs[(rtype, role, stype, otype)] = tag
         
-    def rtag(self, role, rtype, stype='*', otype='*'):
+    def rtag(self, rtype, role, stype='*', otype='*'):
         assert not self.use_set
-        for key in reversed(self._get_keys(role, rtype, stype, otype)):
+        for key in reversed(self._get_keys(rtype, role, stype, otype)):
             try:
                 return self._tagdefs[key]
             except KeyError:
                 continue
         return None
         
-    def etype_rtag(self, etype, role, rtype, ttype='*'):
+    def etype_rtag(self, etype, rtype, role, ttype='*'):
         if role == 'subject':
-            return self.rtag(role, rtype, etype, ttype)
-        return self.rtag(role, rtype, ttype, etype)
+            return self.rtag(rtype, role, etype, ttype)
+        return self.rtag(rtype, role, ttype, etype)
         
-    def add_rtag(self, tag, role, rtype, stype='*', otype='*'):
+    def add_rtag(self, tag, rtype, role, stype='*', otype='*'):
         assert self.use_set
         assert role in ('subject', 'object'), role
-        rtags = self._tagdefs.setdefault((stype, rtype, otype, role), set())
+        rtags = self._tagdefs.setdefault((rtype, role, stype, otype), set())
         rtags.add(tag)
         
-    def rtags(self, role, rtype, stype='*', otype='*'):
+    def rtags(self, rtype, role, stype='*', otype='*'):
         assert self.use_set
         rtags = set()
-        for key in self._get_keys(role, rtype, stype, otype):
+        for key in self._get_keys(rtype, role, stype, otype):
             try:
                 rtags.update(self._tagdefs[key])
             except KeyError:
                 continue
         return rtags
         
-    def etype_rtags(self, etype, role, rtype, ttype='*'):
+    def etype_rtags(self, etype, rtype, role, ttype='*'):
         if role == 'subject':
-            return self.rtags(role, rtype, etype, ttype)
-        return self.rtags(role, rtype, ttype, etype)
+            return self.rtags(rtype, role, etype, ttype)
+        return self.rtags(rtype, role, ttype, etype)
 
-    def _get_keys(self, role, rtype, stype, otype): 
+    def _get_keys(self, rtype, role, stype, otype): 
         assert role in ('subject', 'object'), role
-        keys = [('*', rtype, '*', role),
-                ('*', rtype, otype, role),
-                (stype, rtype, '*', role),
-                (stype, rtype, otype, role)]
+        keys = [(rtype, role, '*', '*'),
+                (rtype, role, '*', otype),
+                (rtype, role, stype, '*'),
+                (rtype, role, stype, otype)]
         if stype == '*' or otype == '*':
-            keys.remove(('*', rtype, '*', role))
+            keys.remove((rtype, role, '*', '*'))
             if stype == '*':
-                keys.remove(('*', rtype, otype, role))
+                keys.remove((rtype, role, '*', otype))
             if otype == '*':
-                keys.remove((stype, rtype, '*', role))            
+                keys.remove((rtype, role, stype, '*'))            
         return keys
     
     # dict compat