Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
jinja2.compiler.CodeGenerator Class Reference
Inheritance diagram for jinja2.compiler.CodeGenerator:
Inheritance graph
[legend]
Collaboration diagram for jinja2.compiler.CodeGenerator:
Collaboration graph
[legend]

Classes

class  _FinalizeInfo
 

Public Member Functions

None __init__ (self, "Environment" environment, t.Optional[str] name, t.Optional[str] filename, t.Optional[t.TextIO] stream=None, bool defer_init=False, bool optimized=True)
 
bool optimized (self)
 
"te.NoReturn" fail (self, str msg, int lineno)
 
str temporary_identifier (self)
 
None buffer (self, Frame frame)
 
None return_buffer_contents (self, Frame frame, bool force_unescaped=False)
 
None indent (self)
 
None outdent (self, int step=1)
 
None start_write (self, Frame frame, t.Optional[nodes.Node] node=None)
 
None end_write (self, Frame frame)
 
None simple_write (self, str s, Frame frame, t.Optional[nodes.Node] node=None)
 
None blockvisit (self, t.Iterable[nodes.Node] nodes, Frame frame)
 
None write (self, str x)
 
None writeline (self, str x, t.Optional[nodes.Node] node=None, int extra=0)
 
None newline (self, t.Optional[nodes.Node] node=None, int extra=0)
 
None signature (self, t.Union[nodes.Call, nodes.Filter, nodes.Test] node, Frame frame, t.Optional[t.Mapping[str, t.Any]] extra_kwargs=None)
 
None pull_dependencies (self, t.Iterable[nodes.Node] nodes)
 
None enter_frame (self, Frame frame)
 
None leave_frame (self, Frame frame, bool with_python_scope=False)
 
str choose_async (self, str async_value="async ", str sync_value="")
 
str func (self, str name)
 
t.Tuple[Frame, MacroRefmacro_body (self, t.Union[nodes.Macro, nodes.CallBlock] node, Frame frame)
 
None macro_def (self, MacroRef macro_ref, Frame frame)
 
str position (self, nodes.Node node)
 
str dump_local_context (self, Frame frame)
 
None write_commons (self)
 
None push_parameter_definitions (self, Frame frame)
 
None pop_parameter_definitions (self)
 
None mark_parameter_stored (self, str target)
 
None push_context_reference (self, str target)
 
None pop_context_reference (self)
 
str get_context_ref (self)
 
str get_resolve_func (self)
 
str derive_context (self, Frame frame)
 
bool parameter_is_undeclared (self, str target)
 
None push_assign_tracking (self)
 
None pop_assign_tracking (self, Frame frame)
 
None visit_Template (self, nodes.Template node, t.Optional[Frame] frame=None)
 
None visit_Block (self, nodes.Block node, Frame frame)
 
None visit_Extends (self, nodes.Extends node, Frame frame)
 
None visit_Include (self, nodes.Include node, Frame frame)
 
None visit_Import (self, nodes.Import node, Frame frame)
 
None visit_FromImport (self, nodes.FromImport node, Frame frame)
 
None visit_For (self, nodes.For node, Frame frame)
 
None visit_If (self, nodes.If node, Frame frame)
 
None visit_Macro (self, nodes.Macro node, Frame frame)
 
None visit_CallBlock (self, nodes.CallBlock node, Frame frame)
 
None visit_FilterBlock (self, nodes.FilterBlock node, Frame frame)
 
None visit_With (self, nodes.With node, Frame frame)
 
None visit_ExprStmt (self, nodes.ExprStmt node, Frame frame)
 
None visit_Output (self, nodes.Output node, Frame frame)
 
None visit_Assign (self, nodes.Assign node, Frame frame)
 
None visit_AssignBlock (self, nodes.AssignBlock node, Frame frame)
 
None visit_Name (self, nodes.Name node, Frame frame)
 
None visit_NSRef (self, nodes.NSRef node, Frame frame)
 
None visit_Const (self, nodes.Const node, Frame frame)
 
None visit_TemplateData (self, nodes.TemplateData node, Frame frame)
 
None visit_Tuple (self, nodes.Tuple node, Frame frame)
 
None visit_List (self, nodes.List node, Frame frame)
 
None visit_Dict (self, nodes.Dict node, Frame frame)
 
None visit_Concat (self, nodes.Concat node, Frame frame)
 
None visit_Compare (self, nodes.Compare node, Frame frame)
 
None visit_Operand (self, nodes.Operand node, Frame frame)
 
None visit_Getattr (self, nodes.Getattr node, Frame frame)
 
None visit_Getitem (self, nodes.Getitem node, Frame frame)
 
None visit_Slice (self, nodes.Slice node, Frame frame)
 
None visit_Filter (self, nodes.Filter node, Frame frame)
 
None visit_Test (self, nodes.Test node, Frame frame)
 
None visit_CondExpr (self, nodes.CondExpr node, Frame frame)
 
None visit_Call (self, nodes.Call node, Frame frame, bool forward_caller=False)
 
None visit_Keyword (self, nodes.Keyword node, Frame frame)
 
None visit_MarkSafe (self, nodes.MarkSafe node, Frame frame)
 
None visit_MarkSafeIfAutoescape (self, nodes.MarkSafeIfAutoescape node, Frame frame)
 
None visit_EnvironmentAttribute (self, nodes.EnvironmentAttribute node, Frame frame)
 
None visit_ExtensionAttribute (self, nodes.ExtensionAttribute node, Frame frame)
 
None visit_ImportedName (self, nodes.ImportedName node, Frame frame)
 
None visit_InternalName (self, nodes.InternalName node, Frame frame)
 
None visit_ContextReference (self, nodes.ContextReference node, Frame frame)
 
None visit_DerivedContextReference (self, nodes.DerivedContextReference node, Frame frame)
 
None visit_Continue (self, nodes.Continue node, Frame frame)
 
None visit_Break (self, nodes.Break node, Frame frame)
 
None visit_Scope (self, nodes.Scope node, Frame frame)
 
None visit_OverlayScope (self, nodes.OverlayScope node, Frame frame)
 
None visit_EvalContextModifier (self, nodes.EvalContextModifier node, Frame frame)
 
None visit_ScopedEvalContextModifier (self, nodes.ScopedEvalContextModifier node, Frame frame)
 
- Public Member Functions inherited from jinja2.visitor.NodeVisitor
"t.Optional[VisitCallable]" get_visitor (self, Node node)
 
t.Any visit (self, Node node, *t.Any args, **t.Any kwargs)
 
t.Any generic_visit (self, Node node, *t.Any args, **t.Any kwargs)
 

Public Attributes

 environment
 
 name
 
 filename
 
 stream
 
 created_block_context
 
 defer_init
 
 optimizer
 
 extends_so_far
 
 has_known_extends
 
 code_lineno
 
 filters
 
 tests
 

Static Public Attributes

 visit_Add = _make_binop("+")
 
 visit_Sub = _make_binop("-")
 
 visit_Mul = _make_binop("*")
 
 visit_Div = _make_binop("/")
 
 visit_FloorDiv = _make_binop("//")
 
 visit_Pow = _make_binop("**")
 
 visit_Mod = _make_binop("%")
 
 visit_And = _make_binop("and")
 
 visit_Or = _make_binop("or")
 
 visit_Pos = _make_unop("+")
 
 visit_Neg = _make_unop("-")
 
 visit_Not = _make_unop("not ")
 

Protected Member Functions

None _import_common (self, t.Union[nodes.Import, nodes.FromImport] node, Frame frame)
 
_FinalizeInfo _make_finalize (self)
 
str _output_const_repr (self, t.Iterable[t.Any] group)
 
str _output_child_to_const (self, nodes.Expr node, Frame frame, _FinalizeInfo finalize)
 
None _output_child_pre (self, nodes.Expr node, Frame frame, _FinalizeInfo finalize)
 
None _output_child_post (self, nodes.Expr node, Frame frame, _FinalizeInfo finalize)
 
t.Iterator[None] _filter_test_common (self, t.Union[nodes.Filter, nodes.Test] node, Frame frame, bool is_filter)
 

Static Protected Member Functions

t.Any _default_finalize (t.Any value)
 

Protected Attributes

 _new_lines
 
 _last_line
 
 _first_write
 
 _last_identifier
 
 _indentation
 
 _context_reference_stack
 
 _write_debug_info
 
 _finalize
 

Static Protected Attributes

_finalize = None
 

Member Function Documentation

◆ _default_finalize()

t.Any jinja2.compiler.CodeGenerator._default_finalize ( t.Any  value)
staticprotected
The default finalize function if the environment isn't
configured with one. Or, if the environment has one, this is
called on that function's output for constants.

Reimplemented in jinja2.nativetypes.NativeCodeGenerator.

◆ _make_finalize()

_FinalizeInfo jinja2.compiler.CodeGenerator._make_finalize (   self)
protected
Build the finalize function to be used on constants and at
runtime. Cached so it's only created once for all output nodes.

Returns a ``namedtuple`` with the following attributes:

``const``
    A function to finalize constant data at compile time.

``src``
    Source code to output around nodes to be evaluated at
    runtime.

◆ _output_child_post()

None jinja2.compiler.CodeGenerator._output_child_post (   self,
nodes.Expr  node,
Frame  frame,
_FinalizeInfo   finalize 
)
protected
Output extra source code after visiting a child of an
``Output`` node.

Reimplemented in jinja2.nativetypes.NativeCodeGenerator.

◆ _output_child_pre()

None jinja2.compiler.CodeGenerator._output_child_pre (   self,
nodes.Expr  node,
Frame  frame,
_FinalizeInfo   finalize 
)
protected
Output extra source code before visiting a child of an
``Output`` node.

Reimplemented in jinja2.nativetypes.NativeCodeGenerator.

◆ _output_child_to_const()

str jinja2.compiler.CodeGenerator._output_child_to_const (   self,
nodes.Expr  node,
Frame  frame,
_FinalizeInfo   finalize 
)
protected
Try to optimize a child of an ``Output`` node by trying to
convert it to constant, finalized data at compile time.

If :exc:`Impossible` is raised, the node is not constant and
will be evaluated at runtime. Any other exception will also be
evaluated at runtime for easier debugging.

Reimplemented in jinja2.nativetypes.NativeCodeGenerator.

◆ _output_const_repr()

str jinja2.compiler.CodeGenerator._output_const_repr (   self,
t.Iterable[t.Any]  group 
)
protected
Given a group of constant values converted from ``Output``
child nodes, produce a string to write to the template module
source.

Reimplemented in jinja2.nativetypes.NativeCodeGenerator.

◆ blockvisit()

None jinja2.compiler.CodeGenerator.blockvisit (   self,
t.Iterable[nodes.Node nodes,
Frame  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()

None jinja2.compiler.CodeGenerator.buffer (   self,
Frame  frame 
)
Enable buffering for the frame from that point onwards.

◆ end_write()

None jinja2.compiler.CodeGenerator.end_write (   self,
Frame  frame 
)
End the writing process started by `start_write`.

◆ enter_frame()

None jinja2.compiler.CodeGenerator.enter_frame (   self,
Frame  frame 
)

◆ fail()

"te.NoReturn" jinja2.compiler.CodeGenerator.fail (   self,
str  msg,
int  lineno 
)
Fail with a :exc:`TemplateAssertionError`.

◆ indent()

None jinja2.compiler.CodeGenerator.indent (   self)
Indent by one.

◆ macro_body()

t.Tuple[Frame, MacroRef] jinja2.compiler.CodeGenerator.macro_body (   self,
t.Union[nodes.Macro, nodes.CallBlock node,
Frame   frame 
)
Dump the function def of a macro or call block.

◆ macro_def()

None jinja2.compiler.CodeGenerator.macro_def (   self,
MacroRef  macro_ref,
Frame  frame 
)
Dump the macro definition for the def created by macro_body.

◆ mark_parameter_stored()

None jinja2.compiler.CodeGenerator.mark_parameter_stored (   self,
str  target 
)
Marks a parameter in the current parameter definitions as stored.
This will skip the enforced undefined checks.

◆ newline()

None jinja2.compiler.CodeGenerator.newline (   self,
t.Optional[nodes.Node]   node = None,
int   extra = 0 
)
Add one or more newlines before the next write.

◆ outdent()

None jinja2.compiler.CodeGenerator.outdent (   self,
int   step = 1 
)
Outdent by step.

◆ parameter_is_undeclared()

bool jinja2.compiler.CodeGenerator.parameter_is_undeclared (   self,
str  target 
)
Checks if a given target is an undeclared parameter.

◆ pop_assign_tracking()

None jinja2.compiler.CodeGenerator.pop_assign_tracking (   self,
Frame  frame 
)
Pops the topmost level for assignment tracking and updates the
context variables if necessary.

◆ pop_parameter_definitions()

None jinja2.compiler.CodeGenerator.pop_parameter_definitions (   self)
Pops the current parameter definitions set.

◆ position()

str jinja2.compiler.CodeGenerator.position (   self,
nodes.Node  node 
)
Return a human readable position for the node.

◆ pull_dependencies()

None jinja2.compiler.CodeGenerator.pull_dependencies (   self,
t.Iterable[nodes.Node nodes 
)
Find all filter and test names used in the template and
assign them to variables in the compiled namespace. Checking
that the names are registered with the environment is done when
compiling the Filter and Test nodes. If the node is in an If or
CondExpr node, the check is done at runtime instead.

.. versionchanged:: 3.0
    Filters and tests in If and CondExpr nodes are checked at
    runtime instead of compile time.

◆ push_assign_tracking()

None jinja2.compiler.CodeGenerator.push_assign_tracking (   self)
Pushes a new layer for assignment tracking.

◆ push_parameter_definitions()

None jinja2.compiler.CodeGenerator.push_parameter_definitions (   self,
Frame  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()

None jinja2.compiler.CodeGenerator.return_buffer_contents (   self,
Frame  frame,
bool   force_unescaped = False 
)
Return the buffer contents of the frame.

◆ signature()

None jinja2.compiler.CodeGenerator.signature (   self,
t.Union[nodes.Call, nodes.Filter, nodes.Test node,
Frame  frame,
t.Optional[t.Mapping[str, t.Any]]   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()

None jinja2.compiler.CodeGenerator.simple_write (   self,
str  s,
Frame  frame,
t.Optional[nodes.Node]   node = None 
)
Simple shortcut for start_write + write + end_write.

◆ start_write()

None jinja2.compiler.CodeGenerator.start_write (   self,
Frame  frame,
t.Optional[nodes.Node]   node = None 
)
Yield or write into the frame buffer.

◆ temporary_identifier()

str jinja2.compiler.CodeGenerator.temporary_identifier (   self)
Get a new unique identifier.

◆ visit_Block()

None jinja2.compiler.CodeGenerator.visit_Block (   self,
nodes.Block  node,
Frame  frame 
)
Call a block and register it for the template.

◆ visit_Extends()

None jinja2.compiler.CodeGenerator.visit_Extends (   self,
nodes.Extends  node,
Frame  frame 
)
Calls the extender.

◆ visit_FromImport()

None jinja2.compiler.CodeGenerator.visit_FromImport (   self,
nodes.FromImport  node,
Frame  frame 
)
Visit named imports.

◆ visit_Import()

None jinja2.compiler.CodeGenerator.visit_Import (   self,
nodes.Import  node,
Frame  frame 
)
Visit regular imports.

◆ visit_Include()

None jinja2.compiler.CodeGenerator.visit_Include (   self,
nodes.Include  node,
Frame  frame 
)
Handles includes.

◆ write()

None jinja2.compiler.CodeGenerator.write (   self,
str  x 
)
Write a string into the output stream.

Reimplemented in jinja2.meta.TrackingCodeGenerator.

◆ write_commons()

None jinja2.compiler.CodeGenerator.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()

None jinja2.compiler.CodeGenerator.writeline (   self,
str  x,
t.Optional[nodes.Node]   node = None,
int   extra = 0 
)
Combination of newline and write.

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