# Path: autonetkit/render/platform/base.py
# class PlatformRenderer:
#     """
# 
#     """
# 
#     def __init__(self, env: Environment):
#         self.env: Environment = env
# 
#     @abc.abstractmethod
#     def render(self, node: Node) -> List[RenderedFileEntry]:
#         """
# 
#         @param node:
#         """
#         pass
# 
# Path: autonetkit/render/types.py
# class RenderedFileEntry(NamedTuple):
#     body: str
#     path: Optional[str]
#     filename: str


from typing import Dict, List
from autonetkit.render.platform.base import PlatformRenderer
from autonetkit.render.types import RenderedFileEntry



class KatharaRenderer(PlatformRenderer):
    def render(self, data: Dict) -> List[RenderedFileEntry]:
        """

        @param data:
        @return:
        """
        result = []

        lab_template = self.env.get_template("kathara/lab.conf")
        result.append(RenderedFileEntry(
            lab_template.render(data=data["lab"]),
            None,
            "lab.conf"))

        node_startup_template = self.env.get_template("kathara/node.startup")
        for node in data["nodes"]:
            filename = f"{node['label']}.startup"

# Path: autonetkit/render/platform/base.py
# class PlatformRenderer:
#     """
# 
#     """
# 
#     def __init__(self, env: Environment):
#         self.env: Environment = env
# 
#     @abc.abstractmethod
#     def render(self, node: Node) -> List[RenderedFileEntry]:
#         """
# 
#         @param node:
#         """
#         pass
# 
# Path: autonetkit/render/types.py
# class RenderedFileEntry(NamedTuple):
#     body: str
#     path: Optional[str]
#     filename: str


# Path: autonetkit/render/platform/kathara.py
from typing import Dict, List
from autonetkit.render.platform.base import PlatformRenderer
from autonetkit.render.types import RenderedFileEntry




class KatharaRenderer(PlatformRenderer):
    def render(self, data: Dict) -> List[RenderedFileEntry]:
        """

        @param data:
        @return:
        """
        result = []

        lab_template = self.env.get_template("kathara/lab.conf")
        result.append(RenderedFileEntry(
            lab_template.render(data=data["lab"]),
            None,
            "lab.conf"))

        node_startup_template = self.env.get_template("kathara/node.startup")
        for node in data["nodes"]:
            filename = f"{node['label']}.startup"

            result.append(RenderedFileEntry(