From 397f689c1d2f78bff14960cfe2b6c374b535cadb Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Thu, 31 Dec 2020 17:00:41 +0100 Subject: [PATCH] [file handler] requests for sources and groups --- file_handler.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/file_handler.py b/file_handler.py index 61c317a..56eafb3 100644 --- a/file_handler.py +++ b/file_handler.py @@ -26,6 +26,8 @@ class NodeType(Enum): Source = "source" Tag = "tag" MultiTag = "multi_tag" + Group = "group" + Feature="feature" class Singleton(type): @@ -161,3 +163,28 @@ class FileHandler(metaclass=Singleton): dim_type= "%s %s" % (d.dimension_type, "dimension") dimensions.append(ItemDescriptor(dim_name, type=dim_type, entity_type=NodeType.Dimension, block_id=block_id)) 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 \ No newline at end of file