diff options
Diffstat (limited to 'gr-utils/python/modtool/code_generator.py')
-rw-r--r-- | gr-utils/python/modtool/code_generator.py | 60 |
1 files changed, 31 insertions, 29 deletions
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)) |