rtags.py
changeset 4364 766359c69f2f
parent 4339 fe93b670343d
child 4391 bd8480824e0b
equal deleted inserted replaced
4363:5c18d82042fb 4364:766359c69f2f
    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)