From 2dbbe486a51b8decc21566ceb0a5cb1c414eb499 Mon Sep 17 00:00:00 2001 From: Martin Braun <martin.braun@ettus.com> Date: Wed, 22 Oct 2014 23:12:53 +0200 Subject: modtool: Switched over to mako template engine --- gr-utils/python/modtool/code_generator.py | 60 ++++++++++++++++--------------- 1 file changed, 31 insertions(+), 29 deletions(-) (limited to 'gr-utils/python/modtool/code_generator.py') diff --git a/gr-utils/python/modtool/code_generator.py b/gr-utils/python/modtool/code_generator.py index 99f91761af..326b2d5986 100644 --- a/gr-utils/python/modtool/code_generator.py +++ b/gr-utils/python/modtool/code_generator.py @@ -1,5 +1,5 @@ # -# Copyright 2013 Free Software Foundation, Inc. +# Copyright 2013-2014 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -20,39 +20,41 @@ # """ A code generator (needed by ModToolAdd) """ +from mako.template import Template from templates import Templates -import Cheetah.Template from util_functions import str_to_fancyc_comment from util_functions import str_to_python_comment from util_functions import strip_default_values from util_functions import strip_arg_types from util_functions import strip_arg_types_grc -class GRMTemplate(Cheetah.Template.Template): - """ An extended template class """ - def __init__(self, src, searchList): - self.grtypelist = { - 'sync': 'sync_block', - 'sink': 'sync_block', - 'source': 'sync_block', - 'decimator': 'sync_decimator', - 'interpolator': 'sync_interpolator', - 'general': 'block', - 'tagged_stream': 'tagged_stream_block', - 'hier': 'hier_block2', - 'noblock': ''} - searchList['str_to_fancyc_comment'] = str_to_fancyc_comment - searchList['str_to_python_comment'] = str_to_python_comment - searchList['strip_default_values'] = strip_default_values - searchList['strip_arg_types'] = strip_arg_types - searchList['strip_arg_types_grc'] = strip_arg_types_grc - Cheetah.Template.Template.__init__(self, src, searchList=searchList) - self.grblocktype = self.grtypelist[searchList['blocktype']] - if searchList['is_component']: - self.include_dir_prefix = "gnuradio/" + searchList['modname'] - else: - self.include_dir_prefix = searchList['modname'] +GRTYPELIST = { + 'sync': 'sync_block', + 'sink': 'sync_block', + 'source': 'sync_block', + 'decimator': 'sync_decimator', + 'interpolator': 'sync_interpolator', + 'general': 'block', + 'tagged_stream': 'tagged_stream_block', + 'hier': 'hier_block2', + 'noblock': '' +} + +def render_template(tpl_id, **kwargs): + """ Return the parsed and rendered template given by tpl_id """ + # Choose template + tpl = Template(Templates[tpl_id]) + # Set up all variables + kwargs['str_to_fancyc_comment'] = str_to_fancyc_comment + kwargs['str_to_python_comment'] = str_to_python_comment + kwargs['strip_default_values'] = strip_default_values + kwargs['strip_arg_types'] = strip_arg_types + kwargs['strip_arg_types_grc'] = strip_arg_types_grc + kwargs['grblocktype'] = GRTYPELIST[kwargs['blocktype']] + if kwargs['is_component']: + kwargs['include_dir_prefix'] = "gnuradio/" + kwargs['modname'] + else: + kwargs['include_dir_prefix'] = kwargs['modname'] + # Render and return + return tpl.render(**kwargs) -def get_template(tpl_id, **kwargs): - """ Return the template given by tpl_id, parsed through Cheetah """ - return str(GRMTemplate(Templates[tpl_id], searchList=kwargs)) -- cgit v1.2.3