PL i2dZddlZddlZddlmZddlmZddlmZddlmZhdZejdZ ejedd Z Gd d ejZGd d ejZGddejZGddZy)zyHandles parsing of Python code. Parsing to AST is done via _ast on Python > 2.5, otherwise the compiler module is used. N) _ast_util)compat) exceptions)util>NoneTrueFalseprintargc  tj|d|S#t$ra}tjdt j jjdt j d|dddfi||d}~wwxYw) zParse an expression into ASTz (z) z (r2)N) rparse ExceptionrSyntaxExceptionr exception_as __class____name__)codemodeexception_kwargses S/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mako/pyparser.pyrr s t[$77  ((##%//88##%Qr      s BAA>>BcneZdZdZdZdZdZdZdZdZ dZ e xZ Z d Z d Zd Zd Zd ZdZdZy)FindIdentifiersc Zd|_d|_t|_||_||_yNF) in_functionin_assign_targetssetlocal_ident_stacklistenerrselfr#rs r__init__zFindIdentifiers.__init__2s+ !&!$  0c|js&|jjj|y|jj|yN)rr#declared_identifiersaddr")r%names r _add_declaredzFindIdentifiers._add_declared9s7 MM . . 2 24 8  " " & &t ,r'c:|j|jyr))r-r,r%nodes rvisit_ClassDefzFindIdentifiers.visit_ClassDef?s 499%r'c|j|j|j}d|_|jD]}|j|||_yNT)visitvaluer targets)r%r0in_ans r visit_AssignzFindIdentifiers.visit_AssignBsM 4::%%!% A JJqM !%r'c|j|j|j|j|j|j|jD]}|j|yr))r,r-typer4bodyr%r0 statements rvisit_ExceptHandlerz#FindIdentifiers.visit_ExceptHandlerNsW 99   tyy ) 99 JJtyy ! "I JJy ! "r'c(|j|dyr3)_visit_function)r%r0argss r visit_LambdazFindIdentifiers.visit_LambdaVs T4(r'c^|j|j|j|dyr)r-r,rAr/s rvisit_FunctionDefz!FindIdentifiers.visit_FunctionDefYs$ 499% T5)r'c|jrH|jD]8}|j|j|j|j:y|j |yr)r generatorsr4targetiter generic_visitr%r0comps rvisit_ListCompzFindIdentifiers.visit_ListComp]N    & 4;;' 499% &   t $r'c|jrH|jD]8}|j|j|j|j:y|j |yr)rGrLs rvisit_DictCompzFindIdentifiers.visit_DictCompgrOr'c#K|D]5}t|tjr|jEd{2|7y7 wr)) isinstance_astTupleelts)r%rBr s r_expand_tupleszFindIdentifiers._expand_tuplesos8 C#tzz*88##  #s/A> Ac|j}d|_|j}|j|j|jjDcgc] }t |c}|_|r|j |jn"|jD]}|j |||_||_ycc}wr3)rr"unionrWrBarg_idr4r<)r%r0islambdainfr"r r8s rrAzFindIdentifiers._visit_functionvs 22!2!8!8$($7$7 $G HSVC[ H"   JJtyy !YY  1  !2 IsB?c|j|j|j|j|jD]}|j||jD]}|j|yr))r4rJrIr<orelser=s r visit_ForzFindIdentifiers.visit_Forsb 499 4;; "I JJy ! " "I JJy ! "r'ct|jtjr|j |j y|j t vrl|j |jjvrI|j |jvr0|jjj|j yyyyr)) rSctxrTStorer-idreservedr#r*r"undeclared_identifiersr+r/s r visit_NamezFindIdentifiers.visit_Names dhh +   tww ' GG8 #t}}AAAt555 MM 0 0 4 4TWW =6B $r'c|jD]W}|j|j|j+|j|jj ddYy)N.r)namesasnamer-r,splitr%r0r,s r visit_ImportzFindIdentifiers.visit_ImportsQJJ import , , ...' instead.)rirjr-r,rCompileExceptionrrls rvisit_ImportFromz FindIdentifiers.visit_ImportFromsyJJ .D{{&""4;;/c! 11$ ++ ""499- .r'N)r __module__ __qualname__r&r-r1r9r?rCrErN visit_SetCompvisit_GeneratorExprQrWrAr_rfrmrqr'rrr1sZ1- & &")*%*87M&%3," >< .r'rceZdZdZdZy) FindTuplec .||_||_||_yr))r#r code_factory)r%r#rzrs rr&zFindTuple.__init__s  0(r'c&|jD]}|j|fi|j}|jjj ||jj j t|j|jj}|j|j|j_ |jj}|j|j|j_ yr)) rVrzrr#codeargsappendrBExpressionGeneratorr5r*rYre)r%r0r8pldiluis r visit_TuplezFindTuple.visit_Tuples A!!!!=t'<'<=A MM " " ) )! , MM   % %&9!&<&B&B&D E--44C14&&2DMM .--66C3699((4DMM 0 r'N)rrrrsr&rrvr'rrxrxs ) r'rxceZdZdZdZy) ParseFuncc ||_||_yr))r#rr$s rr&zParseFunc.__init__s  0r'c~|j|j_|jjDcgc] }t |}}|jj r/|j |jj j|jjDcgc] }t |}}|jjr/|j |jjj||j_ |jj|j_ ||j_ |jj|j_|jj |j_|jj|j_ycc}wcc}wr))r,r#funcnamerBrZvarargr}r kwonlyargskwargargnamesdefaults kwargnames kw_defaults kwdefaultsvarargskwargs)r%r0r rrs rrEzParseFunc.visit_FunctionDefs!% +/99>>:CF3K:: 99   OODII,,00 1-1YY-A-ABcfSkB B 99??   diioo11 2!) !%!3!3 #-  #'99#8#8  $ 0 0 #yy ;Cs F5%F:N)rrrrsr&rErvr'rrrs 1/r'rceZdZdZdZy)r~cntjd|_|jj|y)Nz )rSourceGenerator generatorr4)r%astnodes rr&zExpressionGenerator.__init__s&"227; W%r'cLdj|jjS)N)joinrresult)r%s rr5zExpressionGenerator.valueswwt~~,,--r'N)rrrrsr&r5rvr'rr~r~s &.r'r~)exec)__doc__operatorrTmakorrrrrd attrgetterrZ restore__astr NodeVisitorrrxrr~rvr'rrs   .   U #$"E.i++E.P %%*/ %%/...r'