71 self.warning('removing rtag %s: %s, %s undefined in schema', |
71 self.warning('removing rtag %s: %s, %s undefined in schema', |
72 (stype, rtype, otype, tagged), value, ertype) |
72 (stype, rtype, otype, tagged), value, ertype) |
73 self.del_rtag(stype, rtype, otype, tagged) |
73 self.del_rtag(stype, rtype, otype, tagged) |
74 break |
74 break |
75 if self._initfunc is not None: |
75 if self._initfunc is not None: |
76 for eschema in schema.entities(): |
76 self.apply(schema, self._initfunc) |
77 for rschema, tschemas, role in eschema.relation_definitions(True): |
77 |
78 for tschema in tschemas: |
78 def apply(self, schema, func): |
79 if role == 'subject': |
79 for eschema in schema.entities(): |
80 sschema, oschema = eschema, tschema |
80 for rschema, tschemas, role in eschema.relation_definitions(True): |
81 else: |
81 for tschema in tschemas: |
82 sschema, oschema = tschema, eschema |
82 if role == 'subject': |
83 self._initfunc(self, sschema, rschema, oschema, role) |
83 sschema, oschema = eschema, tschema |
|
84 else: |
|
85 sschema, oschema = tschema, eschema |
|
86 func(self, sschema, rschema, oschema, role) |
84 |
87 |
85 # rtag declaration api #################################################### |
88 # rtag declaration api #################################################### |
86 |
89 |
87 def tag_attribute(self, key, *args, **kwargs): |
90 def tag_attribute(self, key, *args, **kwargs): |
88 key = list(key) |
91 key = list(key) |