Source code for riaps.gen.target.python.pygen

import os
from multigen.jinja import JinjaTask, JinjaGenerator

[docs]class CompPyTask(JinjaTask): template_name = 'comp.py.tpl' def __init__(self, part): super(CompPyTask, self).__init__() self.part = part
[docs] def filtered_elements(self, model): return model['py']
[docs] def relative_path_for_element(self, element): return f'{element["name"]}.py'
[docs]class CompGenerator(JinjaGenerator): def __init__(self): self.use_capnp = True self.templates_path = os.path.join( os.path.abspath(os.path.dirname(__file__)), 'tpl' ) self.tasks = [ CompPyTask('components'), CompPyTask('devices') ] super(CompGenerator, self).__init__()
[docs] def create_environment(self, **kwargs): environment = super().create_environment(**kwargs) environment.trim_blocks = True environment.globals["use_capnp"] = self.use_capnp return environment