OpenQuizz
Une application de gestion des contenus pédagogiques
CodeGenerator Class Reference
Inheritance diagram for CodeGenerator:
Collaboration diagram for CodeGenerator:

Public Member Functions

def __init__ (self, environment, name, filename, stream=None, defer_init=False, optimized=True)
 
def fail (self, msg, lineno)
 
def temporary_identifier (self)
 
def buffer (self, frame)
 
def return_buffer_contents (self, frame, force_unescaped=False)
 
def indent (self)
 
def outdent (self, step=1)
 
def start_write (self, frame, node=None)
 
def end_write (self, frame)
 
def simple_write (self, s, frame, node=None)
 
def blockvisit (self, nodes, frame)
 
def write (self, x)
 
def writeline (self, x, node=None, extra=0)
 
def newline (self, node=None, extra=0)
 
def signature (self, node, frame, extra_kwargs=None)
 
def pull_dependencies (self, nodes)
 
def enter_frame (self, frame)
 
def leave_frame (self, frame, with_python_scope=False)
 
def func (self, name)
 
def macro_body (self, node, frame)
 
def macro_def (self, macro_ref, frame)
 
def position (self, node)
 
def dump_local_context (self, frame)
 
def write_commons (self)
 
def push_parameter_definitions (self, frame)
 
def pop_parameter_definitions (self)
 
def mark_parameter_stored (self, target)
 
def push_context_reference (self, target)
 
def pop_context_reference (self)
 
def get_context_ref (self)
 
def get_resolve_func (self)
 
def derive_context (self, frame)
 
def parameter_is_undeclared (self, target)
 
def push_assign_tracking (self)
 
def pop_assign_tracking (self, frame)
 
def visit_Template (self, node, frame=None)
 
def visit_Block (self, node, frame)
 
def visit_Extends (self, node, frame)
 
def visit_Include (self, node, frame)
 
def visit_Import (self, node, frame)
 
def visit_FromImport (self, node, frame)
 
def visit_For (self, node, frame)
 
def visit_If (self, node, frame)
 
def visit_Macro (self, node, frame)
 
def visit_CallBlock (self, node, frame)
 
def visit_FilterBlock (self, node, frame)
 
def visit_With (self, node, frame)
 
def visit_ExprStmt (self, node, frame)
 
def visit_Output (self, node, frame)
 
def visit_Assign (self, node, frame)
 
def visit_AssignBlock (self, node, frame)
 
def visit_Name (self, node, frame)
 
def visit_NSRef (self, node, frame)
 
def visit_Const (self, node, frame)
 
def visit_TemplateData (self, node, frame)
 
def visit_Tuple (self, node, frame)
 
def visit_List (self, node, frame)
 
def visit_Dict (self, node, frame)
 
def binop (operator, interceptable=True)
 
def uaop (operator, interceptable=True)
 
def visit_Concat (self, node, frame)
 
def visit_Compare (self, node, frame)
 
def visit_Operand (self, node, frame)
 
def visit_Getattr (self, node, frame)
 
def visit_Getitem (self, node, frame)
 
def visit_Slice (self, node, frame)
 
def visit_Filter (self, node, frame)
 
def visit_Test (self, node, frame)
 
def visit_CondExpr (self, node, frame)
 
def visit_Call (self, node, frame, forward_caller=False)
 
def visit_Keyword (self, node, frame)
 
def visit_MarkSafe (self, node, frame)
 
def visit_MarkSafeIfAutoescape (self, node, frame)
 
def visit_EnvironmentAttribute (self, node, frame)
 
def visit_ExtensionAttribute (self, node, frame)
 
def visit_ImportedName (self, node, frame)
 
def visit_InternalName (self, node, frame)
 
def visit_ContextReference (self, node, frame)
 
def visit_DerivedContextReference (self, node, frame)
 
def visit_Continue (self, node, frame)
 
def visit_Break (self, node, frame)
 
def visit_Scope (self, node, frame)
 
def visit_OverlayScope (self, node, frame)
 
def visit_EvalContextModifier (self, node, frame)
 
def visit_ScopedEvalContextModifier (self, node, frame)
 
- Public Member Functions inherited from NodeVisitor
def get_visitor (self, node)
 
def visit (self, node, *args, **kwargs)
 
def generic_visit (self, node, *args, **kwargs)
 

Data Fields

 environment
 
 name
 
 filename
 
 stream
 
 created_block_context
 
 defer_init
 
 optimized
 
 optimizer
 
 import_aliases
 
 blocks
 
 extends_so_far
 
 has_known_extends
 
 code_lineno
 
 tests
 
 filters
 
 debug_info
 

Static Public Attributes

 visit_Add
 
 visit_Sub
 
 visit_Mul
 
 visit_Div
 
 visit_FloorDiv
 
 visit_Pow
 
 visit_Mod
 
 visit_And
 
 interceptable
 
 visit_Or
 
 visit_Pos
 
 visit_Neg
 
 visit_Not
 

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
  environment,
  name,
  filename,
  stream = None,
  defer_init = False,
  optimized = True 
)

Member Function Documentation

◆ binop()

def binop (   operator,
  interceptable = True 
)

◆ blockvisit()

def blockvisit (   self,
  nodes,
  frame 
)
Visit a list of nodes as block in a frame.  If the current frame
is no buffer a dummy ``if 0: yield None`` is written automatically.

◆ buffer()

def buffer (   self,
  frame 
)
Enable buffering for the frame from that point onwards.

◆ derive_context()

def derive_context (   self,
  frame 
)

◆ dump_local_context()

def dump_local_context (   self,
  frame 
)

◆ end_write()

def end_write (   self,
  frame 
)
End the writing process started by `start_write`.

◆ enter_frame()

def enter_frame (   self,
  frame 
)

Reimplemented in TrackingCodeGenerator.

◆ fail()

def fail (   self,
  msg,
  lineno 
)
Fail with a :exc:`TemplateAssertionError`.

◆ func()

def func (   self,
  name 
)

◆ get_context_ref()

def get_context_ref (   self)

◆ get_resolve_func()

def get_resolve_func (   self)

◆ indent()

def indent (   self)
Indent by one.

◆ leave_frame()

def leave_frame (   self,
  frame,
  with_python_scope = False 
)

◆ macro_body()

def macro_body (   self,
  node,
  frame 
)
Dump the function def of a macro or call block.

◆ macro_def()

def macro_def (   self,
  macro_ref,
  frame 
)
Dump the macro definition for the def created by macro_body.

◆ mark_parameter_stored()

def mark_parameter_stored (   self,
  target 
)
Marks a parameter in the current parameter definitions as stored.
This will skip the enforced undefined checks.

◆ newline()

def newline (   self,
  node = None,
  extra = 0 
)
Add one or more newlines before the next write.

◆ outdent()

def outdent (   self,
  step = 1 
)
Outdent by step.

◆ parameter_is_undeclared()

def parameter_is_undeclared (   self,
  target 
)
Checks if a given target is an undeclared parameter.

◆ pop_assign_tracking()

def pop_assign_tracking (   self,
  frame 
)
Pops the topmost level for assignment tracking and updates the
context variables if necessary.

◆ pop_context_reference()

def pop_context_reference (   self)

◆ pop_parameter_definitions()

def pop_parameter_definitions (   self)
Pops the current parameter definitions set.

◆ position()

def position (   self,
  node 
)
Return a human readable position for the node.

◆ pull_dependencies()

def pull_dependencies (   self,
  nodes 
)
Pull all the dependencies.

◆ push_assign_tracking()

def push_assign_tracking (   self)
Pushes a new layer for assignment tracking.

◆ push_context_reference()

def push_context_reference (   self,
  target 
)

◆ push_parameter_definitions()

def push_parameter_definitions (   self,
  frame 
)
Pushes all parameter targets from the given frame into a local
stack that permits tracking of yet to be assigned parameters.  In
particular this enables the optimization from `visit_Name` to skip
undefined expressions for parameters in macros as macros can reference
otherwise unbound parameters.

◆ return_buffer_contents()

def return_buffer_contents (   self,
  frame,
  force_unescaped = False 
)
Return the buffer contents of the frame.

◆ signature()

def signature (   self,
  node,
  frame,
  extra_kwargs = None 
)
Writes a function call to the stream for the current node.
A leading comma is added automatically.  The extra keyword
arguments may not include python keywords otherwise a syntax
error could occur.  The extra keyword arguments should be given
as python dict.

◆ simple_write()

def simple_write (   self,
  s,
  frame,
  node = None 
)
Simple shortcut for start_write + write + end_write.

◆ start_write()

def start_write (   self,
  frame,
  node = None 
)
Yield or write into the frame buffer.

◆ temporary_identifier()

def temporary_identifier (   self)
Get a new unique identifier.

◆ uaop()

def uaop (   operator,
  interceptable = True 
)

◆ visit_Assign()

def visit_Assign (   self,
  node,
  frame 
)

◆ visit_AssignBlock()

def visit_AssignBlock (   self,
  node,
  frame 
)

◆ visit_Block()

def visit_Block (   self,
  node,
  frame 
)
Call a block and register it for the template.

◆ visit_Break()

def visit_Break (   self,
  node,
  frame 
)

◆ visit_Call()

def visit_Call (   self,
  node,
  frame,
  forward_caller = False 
)

◆ visit_CallBlock()

def visit_CallBlock (   self,
  node,
  frame 
)

◆ visit_Compare()

def visit_Compare (   self,
  node,
  frame 
)

◆ visit_Concat()

def visit_Concat (   self,
  node,
  frame 
)

◆ visit_CondExpr()

def visit_CondExpr (   self,
  node,
  frame 
)

◆ visit_Const()

def visit_Const (   self,
  node,
  frame 
)

◆ visit_ContextReference()

def visit_ContextReference (   self,
  node,
  frame 
)

◆ visit_Continue()

def visit_Continue (   self,
  node,
  frame 
)

◆ visit_DerivedContextReference()

def visit_DerivedContextReference (   self,
  node,
  frame 
)

◆ visit_Dict()

def visit_Dict (   self,
  node,
  frame 
)

◆ visit_EnvironmentAttribute()

def visit_EnvironmentAttribute (   self,
  node,
  frame 
)

◆ visit_EvalContextModifier()

def visit_EvalContextModifier (   self,
  node,
  frame 
)

◆ visit_ExprStmt()

def visit_ExprStmt (   self,
  node,
  frame 
)

◆ visit_Extends()

def visit_Extends (   self,
  node,
  frame 
)
Calls the extender.

◆ visit_ExtensionAttribute()

def visit_ExtensionAttribute (   self,
  node,
  frame 
)

◆ visit_Filter()

def visit_Filter (   self,
  node,
  frame 
)

◆ visit_FilterBlock()

def visit_FilterBlock (   self,
  node,
  frame 
)

◆ visit_For()

def visit_For (   self,
  node,
  frame 
)

◆ visit_FromImport()

def visit_FromImport (   self,
  node,
  frame 
)
Visit named imports.

◆ visit_Getattr()

def visit_Getattr (   self,
  node,
  frame 
)

◆ visit_Getitem()

def visit_Getitem (   self,
  node,
  frame 
)

◆ visit_If()

def visit_If (   self,
  node,
  frame 
)

◆ visit_Import()

def visit_Import (   self,
  node,
  frame 
)
Visit regular imports.

◆ visit_ImportedName()

def visit_ImportedName (   self,
  node,
  frame 
)

◆ visit_Include()

def visit_Include (   self,
  node,
  frame 
)
Handles includes.

◆ visit_InternalName()

def visit_InternalName (   self,
  node,
  frame 
)

◆ visit_Keyword()

def visit_Keyword (   self,
  node,
  frame 
)

◆ visit_List()

def visit_List (   self,
  node,
  frame 
)

◆ visit_Macro()

def visit_Macro (   self,
  node,
  frame 
)

◆ visit_MarkSafe()

def visit_MarkSafe (   self,
  node,
  frame 
)

◆ visit_MarkSafeIfAutoescape()

def visit_MarkSafeIfAutoescape (   self,
  node,
  frame 
)

◆ visit_Name()

def visit_Name (   self,
  node,
  frame 
)

◆ visit_NSRef()

def visit_NSRef (   self,
  node,
  frame 
)

◆ visit_Operand()

def visit_Operand (   self,
  node,
  frame 
)

◆ visit_Output()

def visit_Output (   self,
  node,
  frame 
)

◆ visit_OverlayScope()

def visit_OverlayScope (   self,
  node,
  frame 
)

◆ visit_Scope()

def visit_Scope (   self,
  node,
  frame 
)

◆ visit_ScopedEvalContextModifier()

def visit_ScopedEvalContextModifier (   self,
  node,
  frame 
)

◆ visit_Slice()

def visit_Slice (   self,
  node,
  frame 
)

◆ visit_Template()

def visit_Template (   self,
  node,
  frame = None 
)

◆ visit_TemplateData()

def visit_TemplateData (   self,
  node,
  frame 
)

◆ visit_Test()

def visit_Test (   self,
  node,
  frame 
)

◆ visit_Tuple()

def visit_Tuple (   self,
  node,
  frame 
)

◆ visit_With()

def visit_With (   self,
  node,
  frame 
)

◆ write()

def write (   self,
  x 
)
Write a string into the output stream.

Reimplemented in TrackingCodeGenerator.

◆ write_commons()

def write_commons (   self)
Writes a common preamble that is used by root and block functions.
Primarily this sets up common local helpers and enforces a generator
through a dead branch.

◆ writeline()

def writeline (   self,
  x,
  node = None,
  extra = 0 
)
Combination of newline and write.

Field Documentation

◆ blocks

blocks

◆ code_lineno

code_lineno

◆ created_block_context

created_block_context

◆ debug_info

debug_info

◆ defer_init

defer_init

◆ environment

environment

◆ extends_so_far

extends_so_far

◆ filename

filename

◆ filters

filters

◆ has_known_extends

has_known_extends

◆ import_aliases

import_aliases

◆ interceptable

interceptable
static

◆ name

name

◆ optimized

optimized

◆ optimizer

optimizer

◆ stream

stream

◆ tests

tests

◆ visit_Add

visit_Add
static

◆ visit_And

visit_And
static

◆ visit_Div

visit_Div
static

◆ visit_FloorDiv

visit_FloorDiv
static

◆ visit_Mod

visit_Mod
static

◆ visit_Mul

visit_Mul
static

◆ visit_Neg

visit_Neg
static

◆ visit_Not

visit_Not
static

◆ visit_Or

visit_Or
static

◆ visit_Pos

visit_Pos
static

◆ visit_Pow

visit_Pow
static

◆ visit_Sub

visit_Sub
static

The documentation for this class was generated from the following file: