Source code for pydmt.features.mako
"""
mako.py
"""
import os
from pydmt.api.feature import Feature
from pydmt.builders.mako import BuilderMako
from pydmt.core.pydmt import PyDMT
from pydmt.utils.filesystem import files_under_folder
[docs]
class FeatureMako(Feature):
def __init__(
self,
data=None,
templates_folder: str = "templates",
config_folder: str = "config",
snipplet_folder: str = "snipplets",
):
self.data = data
self.templates_folder = templates_folder
self.config_folder = config_folder
self.snipplet_folder = snipplet_folder
[docs]
def setup(self, pydmt: PyDMT) -> None:
if not os.path.isdir(self.templates_folder):
return
for root, _, filenames in os.walk(self.templates_folder):
for filename in filenames:
source = os.path.join(root, filename)
target_base, ext = os.path.splitext(source)
if ext == '.mako':
target = os.sep.join(target_base.split(os.sep)[1:])
builder = BuilderMako(
source=source,
target=target,
data=self.data,
config_files=files_under_folder(self.config_folder, suffix=".py"),
snipplet_files=files_under_folder(self.snipplet_folder, suffix=".mako"),
)
pydmt.add_builder(builder)