MCPcopy Create free account
hub / github.com/nodejs/node / visit_Include

Method visit_Include

deps/v8/third_party/jinja2/compiler.py:1030–1079  ·  view source on GitHub ↗

Handles includes.

(self, node: nodes.Include, frame: Frame)

Source from the content-addressed store, hash-verified

1028 self.extends_so_far += 1
1029
1030 def visit_Include(self, node: nodes.Include, frame: Frame) -> None:
1031 """Handles includes."""
1032 if node.ignore_missing:
1033 self.writeline("try:")
1034 self.indent()
1035
1036 func_name = "get_or_select_template"
1037 if isinstance(node.template, nodes.Const):
1038 if isinstance(node.template.value, str):
1039 func_name = "get_template"
1040 elif isinstance(node.template.value, (tuple, list)):
1041 func_name = "select_template"
1042 elif isinstance(node.template, (nodes.Tuple, nodes.List)):
1043 func_name = "select_template"
1044
1045 self.writeline(f"template = environment.{func_name}(", node)
1046 self.visit(node.template, frame)
1047 self.write(f", {self.name!r})")
1048 if node.ignore_missing:
1049 self.outdent()
1050 self.writeline("except TemplateNotFound:")
1051 self.indent()
1052 self.writeline("pass")
1053 self.outdent()
1054 self.writeline("else:")
1055 self.indent()
1056
1057 skip_event_yield = False
1058 if node.with_context:
1059 self.writeline(
1060 f"{self.choose_async()}for event in template.root_render_func("
1061 "template.new_context(context.get_all(), True,"
1062 f" {self.dump_local_context(frame)})):"
1063 )
1064 elif self.environment.is_async:
1065 self.writeline(
1066 "for event in (await template._get_default_module_async())"
1067 "._body_stream:"
1068 )
1069 else:
1070 self.writeline("yield from template._get_default_module()._body_stream")
1071 skip_event_yield = True
1072
1073 if not skip_event_yield:
1074 self.indent()
1075 self.simple_write("event", frame)
1076 self.outdent()
1077
1078 if node.ignore_missing:
1079 self.outdent()
1080
1081 def _import_common(
1082 self, node: t.Union[nodes.Import, nodes.FromImport], frame: Frame

Callers

nothing calls this directly

Calls 8

writelineMethod · 0.95
indentMethod · 0.95
writeMethod · 0.95
outdentMethod · 0.95
choose_asyncMethod · 0.95
dump_local_contextMethod · 0.95
simple_writeMethod · 0.95
visitMethod · 0.45

Tested by

no test coverage detected