80 |
80 |
81 def clear(self): |
81 def clear(self): |
82 self._tagdefs.clear() |
82 self._tagdefs.clear() |
83 |
83 |
84 def _get_keys(self, stype, rtype, otype, tagged): |
84 def _get_keys(self, stype, rtype, otype, tagged): |
85 keys = [('*', rtype, '*', tagged), |
85 keys = [] |
86 ('*', rtype, otype, tagged), |
86 if '*' not in (stype, otype): |
87 (stype, rtype, '*', tagged), |
87 keys.append(('*', rtype, '*', tagged)) |
88 (stype, rtype, otype, tagged)] |
88 if '*' != stype: |
89 if stype == '*' or otype == '*': |
89 keys.append(('*', rtype, otype, tagged)) |
90 keys.remove( ('*', rtype, '*', tagged) ) |
90 if '*' != otype: |
91 if stype == '*': |
91 keys.append((stype, rtype, '*', tagged)) |
92 keys.remove( ('*', rtype, otype, tagged) ) |
92 keys.append((stype, rtype, otype, tagged)) |
93 if otype == '*': |
|
94 keys.remove( (stype, rtype, '*', tagged) ) |
|
95 return keys |
93 return keys |
96 |
94 |
97 def init(self, schema, check=True): |
95 def init(self, schema, check=True): |
98 # XXX check existing keys against schema |
96 # XXX check existing keys against schema |
99 if check: |
97 if check: |