;i;)$ddlZddlmZddlmZejrddlZdZ dZ dZ dZ dd ej ejd ejd d d fd Z ddejd ejd d d fdZGdd ZGddeZGddeZdS)N)nodes) NodeVisitorparamresolvealias undefinedrparent_symbolsSymbolsreturncxt|}t|}|D]}|||SN)parent)r FrameSymbolVisitorvisit)rr symvisitornodes EC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\jinja2/idtracking.py find_symbolsrsJ  ( ( (C %%G d JrcPt|}|||Sr)r analyze_node)rr rs rsymbols_for_noders-  ( ( (CT Jrc eZdZ ddejddejeddfdZdejdej ddfdZ dd e d ejej e eje fde fd Z d e dejej fd Zd e deje fdZd e de fdZddZd e ddfdZd e de fdZd e ddfdZdejdddfdZdeje e ffdZdeje fdZdS)r Nrlevelr c||d}n |jdz}||_||_i|_i|_t |_dS)Nrr)rrrefsloadssetstores)selfrrs r__init__zSymbols.__init__"sL =~ q(  &( )+ "%%% rrkwargsc @t|}|j|fi|dSN) RootVisitorr)r"rr$rs rrzSymbols.analyze_node1s/d## d%%f%%%%%rnameloadcLd|jd|}||j|<| ||j|<|S)Nl__)rrr)r"r(r)idents r _define_refzSymbols._define_ref5s=)TZ(($(( $   $DJu  rtargetct||jvr |j|S|j|j|SdSr&)rr find_load)r"r/s rr1zSymbols.find_load>s? TZ  :f% % ; ";((00 0trct||jvr |j|S|j|j|SdSr&)rrfind_refr"r(s rr3zSymbols.find_refGs> 49  9T? " ; ";''-- -trcZ||}|td|d|S)NzFTried to resolve a name to a reference that was unknown to the frame ())r3AssertionError)r"r(rvs rrefz Symbols.refPsH ]]4  : 4*.444  rte.Selfc6t|j}|j|j|j|_|j|_|j|_|Sr&) object__new__ __class____dict__updatercopyrr!)r"r8s rrAz Symbols.copyYsm ^^DN + + 4=)))).."":??$$K$$&&  rc|j|||jvrc|j<|j|}| ||t |fdS||tdfdSdSN)r))r!addrrr3r.VAR_LOAD_ALIASVAR_LOAD_UNDEFINED)r"r( outer_refs rstorez Symbols.storeas  ty {& K0066 ($$T0K$LLLF   T);T(B  C C C C C ! rcr|j|||tdfSrC)r!rDr.VAR_LOAD_PARAMETERr4s rdeclare_parameterzSymbols.declare_parameterss5 ,>+EFFFrcp|| ||t|fdSdSrC)r3r.VAR_LOAD_RESOLVEr4s rr)z Symbols.loadwsA ==   &   T)94(@  A A A A A ' &rbranch_symbolsc0t}|D]}||j||j|D]_}|j|j|j|j|j|j`|D]i}||}| Jd|j.|j|}|t|f|j|<Xt|f|j|<jdS)Nzshould not happen) r r@r!difference_updaterrr3rrErM)r"rNr!branchrr(r/ outer_targets r branch_updatezSymbols.branch_update{s+ UU$ ) )F MM&- ( ( ( (  ---! + +C I  SX & & & J  ci ( ( ( K  sz * * * * : :D]]4((F%%':%%%{&#{33D99 +*8,)GDJv&"2D!9DJv   : :rci}|}|>#}}T22BtH;D  rct}|}|K|jD](\}\}}|tkr||)|j}|K|Sr&)r ritemsrJrDr)r"r8rr/instrr,s rdump_param_targetszSymbols.dump_param_targetssn UU$(&*j&6&6&8&8 # #" ...FF6NNN;D  r)NNr&)r r:)__name__ __module__ __qualname__tOptionalintr#rNodeAnyrstrTupler.r1r3r9rArHrKr)SequencerSDictrVSetrZrrr r !sDMQ ( (j+ (;<:c? (  ( ( ( (&&qu&&&&& LP z!'#qz#2F*GH  15(9SQZ_D#D$DDDD$GcGcGGGGBBBBBB:AJy,A:d::::0 QVCH-     AE#J      rc `eZdZddZdejdejddfdZeZ eZ eZ eZ eZ eZeZdejdejddfd Zdejdejddfd Zdejdejddfd Z ddejd edejddfdZdejdejddfdZdejdejdejddfdZdS)r'symbolsr r Nc.t||_dSr&)r sym_visitorr"rjs rr#zRootVisitor.__init__s-g66rrr$c h|D]}|j|dSr&iter_child_nodesrlrr"rr$childs r _simple_visitzRootVisitor._simple_visitsA**,, * *E   " "5 ) ) ) ) * *rc N|jD]}|j|dSr&bodyrlrrqs rvisit_AssignBlockzRootVisitor.visit_AssignBlock7Y * *E   " "5 ) ) ) ) * *rc l|dD]}|j|dS)N)call)excluderorqs rvisit_CallBlockzRootVisitor.visit_CallBlocksF**9*== * *E   " "5 ) ) ) ) * *rc N|jD]}|j|dSr&rurqs rvisit_OverlayScopezRootVisitor.visit_OverlayScoperxrrv for_branchc |dkr)|j|jd|j}nl|dkr|j}n^|dkrI|j|jd|j|j|jdSt d|r|D]}|j|dSdS)NrvT)store_as_paramelsetestzUnknown for branch)rlrr/rvelse_r RuntimeError)r"rrr$rQitems r visit_ForzRootVisitor.visit_Fors      " "4;t " D D DYFF 6 ! !ZFF 6 ! !   " "4;t " D D Dy$ &&ty111 F344 4  - - - &&t,,,, - - - -rc |jD]}|j||jD]}|j|dSr&)targetsrlrrv)r"rr$r/rrs r visit_WithzRootVisitor.visit_Withsbl + +F   " "6 * * * *Y * *E   " "5 ) ) ) ) * *rargscJtdt|j)NzCannot find symbols for )NotImplementedErrortyper[)r"rrr$s r generic_visitzRootVisitor.generic_visits"!"TT$ZZ=P"T"TUUUrrjr r N)rv)r[r\r]r#rrar^rbrsvisit_Template visit_Block visit_Macrovisit_FilterBlock visit_Scopevisit_Ifvisit_ScopedEvalContextModifier AssignBlockrw CallBlockr| OverlayScoper~ForrcrWithrrrhrrr'r's7777*%***$****#NKK%KH&3#*e&7*15*T*****EO*qu******u'9*QU*t**** 28--I-+.-CD5- ----(*uz*QU*t**** V%*VQUVaeVPTVVVVVVrr'c zeZdZdZddZ ddejd ed ej ddfd Z dej d ej ddfd Z dej d ej ddfd Zdejd ej ddfdZdejd ej ddfdZdejd ej ddfdZdejd ej ddfdZdejd ej ddfdZdejd ej ddfdZdejd ej ddfdZdejd ej ddfdZdejd ej ddfdZ dej!d ej ddfdZ"dej#d ej ddfdZ$dej%d ej ddfdZ&dS)rzA visitor for `Frame.inspect`.rjr r Nc||_dSr&)rjrms rr#zFrameSymbolVisitor.__init__s  rFrrr$c |s |jdkr!|j|jdS|jdkr!|j|jdS|jdkr!|j|jdSdS)z2All assignments to names go through this function.rrHr)N)ctxrjrKr(rHr))r"rrr$s r visit_NamezFrameSymbolVisitor.visit_Names  )TX00 L * *49 5 5 5 5 5 X L  ty ) ) ) ) ) X   L  di ( ( ( ( ( rc D|j|jdSr&)rjr)r(r"rr$s r visit_NSRefzFrameSymbolVisitor.visit_NSRefs  $)$$$$$rc *j|jfijdtjt jddffd }||j}||j}||j pd}j |||gdS)Nrr r crx_}|D]}j|fi_|Sr&)rArjr)rr8subnoder$original_symbolsr"s r inner_visitz0FrameSymbolVisitor.visit_If..inner_visitsS 0 5 5 7 7 7DL2  . . 7--f----+DLIrrh) rrrjr^Iterablerrarvelif_rrS)r"rr$r body_symbols elif_symbols else_symbolsrs` ` @rrzFrameSymbolVisitor.visit_Ifs 49'''''< qz%*5 )        #{49-- "{4:.. "{4:#344  ""L, #MNNNNNrc D|j|jdSr&)rjrHr(rs rrzFrameSymbolVisitor.visit_Macros  49%%%%%rc `|j|fi||j|jdSr&)rrjrHr/rs r visit_ImportzFrameSymbolVisitor.visit_Imports;4**6*** 4;'''''rc |j|fi||jD]R}t|tr!|j|d8|j|SdS)Nr)rnames isinstancetuplerjrH)r"rr$r(s rvisit_FromImportz#FrameSymbolVisitor.visit_FromImports4**6***J ) )D$&& ) ""47++++ ""4((((  ) )rc R|j|jfi||j|jfi|dS)z'Visit assignments in the correct order.N)rrr/rs r visit_AssignzFrameSymbolVisitor.visit_Assigns@ 49''''' 4;))&)))))rc ,|j|jfi|dS)zqVisiting stops at for blocks. However the block sequence is visited as part of the outer scope. N)riterrs rrzFrameSymbolVisitor.visit_For#s&  49'''''''rc ,|j|jfi|dSr&)rrzrs rr|z"FrameSymbolVisitor.visit_CallBlock)s$ 49'''''''rc ,|j|jfi|dSr&)rfilterrs rrz$FrameSymbolVisitor.visit_FilterBlock,s$ 4;))&)))))rc D|jD]}||dSr&)valuesr)r"rr$r/s rrzFrameSymbolVisitor.visit_With/s2k  F JJv      rc ,|j|jfi|dS)zStop visiting at block assigns.N)rr/rs rrwz$FrameSymbolVisitor.visit_AssignBlock3s$ 4;))&)))))rc dS)zStop visiting at scopes.Nrhrs rrzFrameSymbolVisitor.visit_Scope7rc dS)zStop visiting at blocks.Nrhrs rrzFrameSymbolVisitor.visit_Block:rrc dS)z!Do not visit into overlay scopes.Nrhrs rr~z%FrameSymbolVisitor.visit_OverlayScope=rrr)F)'r[r\r]__doc__r#rNameboolr^rbrNSRefrIfrMacrorImportr FromImportrAssignrrrrr| FilterBlockrrrrrwScoperBlockrrr~rhrrrrs((8= ) )J )04 )HI )  ) ) ) )% %qu%%%%%OUXOO4OOOO$& &qu&&&&&(((4(((()U%5))4))))***4**** (ei(15(T(((( (EO(qu(((((*e&7*15*T****uzQUt*e&7*15*T****' 'qu'''''' 'qu'''''0u'90QU0t000000rrr&)typingr^rrr TYPE_CHECKINGtyping_extensionsterJrMrErFrrar_rrr r'rrhrrrs ?#"""" LP :ej !34:i3H?C *&'j&;JJJJJJJJZ7V7V7V7V7V+7V7V7VtV0V0V0V0V0V0V0V0V0V0r