Coverage for src/hdmf/common/io/resources.py: 100%
30 statements
« prev ^ index » next coverage.py v7.2.5, created at 2023-07-25 05:02 +0000
« prev ^ index » next coverage.py v7.2.5, created at 2023-07-25 05:02 +0000
1from .. import register_map
2from ..resources import ExternalResources, KeyTable, FileTable, ObjectTable, ObjectKeyTable, EntityTable, EntityKeyTable
3from ...build import ObjectMapper
6@register_map(ExternalResources)
7class ExternalResourcesMap(ObjectMapper):
9 def construct_helper(self, name, parent_builder, table_cls, manager):
10 """Create a new instance of table_cls with data from parent_builder[name].
12 The DatasetBuilder for name is associated with data_type Data and container class Data,
13 but users should use the more specific table_cls for these datasets.
14 """
15 parent = manager._get_proxy_builder(parent_builder)
16 builder = parent_builder[name]
17 src = builder.source
18 oid = builder.attributes.get(self.spec.id_key())
19 kwargs = dict(name=builder.name, data=builder.data)
20 return self.__new_container__(table_cls, src, parent, oid, **kwargs)
22 @ObjectMapper.constructor_arg('keys')
23 def keys(self, builder, manager):
24 return self.construct_helper('keys', builder, KeyTable, manager)
26 @ObjectMapper.constructor_arg('files')
27 def files(self, builder, manager):
28 return self.construct_helper('files', builder, FileTable, manager)
30 @ObjectMapper.constructor_arg('entities')
31 def entities(self, builder, manager):
32 return self.construct_helper('entities', builder, EntityTable, manager)
34 @ObjectMapper.constructor_arg('objects')
35 def objects(self, builder, manager):
36 return self.construct_helper('objects', builder, ObjectTable, manager)
38 @ObjectMapper.constructor_arg('object_keys')
39 def object_keys(self, builder, manager):
40 return self.construct_helper('object_keys', builder, ObjectKeyTable, manager)
42 @ObjectMapper.constructor_arg('entity_keys')
43 def entity_keys(self, builder, manager):
44 return self.construct_helper('entity_keys', builder, EntityKeyTable, manager)