diff --git a/diagrams/__init__.py b/diagrams/__init__.py index 6ac564f5..669c4347 100644 --- a/diagrams/__init__.py +++ b/diagrams/__init__.py @@ -280,7 +280,7 @@ class Node(_Cluster): _icon_dir = None _icon = None _icon_size = 30 - _direction = "TB" + _direction = "LR" _height = 1.9 # fmt: on @@ -296,6 +296,7 @@ class Node(_Cluster): def __init__( self, label: str = "", + direction: str = None, icon: object = None, icon_size: int = None, **attrs: Dict @@ -303,6 +304,7 @@ class Node(_Cluster): """Node represents a system component. :param label: Node label. + :param direction: Data flow direction. Default is "LR" (left to right). :param icon: Custom icon for tihs cluster. Must be a node class or reference. :param icon_size: The icon size when used as a Cluster. Default is 30. """ @@ -312,6 +314,10 @@ class Node(_Cluster): super().__init__() + if direction: + if not self._validate_direction(direction): + raise ValueError(f'"{direction}" is not a valid direction') + self._direction = direction if icon: _node = icon(_no_init=True) self._icon = _node._icon @@ -356,8 +362,6 @@ class Node(_Cluster): ''.join(f'{line}' for line in lines) +\ '>' - if not self._validate_direction(self._direction): - raise ValueError(f'"{self._direction}" is not a valid direction') self.dot.graph_attr["rankdir"] = self._direction # Set cluster depth for distinguishing the background color @@ -477,7 +481,7 @@ class Cluster(Node): def __init__( self, label: str = "", - direction: str = "LR", + direction: str = None, icon: object = None, icon_size: int = None, **attrs: Dict @@ -489,8 +493,7 @@ class Cluster(Node): :param icon: Custom icon for tihs cluster. Must be a node class or reference. :param icon_size: The icon size. Default is 30. """ - self._direction = direction - super().__init__(label, icon, icon_size, **attrs) + super().__init__(label, direction, icon, icon_size, **attrs) class Edge: