Source code for visual_viper.notation_builders.abstract_notation_builder

import abc
import uuid

from .abstract_chart_notation import *

from visual_viper.dataset_builders import Key


[docs] class AbstractChartNotationBuilder: """ Documentation TBD """ OPTS = dict() DEFAULT_FILE_NAME = "filename.svg" def __init__(self, title=None, subtitle=None, chart_height=None, chart_width=None, filename=None, bindings=None, id=None, opts=None): self._bindings = bindings or [] self.opts = {**self.OPTS, **(opts or {})} self.id = id or uuid.uuid4() self.keys = [] if title and ( isinstance(title, str) or (isinstance(title, list) and all(isinstance(item, str) for item in title)) ): self.title = title else: self.title = None if subtitle and ( isinstance(subtitle, str) or (isinstance(subtitle, list) and all(isinstance(item, str) for item in subtitle)) ): self.subtitle = subtitle else: self.subtitle = None if chart_height: self.chart_height = chart_height else: self.chart_height = None if chart_width: self.chart_width = chart_width else: self.chart_width = None if filename: self.filename = filename else: self.filename = self.DEFAULT_FILE_NAME @property def bindings(self): raise NotImplementedError()
[docs] def collect_keys(self, dataset): for binding in self._bindings: binding.register_dataset(dataset) for _, val in binding.items(): if isinstance(val, Key): if val.src: self.keys.append((val.key, val.src)) else: self.keys.append(val.key) return self.keys
[docs] @abc.abstractmethod def build(self, params=None) -> dict: """ Documentation TBD """ raise NotImplementedError()
def __repr__(self): return str(self.bindings)