add creole_client and is_empty in creole_legacy

This commit is contained in:
Emmanuel Garette 2021-03-19 10:31:05 +01:00
parent 9eb6a67ac6
commit e66a462710
1 changed files with 26 additions and 0 deletions

View File

@ -74,6 +74,27 @@ class IsDefined:
return varname in self.context return varname in self.context
class CreoleClient():
def get(self, path):
path = path.replace('/', '.')
if path.startswith('.'):
path = path[1:]
if '.' not in path:
return self.context[path]
else:
root, path = path.split('.', 1)
obj = self.context[root]
for var in path.split('.'):
obj = getattr(obj, var)
return obj
def is_empty(data):
if str(data) in ['', '""', "''", "[]", "['']", '[""]', "None"]:
return True
return False
class CheetahTemplate(oriCheetahTemplate): class CheetahTemplate(oriCheetahTemplate):
def __init__(self, def __init__(self,
filename: str, filename: str,
@ -82,7 +103,12 @@ class CheetahTemplate(oriCheetahTemplate):
eosfunc: Dict, eosfunc: Dict,
extra_context: Dict, extra_context: Dict,
): ):
creole_client = CreoleClient()
creole_client.context=context
extra_context['is_defined'] = IsDefined(context) extra_context['is_defined'] = IsDefined(context)
extra_context['creole_client'] = creole_client
extra_context['is_empty'] = is_empty
extra_context['_creole_filename'] = extra_context['rougail_filename']
super().__init__(filename, source, context, eosfunc, extra_context) super().__init__(filename, source, context, eosfunc, extra_context)