/usr/lib/python3.6/site-packages/jinja2/__pycache__
NameSizeModeActions
asyncfilters.cpython-36.opt-1.pyc47420644editdlrm
asyncfilters.cpython-36.pyc47420644editdlrm
asyncsupport.cpython-36.opt-1.pyc80910644editdlrm
asyncsupport.cpython-36.pyc80910644editdlrm
bccache.cpython-36.opt-1.pyc126630644editdlrm
bccache.cpython-36.pyc126630644editdlrm
compiler.cpython-36.opt-1.pyc467870644editdlrm
compiler.cpython-36.pyc468440644editdlrm
constants.cpython-36.opt-1.pyc16530644editdlrm
constants.cpython-36.pyc16530644editdlrm
debug.cpython-36.opt-1.pyc92250644editdlrm
debug.cpython-36.pyc92860644editdlrm
defaults.cpython-36.opt-1.pyc14030644editdlrm
defaults.cpython-36.pyc14030644editdlrm
environment.cpython-36.opt-1.pyc428570644editdlrm
environment.cpython-36.pyc432140644editdlrm
exceptions.cpython-36.opt-1.pyc49630644editdlrm
exceptions.cpython-36.pyc49630644editdlrm
ext.cpython-36.opt-1.pyc200020644editdlrm
ext.cpython-36.pyc200540644editdlrm
filters.cpython-36.opt-1.pyc346010644editdlrm
filters.cpython-36.pyc347340644editdlrm
idtracking.cpython-36.opt-1.pyc98500644editdlrm
idtracking.cpython-36.pyc98920644editdlrm
lexer.cpython-36.opt-1.pyc183860644editdlrm
lexer.cpython-36.pyc185160644editdlrm
loaders.cpython-36.opt-1.pyc165230644editdlrm
loaders.cpython-36.pyc165230644editdlrm
meta.cpython-36.opt-1.pyc36140644editdlrm
meta.cpython-36.pyc36140644editdlrm
nativetypes.cpython-36.opt-1.pyc50770644editdlrm
nativetypes.cpython-36.pyc50770644editdlrm
nodes.cpython-36.opt-1.pyc362370644editdlrm
nodes.cpython-36.pyc366110644editdlrm
optimizer.cpython-36.opt-1.pyc19830644editdlrm
optimizer.cpython-36.pyc19830644editdlrm
parser.cpython-36.opt-1.pyc252880644editdlrm
parser.cpython-36.pyc252880644editdlrm
runtime.cpython-36.opt-1.pyc245260644editdlrm
runtime.cpython-36.pyc245530644editdlrm
sandbox.cpython-36.opt-1.pyc144570644editdlrm
sandbox.cpython-36.pyc144570644editdlrm
tests.cpython-36.opt-1.pyc43590644editdlrm
tests.cpython-36.pyc43590644editdlrm
utils.cpython-36.opt-1.pyc206290644editdlrm
utils.cpython-36.pyc206290644editdlrm
visitor.cpython-36.opt-1.pyc32990644editdlrm
visitor.cpython-36.pyc32990644editdlrm
_compat.cpython-36.opt-1.pyc32870644editdlrm
_compat.cpython-36.pyc32870644editdlrm
_identifier.cpython-36.opt-1.pyc17900644editdlrm
_identifier.cpython-36.pyc17900644editdlrm
__init__.cpython-36.opt-1.pyc24790644editdlrm
__init__.cpython-36.pyc24790644editdlrm
Edit: /usr/lib/python3.6/site-packages/jinja2/__pycache__/visitor.cpython-36.pyc (3299B)
3 aG‘\ô ã@s4dZddlmZGdd„deƒZGdd„deƒZdS)zœ jinja2.visitor ~~~~~~~~~~~~~~ This module implements a visitor for the nodes. :copyright: (c) 2017 by the Jinja Team. :license: BSD. é)ÚNodec@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú NodeVisitoraWalks the abstract syntax tree and call visitor functions for every node found. The visitor functions may return values which will be forwarded by the `visit` method. Per default the visitor functions for the nodes are ``'visit_'`` + class name of the node. So a `TryFinally` node visit function would be `visit_TryFinally`. This behavior can be changed by overriding the `get_visitor` function. If no visitor function exists for a node (return value `None`) the `generic_visit` visitor is used instead. cCsd|jj}t||dƒS)zªReturn the visitor function for this node or `None` if no visitor exists for this node. In that case the generic visit function is used instead. Zvisit_N)Ú __class__Ú__name__Úgetattr)ÚselfÚnodeÚmethod©r ú/usr/lib/python3.6/visitor.pyÚ get_visitors zNodeVisitor.get_visitorcOs4|j|ƒ}|dk r"||f|ž|ŽS|j|f|ž|ŽS)z Visit a node.N)r Ú generic_visit)rrÚargsÚkwargsÚfr r r Úvisit"s zNodeVisitor.visitcOs(x"|jƒD]}|j|f|ž|Žq WdS)z9Called if no explicit visitor function exists for a node.N)Ziter_child_nodesr)rrrrr r r r )szNodeVisitor.generic_visitN)rÚ __module__Ú __qualname__Ú__doc__r rr r r r r rs rc@s eZdZdZdd„Zdd„ZdS)ÚNodeTransformeraËWalks the abstract syntax tree and allows modifications of nodes. The `NodeTransformer` will walk the AST and use the return value of the visitor functions to replace or remove the old node. If the return value of the visitor function is `None` the node will be removed from the previous location otherwise it's replaced with the return value. The return value may be the original node in which case no replacement takes place. c OsÈxÂ|jƒD]¶\}}t|tƒr„g}xT|D]L}t|tƒrh|j|f|ž|Ž}|dkrRq&nt|tƒsh|j|ƒq&|j|ƒq&W||dd…<q t|tƒr |j|f|ž|Ž}|dkr´t||ƒq t|||ƒq W|S)N) Z iter_fieldsÚ isinstanceÚlistrrÚextendÚappendÚdelattrÚsetattr) rrrrZfieldZ old_valueZ new_valuesÚvalueZnew_noder r r r :s&       zNodeTransformer.generic_visitcOs&|j|f|ž|Ž}t|tƒs"|g}|S)z{As transformers may return lists in some places this method can be used to enforce a list as return value. )rrr)rrrrÚrvr r r Ú visit_listPs zNodeTransformer.visit_listN)rrrrr rr r r r r/s rN)rZ jinja2.nodesrÚobjectrrr r r r Ú s !