168 e_schema = None |
168 e_schema = None |
169 |
169 |
170 MODE_TAGS = set(('link', 'create')) |
170 MODE_TAGS = set(('link', 'create')) |
171 CATEGORY_TAGS = set(('primary', 'secondary', 'generic', 'generated')) # , 'metadata')) |
171 CATEGORY_TAGS = set(('primary', 'secondary', 'generic', 'generated')) # , 'metadata')) |
172 @classmethod |
172 @classmethod |
173 def __initialize__(cls): |
173 def __initialize__(cls, schema): |
174 """initialize a specific entity class by adding descriptors to access |
174 """initialize a specific entity class by adding descriptors to access |
175 entity type's attributes and relations |
175 entity type's attributes and relations |
176 """ |
176 """ |
177 etype = cls.id |
177 etype = cls.id |
178 assert etype != 'Any', etype |
178 assert etype != 'Any', etype |
179 cls.e_schema = eschema = cls.schema.eschema(etype) |
179 cls.e_schema = eschema = schema.eschema(etype) |
180 for rschema, _ in eschema.attribute_definitions(): |
180 for rschema, _ in eschema.attribute_definitions(): |
181 if rschema.type == 'eid': |
181 if rschema.type == 'eid': |
182 continue |
182 continue |
183 setattr(cls, rschema.type, Attribute(rschema.type)) |
183 setattr(cls, rschema.type, Attribute(rschema.type)) |
184 mixins = [] |
184 mixins = [] |