in liminal/runners/airflow/operators/operator_with_variable_resolving.py [0:0]
def __render(self, val: str, dag_run_conf: dict, unresolved_tags: set):
token = re.match(_VAR_REGEX, val)
if token and token[2].strip() not in unresolved_tags:
tag_name = token[2].strip()
prefix = self.__render(token[1], dag_run_conf, unresolved_tags)
suffix = self.__render(token[3], dag_run_conf, unresolved_tags)
if dag_run_conf and tag_name in dag_run_conf:
return self.__render(prefix + str(dag_run_conf[tag_name]) + suffix, dag_run_conf, unresolved_tags)
elif tag_name in self.variables:
return self.__render(prefix + str(self.variables[tag_name]) + suffix, dag_run_conf, unresolved_tags)
else:
backend_value = standalone_variable_backend.get_variable(tag_name, None)
if backend_value:
return self.__render(prefix + backend_value + suffix, dag_run_conf, unresolved_tags)
else:
unresolved_tags.add(tag_name)
return self.__render(prefix + '{{' + token[2] + '}}' + suffix, dag_run_conf, unresolved_tags)
else:
return val