/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__/meta.cpython-36.pyc (3614B)
3 aG‘\ôã@sPdZddlmZddlmZddlmZmZGdd„deƒZdd„Z d d „Z d S) a5 jinja2.meta ~~~~~~~~~~~ This module implements various functions that exposes information about templates that might be interesting for various kinds of applications. :copyright: (c) 2017 by the Jinja Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. é)Únodes)Ú CodeGenerator)Ú string_typesÚ iteritemsc@s(eZdZdZdd„Zdd„Zdd„ZdS) ÚTrackingCodeGeneratorz.We abuse the code generator for introspection.cCstj||ddƒtƒ|_dS)Nz)rÚ__init__ÚsetÚundeclared_identifiers)ÚselfÚ environment©r ú/usr/lib/python3.6/meta.pyrs zTrackingCodeGenerator.__init__cCsdS)z Don't write.Nr )r Úxr r r ÚwriteszTrackingCodeGenerator.writecCsBtj||ƒx0t|jjƒD] \}\}}|dkr|jj|ƒqWdS)z$Remember all undeclared identifiers.ZresolveN)rÚ enter_framerZsymbolsÚloadsr Úadd)r ÚframeÚ_ÚactionZparamr r r rs z!TrackingCodeGenerator.enter_frameN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr r r r rsrcCst|jƒ}|j|ƒ|jS)aReturns a set of all variables in the AST that will be looked up from the context at runtime. Because at compile time it's not known which variables will be used depending on the path the execution takes at runtime, all variables are returned. >>> from jinja2 import Environment, meta >>> env = Environment() >>> ast = env.parse('{% set foo = 42 %}{{ bar + foo }}') >>> meta.find_undeclared_variables(ast) == set(['bar']) True .. admonition:: Implementation Internally the code generator is used for finding undeclared variables. This is good to know because the code generator might raise a :exc:`TemplateAssertionError` during compilation and as a matter of fact this function can currently raise that exception as well. )rr Zvisitr )ÚastZcodegenr r r Úfind_undeclared_variables$s  rccsðxê|jtjtjtjtjfƒD]Ì}t|jtjƒs†t|jtj tj fƒr~x@|jj D],}t|tjƒrrt|j t ƒrx|j VqLdVqLWqdVqt|jj t ƒr |jj Vqt|tjƒrât|jj ttfƒrâx(|jj D]}t|t ƒrÈ|VqÈWqdVqWdS)abFinds all the referenced templates from the AST. This will return an iterator over all the hardcoded template extensions, inclusions and imports. If dynamic inheritance or inclusion is used, `None` will be yielded. >>> from jinja2 import Environment, meta >>> env = Environment() >>> ast = env.parse('{% extends "layout.html" %}{% include helper %}') >>> list(meta.find_referenced_templates(ast)) ['layout.html', None] This function is useful for dependency tracking. For example if you want to rebuild parts of the website after a layout template has changed. N)Zfind_allrZExtendsZ FromImportZImportZIncludeÚ isinstanceÚtemplateZConstZTupleZListÚitemsÚvaluerÚtupleÚlist)rZnodeZ template_namer r r Úfind_referenced_templates<s&        r"N) rZjinja2rZjinja2.compilerrZjinja2._compatrrrrr"r r r r Ú s