"""@package docstring B-ASIC Operation Module. TODO: More info. """ from abc import ABC, abstractmethod from typing import NewType Name = NewType("Name", str) TypeName = NewType("TypeName", str) class GraphComponent(ABC): """Graph component interface. TODO: More info. """ @property @abstractmethod def type_name(self) -> TypeName: """Return the type name of the graph component""" raise NotImplementedError @property @abstractmethod def name(self) -> Name: """Return the name of the graph component.""" raise NotImplementedError @name.setter @abstractmethod def name(self, name: Name) -> None: """Set the name of the graph component to the entered name.""" raise NotImplementedError