@@ -167,6 +167,7 @@ def _parseCode(self, pyGlobalVars, pyLocalVars, execute) :
167167 self ._pyGlobalVars = (pyGlobalVars if isinstance (pyGlobalVars , dict ) else { })
168168 self ._pyLocalVars = (pyLocalVars if isinstance (pyLocalVars , dict ) else { })
169169 self ._rendered = ''
170+ self ._pyGlobalVars ['print' ] = self ._renderingPrint
170171 newTokenToProcess = self ._parseBloc (execute )
171172 if newTokenToProcess is not None :
172173 raise CodeTemplateException ( '"%s" instruction is not valid here (line %s)'
@@ -200,6 +201,11 @@ def _parseBloc(self, execute) :
200201
201202 # ------------------------------------------------------------------------
202203
204+ def _renderingPrint (self , s ) :
205+ self ._rendered += str (s )
206+
207+ # ------------------------------------------------------------------------
208+
203209 def _processToken (self , tokenContent , execute ) :
204210 parts = tokenContent .split (' ' , 1 )
205211 instructName = parts [0 ].strip ()
@@ -212,13 +218,14 @@ def _processToken(self, tokenContent, execute) :
212218 newTokenToProcess = self ._instructions [instructName ](instructBody , execute )
213219 elif execute :
214220 try :
215- s = str ( eval ( tokenContent ,
216- self ._pyGlobalVars ,
217- self ._pyLocalVars ) )
218- if (self ._escapeStrFunc is not None ) :
219- self ._rendered += self ._escapeStrFunc (s )
220- else :
221- self ._rendered += s
221+ ret = eval ( tokenContent ,
222+ self ._pyGlobalVars ,
223+ self ._pyLocalVars )
224+ if ret is not None :
225+ if (self ._escapeStrFunc is not None ) :
226+ self ._rendered += self ._escapeStrFunc (str (ret ))
227+ else :
228+ self ._rendered += str (ret )
222229 except Exception as ex :
223230 raise CodeTemplateException ('%s (line %s)' % (ex , self ._line ))
224231 return newTokenToProcess
0 commit comments