in runnable-hub/python/runnable_workers/processWorker/worker.py [0:0]
def complexRender(self, data: Dict, target):
if isinstance(target, dict):
return {self.complexRender(data, key): self.complexRender(data, value) for key, value in target.items()}
elif isinstance(target, list):
return [self.complexRender(data, value) for value in target]
elif isinstance(target, str):
target = target.strip()
# 如果整个字符串只有 ${{ ... }} 则直接取里面的内容,保留变量类型
if target.startswith("${{") and target.endswith("}}"):
fetchValue = {}
self.jinjaNewEnv.from_string(target[:-2] + "|save(fetchValue)}}").render(fetchValue=fetchValue, **data)
return fetchValue["save"]
else:
return self.jinjaNewEnv.from_string(target).render(**data)
else:
return target