Stringtemplate With Dict Data

There seems to be a bug if the dict has a value of an empty string.

def test_templateEmpStr():

import stringtemplate

st = stringtemplate.StringTemplate("empty:$s$ok")

st['s'] = '' #None,'' ok

print str(st)

st = stringtemplate.StringTemplate("empty:$m.s$ok")

st['m'] = {'s': ''}

print str(st) # throw exception!

File "..\\stringtemplate\\language\\ASTExpr.py", line 276, in getObjectProperty

value = o[ASTExpr.DEFAULT_MAP_VALUE_NAME]

KeyError: '_default_'

I change the line if not value: to if value is None: to fix this so as to allow an empty string in a dict.

        if isinstance(o, stringtemplate.Aggregate) or isinstance(o, dict):

#sys.stderr.write("[getObjectProperty] o = " + str(o) + '\n')

try:

value = o[propertyName]

except:

value = None

if value is None: #if not value: use if value is None instead to fix !?

# no property defined; if a map in this group

# then there may be a default value

value = o[ASTExpr.DEFAULT_MAP_VALUE_NAME]

Comments

blog comments powered by Disqus

Categories