| 572 | |
| 573 | |
| 574 | class _IncludeBlock(_Node): |
| 575 | def __init__(self, name: str, reader: "_TemplateReader", line: int) -> None: |
| 576 | self.name = name |
| 577 | self.template_name = reader.name |
| 578 | self.line = line |
| 579 | |
| 580 | def find_named_blocks( |
| 581 | self, loader: Optional[BaseLoader], named_blocks: Dict[str, _NamedBlock] |
| 582 | ) -> None: |
| 583 | assert loader is not None |
| 584 | included = loader.load(self.name, self.template_name) |
| 585 | included.file.find_named_blocks(loader, named_blocks) |
| 586 | |
| 587 | def generate(self, writer: "_CodeWriter") -> None: |
| 588 | assert writer.loader is not None |
| 589 | included = writer.loader.load(self.name, self.template_name) |
| 590 | with writer.include(included, self.line): |
| 591 | included.file.body.generate(writer) |
| 592 | |
| 593 | |
| 594 | class _ApplyBlock(_Node): |