From 3c72e76be031a0d90a1551312de8bed4257668dd Mon Sep 17 00:00:00 2001 From: vanife Date: Fri, 4 Nov 2022 10:34:28 +0100 Subject: [PATCH] feat: allow `node.id` to be specified and not automatically generated (#422) * allow node.id to be specified and not generated * typing suport for context functions Co-authored-by: Ivan Melnychuk --- diagrams/__init__.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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