7 |
7 |
8 ETYPE_ATTR_STORAGE = {} |
8 ETYPE_ATTR_STORAGE = {} |
9 def set_attribute_storage(repo, etype, attr, storage): |
9 def set_attribute_storage(repo, etype, attr, storage): |
10 ETYPE_ATTR_STORAGE.setdefault(etype, {})[attr] = storage |
10 ETYPE_ATTR_STORAGE.setdefault(etype, {})[attr] = storage |
11 repo.system_source.map_attribute(etype, attr, storage.sqlgen_callback) |
11 repo.system_source.map_attribute(etype, attr, storage.sqlgen_callback) |
|
12 |
|
13 def unset_attribute_storage(repo, etype, attr): |
|
14 ETYPE_ATTR_STORAGE.setdefault(etype, {}).pop(attr, None) |
|
15 repo.system_source.unmap_attribute(etype, attr) |
12 |
16 |
13 |
17 |
14 class Storage(object): |
18 class Storage(object): |
15 """abstract storage""" |
19 """abstract storage""" |
16 def sqlgen_callback(self, generator, relation, linkedvar): |
20 def sqlgen_callback(self, generator, relation, linkedvar): |