From 2d7bc3e232f0a53acc52651297a432136a4e5861 Mon Sep 17 00:00:00 2001 From: Thorsten Vitt Date: Sun, 6 Oct 2019 18:07:37 +0200 Subject: [PATCH] split support for the 'missing' report --- src/macrogen/graph.py | 8 +++++++- src/macrogen/report.py | 3 ++- src/macrogen/splitgraph.py | 6 ------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/macrogen/graph.py b/src/macrogen/graph.py index fd0c1ce..8c05de7 100644 --- a/src/macrogen/graph.py +++ b/src/macrogen/graph.py @@ -480,7 +480,13 @@ def subgraph(self, *nodes: Node, context: bool = True, path_to: Iterable[Node] = Returns: The constructed subgraph """ - central_nodes = set(nodes) + if any(isinstance(node, SplitReference) for node in self.base.nodes): + central_nodes = set() + for graph_node in self.base: + if graph_node in nodes or isinstance(graph_node, SplitReference) and graph_node.reference in nodes: + central_nodes.add(graph_node) + else: + central_nodes = set(nodes) relevant_nodes = set(central_nodes) if context: for node in central_nodes: diff --git a/src/macrogen/report.py b/src/macrogen/report.py index d752a96..ce5f563 100644 --- a/src/macrogen/report.py +++ b/src/macrogen/report.py @@ -696,7 +696,8 @@ def _flatten(items: List) -> List: def report_missing(graphs: MacrogenesisInfo): target = config.path.report_dir - refs = {node for node in graphs.base.nodes if isinstance(node, Reference)} + refs = {node.reference if isinstance(node, SplitReference) else node + for node in graphs.base.nodes if isinstance(node, Reference)} all_wits = {wit for wit in Witness.database.values() if isinstance(wit, Witness)} used_wits = {wit for wit in refs if isinstance(wit, Witness)} unknown_refs = {wit for wit in refs if isinstance(wit, UnknownRef)} diff --git a/src/macrogen/splitgraph.py b/src/macrogen/splitgraph.py index 7319d1b..17832a8 100644 --- a/src/macrogen/splitgraph.py +++ b/src/macrogen/splitgraph.py @@ -38,12 +38,6 @@ def __getattr__(self, item): def filename(self) -> Path: return self.reference.filename - - @property - def uri(self): - return self.reference.uri - - def __str__(self): return f"{self.reference} ({self.side.label})"