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 <ivan.melnychuk@pg3.ch>
pull/435/merge
vanife 3 years ago committed by GitHub
parent 838c0747c0
commit 3c72e76be0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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

Loading…
Cancel
Save