From 6450aafe332c854e3404ba21e0af166227cd1ec2 Mon Sep 17 00:00:00 2001 From: Thorsten Vitt Date: Mon, 7 Oct 2019 11:45:24 +0200 Subject: [PATCH] adjusted visualizations for start-end model --- src/macrogen/etc/styles.yaml | 7 +++++++ src/macrogen/splitgraph.py | 4 ++++ src/macrogen/uris.py | 2 ++ src/macrogen/visualize.py | 10 +++++++--- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/macrogen/etc/styles.yaml b/src/macrogen/etc/styles.yaml index ef44cfd..c504837 100644 --- a/src/macrogen/etc/styles.yaml +++ b/src/macrogen/etc/styles.yaml @@ -2,6 +2,10 @@ node: date: shape: none + start: + shape: rarrow + end: + shape: larrow # additional style for highlighted nodes highlight: fillcolor: '#F0F000' # '#FABE00' @@ -37,6 +41,9 @@ edge: copy: arrowhead: empty penwidth: 0.5 + progress: + color: gray + label: "" # additional style for conflicting edges delete: diff --git a/src/macrogen/splitgraph.py b/src/macrogen/splitgraph.py index 17832a8..596048b 100644 --- a/src/macrogen/splitgraph.py +++ b/src/macrogen/splitgraph.py @@ -38,6 +38,10 @@ def __getattr__(self, item): def filename(self) -> Path: return self.reference.filename + @property + def label(self) -> str: + return self.reference.label # XXX start/end? + def __str__(self): return f"{self.reference} ({self.side.label})" diff --git a/src/macrogen/uris.py b/src/macrogen/uris.py index 9cec9eb..b0dfcb9 100644 --- a/src/macrogen/uris.py +++ b/src/macrogen/uris.py @@ -292,6 +292,8 @@ def get(cls, uri, allow_duplicate=True): cls._load_paralipomena() orig_uri = uri + if '#' in uri: + uri = uri[:uri.index('#')] uri = uri.replace('-', '_') if uri in cls.corrections: diff --git a/src/macrogen/visualize.py b/src/macrogen/visualize.py index 65e510e..762c01c 100644 --- a/src/macrogen/visualize.py +++ b/src/macrogen/visualize.py @@ -15,10 +15,11 @@ from .config import config from .datings import add_timeline_edges -from macrogen import BiblSource -from macrogen.graphutils import pathlink +from .bibliography import BiblSource +from .graphutils import pathlink from .uris import Reference from .graph import Node +from .splitgraph import SplitReference import logging logger: logging.Logger = config.getLogger(__name__) @@ -38,9 +39,12 @@ def simplify_graph(original_graph: nx.MultiDiGraph) -> nx.MultiDiGraph: attrs['kind'] = 'date' translation[node] = node.isoformat() elif isinstance(node, Reference): - attrs['kind'] = node.__class__.__name__ attrs['label'] = node.label translation[node] = node.uri + if isinstance(node, SplitReference): + attrs['kind'] = node.side.value + else: + attrs['kind'] = node.__class__.__name__ _simplify_attrs(attrs) nx.relabel_nodes(graph, translation, copy=False)