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