diff --git a/diagrams/__init__.py b/diagrams/__init__.py index 1fb33db..2d16ca6 100644 --- a/diagrams/__init__.py +++ b/diagrams/__init__.py @@ -15,25 +15,25 @@ __diagram = contextvars.ContextVar("diagrams") __cluster = contextvars.ContextVar("cluster") -def getdiagram(): +def getdiagram() -> "Diagram": try: return __diagram.get() except LookupError: return None -def setdiagram(diagram): +def setdiagram(diagram: "Diagram"): __diagram.set(diagram) -def getcluster(): +def getcluster() -> "Cluster": try: return __cluster.get() except LookupError: return None -def setcluster(cluster): +def setcluster(cluster: "Cluster"): __cluster.set(cluster) @@ -283,13 +283,13 @@ class Node: _height = 1.9 - def __init__(self, label: str = "", **attrs: Dict): + def __init__(self, label: str = "", *, nodeid: str = None, **attrs: Dict): """Node represents a system component. :param label: Node label. """ - # Generates an ID for identifying a node. - self._id = self._rand_id() + # Generates an ID for identifying a node, unless specified + self._id = nodeid or self._rand_id() self.label = label # fmt: off