diff --git a/ansibleplaybookgrapher/__init__.py b/ansibleplaybookgrapher/__init__.py
index 86e6541d..ccd20efa 100644
--- a/ansibleplaybookgrapher/__init__.py
+++ b/ansibleplaybookgrapher/__init__.py
@@ -53,7 +53,8 @@ def parse(
:param tags: Only add plays and tasks tagged with these values
:param skip_tags: Only add plays and tasks whose tags do not match these values
:param group_roles_by_name: Group roles by name instead of considering them as separate nodes with different IDs
- :return:
+ :return: Tuple of the list of playbook nodes and the dictionary of the role usages: the key is the role and the
+ value is the set of plays that use the role.
"""
playbook_nodes = []
roles_usage: Dict[RoleNode, Set[PlayNode]] = {}
diff --git a/ansibleplaybookgrapher/renderer/__init__.py b/ansibleplaybookgrapher/renderer/__init__.py
index 4b5d7736..5f32ce9c 100644
--- a/ansibleplaybookgrapher/renderer/__init__.py
+++ b/ansibleplaybookgrapher/renderer/__init__.py
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
from abc import ABC, abstractmethod
-from typing import Dict, Optional, Set
+from typing import Dict, Optional, Set, List
from ansible.utils.display import Display
@@ -44,7 +44,7 @@
class Renderer(ABC):
def __init__(
self,
- playbook_nodes: PlaybookNode,
+ playbook_nodes: List[PlaybookNode],
roles_usage: Dict[RoleNode, Set[PlayNode]],
):
self.playbook_nodes = playbook_nodes
@@ -73,7 +73,7 @@ def render(
class PlaybookBuilder(ABC):
"""
- This the base class to inherit from by the renderer to build a single Playbook in the target format.
+ This is the base class to inherit from by the renderer to build a single Playbook in the target format.
It provides some methods that need to be implemented
"""
diff --git a/ansibleplaybookgrapher/renderer/graphviz/__init__.py b/ansibleplaybookgrapher/renderer/graphviz/__init__.py
index f238cfcf..831897cd 100644
--- a/ansibleplaybookgrapher/renderer/graphviz/__init__.py
+++ b/ansibleplaybookgrapher/renderer/graphviz/__init__.py
@@ -45,8 +45,7 @@ def __init__(
playbook_nodes: List[PlaybookNode],
roles_usage: Dict["RoleNode", Set[PlayNode]],
):
- self.playbook_nodes = playbook_nodes
- self.roles_usage = roles_usage
+ super().__init__(playbook_nodes, roles_usage)
def render(
self,
diff --git a/ansibleplaybookgrapher/renderer/mermaid.py b/ansibleplaybookgrapher/renderer/mermaid.py
index 002c36b5..fb208c87 100644
--- a/ansibleplaybookgrapher/renderer/mermaid.py
+++ b/ansibleplaybookgrapher/renderer/mermaid.py
@@ -12,6 +12,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+
from pathlib import Path
from typing import Dict, Set, List
@@ -23,9 +24,7 @@
display = Display()
# Default directive when rendering the graph.
-# More info at
-# https://mermaid.js.org/config/directives.html
-#
+# More info at https://mermaid.js.org/config/directives.html
DEFAULT_DIRECTIVE = '%%{ init: { "flowchart": { "curve": "bumpX" } } }%%'
DEFAULT_ORIENTATION = "LR" # Left to right
@@ -36,8 +35,7 @@ def __init__(
playbook_nodes: List[PlaybookNode],
roles_usage: Dict["RoleNode", Set[PlayNode]],
):
- self.playbook_nodes = playbook_nodes
- self.roles_usage = roles_usage
+ super().__init__(playbook_nodes, roles_usage)
def render(
self,
@@ -106,7 +104,7 @@ def render(
"The --view option is not supported yet by the mermaid renderer"
)
- return final_output_path_file
+ return str(final_output_path_file)
class MermaidFlowChartPlaybookBuilder(PlaybookBuilder):