[file handler] requests for sources and groups
This commit is contained in:
parent
0b2adbefc3
commit
397f689c1d
@ -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
|
Loading…
Reference in New Issue
Block a user