[file handler] requests for sources and groups

This commit is contained in:
Jan Grewe 2020-12-31 17:00:41 +01:00
parent 0b2adbefc3
commit 397f689c1d

View File

@ -26,6 +26,8 @@ class NodeType(Enum):
Source = "source" Source = "source"
Tag = "tag" Tag = "tag"
MultiTag = "multi_tag" MultiTag = "multi_tag"
Group = "group"
Feature="feature"
class Singleton(type): class Singleton(type):
@ -161,3 +163,28 @@ class FileHandler(metaclass=Singleton):
dim_type= "%s %s" % (d.dimension_type, "dimension") dim_type= "%s %s" % (d.dimension_type, "dimension")
dimensions.append(ItemDescriptor(dim_name, type=dim_type, entity_type=NodeType.Dimension, block_id=block_id)) dimensions.append(ItemDescriptor(dim_name, type=dim_type, entity_type=NodeType.Dimension, block_id=block_id))
return dimensions return dimensions
def request_data_frames(self, block_id):
if self._nix_file.version[1] >= 2:
return self._entity_info(self._nix_file.blocks[block_id].data_frames, block_id, NodeType.DataFrame)
return []
def request_groups(self, block_id):
return self._entity_info(self._nix_file.blocks[block_id].groups, block_id, NodeType.Group)
def request_sources(self, block_id, parent_source_id=None):
def get_subsources(src):
sub_sources = []
for s in src.sources:
sub_sources.append(ItemDescriptor(s.name, s.id, s.type, definition=s.definition, entity_type=NodeType.Source))
return sub_sources
if parent_source_id is None:
return self._entity_info(self._nix_file.blocks[block_id].sources, block_id, NodeType.Source)
else:
b = self._nix_file.blocks[block_id]
srcs = b.find_sources(lambda s: s.id == parent_source_id)
sources = []
for src in srcs:
sources.extend(get_subsources(src))
return sources