Call a block and register it for the template.
(self, node, frame)
| 809 | in self.debug_info)) |
| 810 | |
| 811 | def visit_Block(self, node, frame): |
| 812 | """Call a block and register it for the template.""" |
| 813 | level = 0 |
| 814 | if frame.toplevel: |
| 815 | # if we know that we are a child template, there is no need to |
| 816 | # check if we are one |
| 817 | if self.has_known_extends: |
| 818 | return |
| 819 | if self.extends_so_far > 0: |
| 820 | self.writeline('if parent_template is None:') |
| 821 | self.indent() |
| 822 | level += 1 |
| 823 | |
| 824 | if node.scoped: |
| 825 | context = self.derive_context(frame) |
| 826 | else: |
| 827 | context = self.get_context_ref() |
| 828 | |
| 829 | if supports_yield_from and not self.environment.is_async and \ |
| 830 | frame.buffer is None: |
| 831 | self.writeline('yield from context.blocks[%r][0](%s)' % ( |
| 832 | node.name, context), node) |
| 833 | else: |
| 834 | loop = self.environment.is_async and 'async for' or 'for' |
| 835 | self.writeline('%s event in context.blocks[%r][0](%s):' % ( |
| 836 | loop, node.name, context), node) |
| 837 | self.indent() |
| 838 | self.simple_write('event', frame) |
| 839 | self.outdent() |
| 840 | |
| 841 | self.outdent(level) |
| 842 | |
| 843 | def visit_Extends(self, node, frame): |
| 844 | """Calls the extender.""" |
nothing calls this directly
no test coverage detected