L iddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl Z ddl Z ddl m Z ddl mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9ddl:m;Z;mZ>ddl?m@Z@mAZAmBZBmCZDddlEmFZFdd lGmHZHmIZId ZJd hZKeLejejzejzZPd ZQejd ejBdej4dej*dejpdejTdejdejdejdejdej(dej.di ZVejdejBdej4dej*dejpdejTdejdejdejd ejd!ej(d"ej.d#i ZWeVjejd$ejd%ejd&ejd'ejd(ieWjejd)ejd*ejd+ejd,ejd-ieVjejd.iGd/d0e_Z`Gd1d2e`ZaGd3d4eaZbGd5d6e`Zcd7Zdd8Zed9Zfd:Zgd;ZhdOd<Zid=ZjGd>d?Zkd@ZldPdAZmdBZndQdCZodQdDZpdEZqdFZrdGZsGdHdIekZtGdJdKekZuGdLdMekZvevZweuZxetZydRdNZzy)SN) namedtuple)dedent) _jit_internal),ApplyAssertAssign Attribute AugAssignBinOpBreakClassDefConstContinueDeclDefDeleteDictComp DictLiteralDotsEmptyTypeAnnotationExprStmt FalseLiteralForIdentIfListComp ListLiteral NoneLiteralParamPassPropertyRaiseReturnSelect SliceExprStarredStmt StringLiteral Subscript TernaryIf TrueLiteral TupleLiteralUnaryOpVarWhileWithWithItem) _is_drop_fnFunctionModifiers is_static_fn should_drop)get_source_lines_and_filemake_source_context parse_def ParsedDef)DATACLASS_MAGIC_METHODS)get_qualified_namemonkeytype_trace__jitprintc@|jtxs|tvSN) startswith_reserved_prefix_reserved_names)names X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/jit/frontend.pyis_reserved_namerFTs ??+ , G0GGzfunction definitionsz for loopszdel statementszclass definitionszwith statementszraise statements assertionszimport statementszglobal variableszbreak statementszcontinue statementsdeffordelclasswithraiseassertimportfromglobalbreakcontinuezasync function definitionszasync for loopszasync with statementsz try blocksznonlocal variablesz async defz async forz async withtrynonlocalzannotated assignmentsceZdZdZdZy) FrontendErrorc|||_||_tjj |j|_yr@) source_rangemsgtorch_C ErrorReport error_report)selfrZr[s rE__init__zFrontendError.__init__s0("HH001B1BCrGcl|j|jjjzSr@)r[r_whatlstrip)r`s rE__str__zFrontendError.__str__s)xx$++00299;;;rGN)__name__ __module__ __qualname__rarerGrErXrXs D ~~  ! !  % %  % % 1 ),,Y 8J8JK a B??OP s+rG)rr)rfrgrhra __classcell__)rs@rEroros  , ,rGroc eZdZy)FrontendTypeErrorNrlrirGrErrrmrGrcT|Dcgc]}t||}}t|Scc}wr@)build_withitemlist)r|itemsis rEbuild_withitemsrs+-2 3^C # 3E 3 ; 4s%ch|Dcgc]}t||}}ttd|Scc}wr@) build_stmtrfilter)r|stmtsss rE build_stmtsrs3). /AZQ  /E / tU# $$ 0s/c tj|d}t|dg}g}|D]}|d|vs t|djr$t |djd|dd|}|dj r"t |dj d|dd |nd }|jt|jt|j|d|||S) aj Get a list of Property objects representing the properties of a class. Args: cls: The class to get properties of. self_name: The name of the class that the properties should belong to. Returns: A list of Property objects corresponding to the properties of cls. Property here refers to the subclass of TreeView. c"t|tSr@) isinstanceproperty)ms rEz&get_class_properties..s 1h8OrG predicate__jit_unused_properties__r___getter) self_name_setterN) inspect getmembersgetattrr5fget get_jit_deffsetappendr!ranger)clsrpropsunused_properties propertiespropgettersetters rEget_class_propertiesrs   s.O PE%@"EJ  7+ +KQ 4M Q 47)73yF 7<<DGLLBtAwiw*?9U    v||~tAw)GQWX   rGcgfd}|jD]f}t|tjr|tj |5t|tj sP|tj|hS)NcV j||y#t$rYywxYwr@)rrk)builderentryassignsr|s rEmaybe_build_assignz-get_class_assigns..maybe_build_assigns-  NN73. /    s  (()bodyrastr StmtBuilder build_Assign AnnAssignbuild_AnnAssign)r|cls_astrrrs` @rEget_class_assignsrsgGC eSZZ ( {77 ? s}} - {::E B C NrGc jtjfd}fd}ttjj j \}}}dj|}t|}tj|} | jd} t| tjsJtjr| jD chc]:} t| tj r| j"t$vr | j"<} } t'|D]j\} \}}t%j(|}|s!|| vs&|}||f|| <t+|}t,j.j1||j2l|Dcgc]\}}t5|||||}}}t7|}t9|j;dddt9|j;dddz }t=||||d }t?|| }tA|| ||||Scc} wcc}}w) apGet definitions for each method within the current class independently. Args: cls: The class to get definition of. self_name: The name of the class that the properties should belong to. Returns: torch._C._jit_tree_views.ClassDef: A representation of the class, the methods in the class and their definition as a tree. ctj|xstj|xr?t|j xr&|jj vxr t | Sr@)rismethod isfunctionr4rf__dict__r2rrs rErz#get_jit_class_def..saW--a0IG4F4Fq4IS!**- - JJ#,, &A rGrcRtj|xrt|ddk(S)N__self__)rrr)fnrs rEis_classmethodz)get_jit_class_def..is_classmethods'#LJ(E(LLrGrrr)rr rF)!rrr6r\r]r^ call_stackjoinrrparserrr dataclasses is_dataclass FunctionDefrDr: enumeratervrrloadercachesourcerrrtsplitr7rbuild_class_def)rrmethodsr sourcelines file_linenofilenamer dedent_srcpy_ast class_astmethod overridesrrD_synthesizer_fn parsed_deffuncobj method_defsrleading_whitespace_lenr|rs` rEget_jit_class_defrs&   GM*C UXX ! ! , , .*&KhWW[ !FJ YYz "F AI i .. . $ $.. &#//2 66 KK  &g. DLAya488>N$i"7+C0 !:- sD)$$**41B1BC D# T3 C>RUCVWK&c95J dA!6q!9:Sq!!$> +'=u C Y/G 3 ; Iw WW; s ?H*H/ct|ts t|n|}tjj j |j}|jjd}|rf|jjdj}tj|d|jd}|jjd|t|r.tjd} t| jdk7s't| jdtj s%t#d|j$d|j&| jd} | j|_ dx|j_|j_|jj|jj,zD]*} | jjdj.| _,t1|rd|_d|_tjj6j9} d} t:r,t|tst=|}| j?|} tA|jB||||| S) af Build a JIT AST (TreeView) from the given function. Args: fn: A function object to compile or a pre-parsed ParsedDef object def_name: The name to give to the resulting AST object. This is not always the same as `fn.__name__`, for example: def _forward(self): ... forward = _forward In this case, the `__name__` attribute of the function object is "_forward", but we want the result AST to have the name "forward". self_name: If this function is a method, what the type name of `self` is. r = zLdef unused_fn(self: Any): raise RuntimeError("Cannot call @unused methods")rz&Expected a single top-level function: :N)r pdt_arg_types)"r _ParsedDefr8r\jit annotations get_type_linerrrargsargrinsertr5rtr RuntimeErrorrrkwargvararg kwonlyargs annotationr2returns type_comment_script_get_type_trace_dbr<r;get_args_types build_defr|)rdef_namerrr type_linefn_defarg_name assign_stmt unused_fn_def unused_defr type_trace_dbrqualnames rErr>s'1Z&@2bJ %%33J4E4EFI ^^  #F;;##A&**ii8*C { ;<AA!D  1k*2 \  }!! "a 'z   q !3??0 89L9L8MQzOeOeNfg #''*  oo 155 FKK.;;##fkk&<&<< @C'__11!4??CN @ r?!FN"&F II%%88:MM 2z :%b)%44X> #  rGct|jdjtjr|jdjj }t|tj r|j}|j}|dk(rgt|tj rM|jdk(r>t|jtjr|jjdk(ryy)Nr_IgnoreContextManagerrr\TF) rr context_exprrCallrr attrvalueNameid)stmtfunction attr_name attr_values rE#is_torch_jit_ignore_context_managerrs$**Q-,,chh7::a=--22 h . I!J33 CMM9??e+ :;K;KSXX0V!''**g5# rGceZdZdZy)Buildercxt|d|jjzd}| t|||||S)Nbuild_)rrrfro)r`r|noders rE__call__zBuilder.__call__s>x$..*A*AA4H >&sD1 1c4  rGN)rfrgrhrrirGrErrs!rGrc |j|j|j|jtdz}t t |||Dcgc] }t |c}||Scc}w)NrL)rwrxryrtr rr')r|py_defrrrrrrs rErrsa  v((&*;*;c'l*J A  aAvd6lA:w AsA- c|j}|j|j|j|jt dz}t ||j ||}d} t|ddt||j} t||| } |du} |@tjj|} tjj| | | } tt!||| t#||S)NrIr)rrwrxryrtbuild_param_listrr build_exprrrr\r]parse_type_commentmerge_type_from_type_commentrrr) r|rrrrrrr param_list return_typedecl is_methodtype_comment_decls rErrs ;;D v}}f&7&79J9JSQVZ9WXA!#v{{I}MJKvy$'3 fnn5 :{ +D%I!HH77 Bxx44     uQ!4S$)? @@rGzfCompiled functions can't take variable number of arguments or use keyword-only arguments with defaultsc D|jf|j}|j|j|jdz |jt |j z}t |t|jf|j}|j|j|jdz |jt |j z}t |tt |jdkDr=|jD].}|t||j}t |t|jDcgc]/}||r't||j r||j ndf1}}|jDcgc]/}||r't||j r||j ndf1}}|D cgc]\}} t|||d| } }} | |D cgc]\}} t|||d| c} }z } | Scc}wcc}wcc} }wcc} }w)NrrF) kwarg_only pdt_arg_typeT)rrwrxryrtrrk_vararg_kwarg_errr kw_defaultsrrrboolr build_param) r|py_argsrrexpr ctx_ranger arg_and_typesarg_and_types_kwonlyargsarg_typeresults rErrs}} }}NN KK1,dooDHH .M  +<==~~!~~NN KK1,dooDHH .M  +<== 7  !#&& FC&sC0668 ' 3DEE F<<  mCGG&eAy12-a0 %4.* ==rGc tdddgtdddgfd}d}d}d}||jd jj\}}d |||z}d |z} | d d j |D cgc]} | j dz| j z c} zdzz } ||\} } | | dzz } tj| jd } |j| _ tj| jd } | jj| dtj| d}tjt}t||||t|<||}d|d ||zdz}t|d kDr |dz|z}n|}tj|jd }|Scc} w)N InputTyperDann OutputTypecg}g}|D]s}|j}|jj}|jd\}}|dk(r|j|||dk(s\|j||u||fS)Nrinpout)rr rr) rinputsoutputsrvar_namevar_ann var_decl_typer7r9s rEprocess_ins_outsz6build_ignore_context_manager..process_ins_outss >CwwHiiooG%,]]3%7 "M7% i':;%z(G<= >wrGcftjdd|j}|d|jS)Nz [^a-zA-Z0-9_]r)resubrrx)r|r rs rEcreate_unique_name_extz.create_unique_name_exts0VV$c3<< 8Qt{{m$$rGcd}d}t|dk(r|dz }t|dk(r$d|djz}||djz }t|dkDr`d}|dd j|Dcgc]}|jc}zd zz }|d j|Dcgc]}|jc}z }||fScc}wcc}w) Nrrzreturn rz -> Nonerz -> z -> tuple[, ])rtr8rDr)r>return_type_annreturn_statement_strvars rEbuild_return_ann_stmtz;build_ignore_context_manager..build_return_ann_stmts( w<1  z )O w<1 $wqz~~5O GAJOO 3 w.build_args+s#yyd3s#((3443s*r func_ignore_z def (rIz :)z: passz# Backward compat: These used to be imported into the outer global scope so some # code may still expect them. from typing import List, Dict, Tuple @torch.jit.ignore rztorch.jit.frontend.r)rrrkeywordsrrDr8rrrrunparsecopyglobalsexecrt)r|r rBrFrNrPr=r>ignore_function_nameignore_function_strrM return_ann return_stmtignore_functionignore_func_strgassign_str_lhsassign_str_rhs assign_str assign_astr7r9s @@rEbuild_ignore_context_managerrds;8IL65/:J % 55'tzz!}'A'A'J'JKOFG*,B3,MM"%99 diifEsD3772EFFL4G<J :00ii 3499!.sPW--a0IG4F4Fq4I'S!**- -' JJ#,, &rGr)rrrm)rr method_name method_impldefaultss` rEget_default_args_for_classrswsW   'G)0 $K %k22H O s<ceZdZedZy)WithItemBuildercD|jj}|jj}|ttt j z}|j}|j|||}t|t||j|rt||SdSr@) rrxryrtrzrr0 optional_varsrwr1r)r|itemrxstartendop_varsrs rErzWithItemBuilder.build_withitems""))!!,,c+CHH566$$ NN65# . sD-- .(/JsG $  6:  rGN)rfrgrh staticmethodrrirGrErurus    rGruceZdZejdej dej dejdejdejdejdejdejd ejd ejd i Zed Zed ZedZedZedZedZedZedZedZedZedZedZedZedZedZedZ y)r+-*/%|&^<<>>**cx|j}|jjdk(rytt ||S)NStr)r rrfrr)r|r r s rE build_ExprzStmtBuilder.build_Exprs4  ?? # #u ,JsE23 3rGct||j}|jDcgc]}t||}}t||Scc}wr@)rr targetsr)r|r rhsxlhss rErzStmtBuilder.build_AssignsBdjj)+/<<8az#q!88c39sAc|jt||dt|jtj k(r|jjj dk(r|jdk7r|j}|td|jjz}t|jdr%|td|jj z }|j|j||}td|jd |t!||j}t!||j}t!||j}t#|g||S) Nzwithout assigned value)r~r`razself.r z: zKType annotations on instance attributes must be declared in __init__, not 'z': )r rorstargetrr r funcnameryrtr hasattrrrwrx ValueErrorrr)r|r ryrzsrrrthe_types rErzStmtBuilder.build_AnnAssigns/ :: &sD9QR R   . !!$$. *OOE#dkk&6&6%7899Ct-sR 2 23455 UC8B""%,,s2$8  djj)dkk*c4??3seS(++rGc |j|j|j|jtdz}t ||j Dcgc]}t ||c}Scc}w)NrK)rwrxryrtrrr)r|r rrs rE build_DeletezStmtBuilder.build_DeletesO NN4;;3u:9U Va Mf*S&1MNNMsA, c|j|j|j|jtdz}t ||j dSt ||j S)Nreturn)rwrxryrtr#r rr|r rs rE build_ReturnzStmtBuilder.build_ReturnsW NN KK$//CM*I a!3UUC9TUUrGc|j|j|j|jtdz}t ||j }t ||S)NrN)rwrxryrtrexcr")r|r rr-s rE build_RaisezStmtBuilder.build_RaisesE NN4;;3w<9W X#txx(Q~rGc |j|j|j|jtdz}t ||j }|j t ||j nd}t|||S)NrO)rwrxryrtrtestr[r)r|r rrr[s rE build_AssertzStmtBuilder.build_Assertsh NN KK$//CM*I #tyy)+/88+?jdhh'Tas##rGcft||j}t||j}t|j}|t j vrt j |}n>tt||jjddd|jzt|||S)N=)r)offsetsz*unsupported kind of augmented assignment: ) rrr rsopr augassign_maprk find_beforerryrfr )r|r rrrop_tokens rEbuild_AugAssignzStmtBuilder.build_AugAssignsdkk*djj) $''] ** *"004H#C!2!2CIz?print statements with non-default destinations aren't supported) rwrxryrtdestrkvaluesrrrr.r)r|r rvalrs rE build_PrintzStmtBuilder.build_Print)s NN4;;3w<9W X 99#T 15 < 3$<<c%7"34dB?@@=s$B"c|j|j|j|jtdz}t |S)Npass)rwrxryrtr rs rE build_PasszStmtBuilder.build_Pass3s2 NN4;;3v;9V WAwrGc|j|j|j|jtdz}t |S)NrS)rwrxryrtr rs rE build_BreakzStmtBuilder.build_Break8s2 NN4;;3w<9W XQxrGc|j|j|j|jtdz}t |S)NrT)rwrxryrtrrs rEbuild_ContinuezStmtBuilder.build_Continue=s8 NN KK$//C O*K {rGc,|j|j|j|jtdz}t |rt ||}t ||St|t||jt||jS)NrM) rwrxryrtrrdrr0rrrr)r|r rrcs rE build_WithzStmtBuilder.build_WithDso NN4;;3v;9V W .t 45c4@Jc:. .AsDJJ7S$))9TUUrGN)!rfrgrhrAddSubMultDivModBitOrBitAndBitXorLShiftRShiftPowrr|rrrrrrrrrrrrrrrrrirGrErrs   #   3 C C D D  M44  ,,2OO VV  $$ - -QQ      AA VVrGrc"eZdZejdej dej dejdejdejdejdejdejd ejd ejd ejd i Zd eej"<ej$dej&dej(diZej,dej.diZej2dej4dej6dej8dej:dej<dej>dej@dejBdejDdi Z#e$dZ%e$dZ&e$dZ'e$dZ(e$d Z)e$d!Z*e$d"Z+e$d#Z,e$d$Z-e$d%Z.e$d&Z/e$d'Z0e$d(Z1e$d)Z2e$d*Z3e$d+Z4e$d,Z5e$d-Z6e$d.Z7e$d/Z8e$d0Z9e$d1Z:y2)3 ExprBuilderr~rrrrrz//rrrrr@not~andorz==z!=z<==>iszis notinznot inct||j}|jjdfd}|j j dz}||t jvr|dz }||t jvr|t|jz}|j||}t|t||jS)Nzutf-8c t|Sr@)chr)indexrs rEget_charz-ExprBuilder.build_Attribute..get_charsve}% %rGr) rr rencoderrzstring whitespacertr make_raw_ranger$r)r|r-baser start_posend_pos name_rangers @rEbuild_AttributezExprBuilder.build_Attributexs#tzz*""7+ &JJL$$q( y!V%6%66 NIy!V%6%66c$))n,'' 7; dE*dii899rGc Ht||j}|jDcgc]}t||}}t|dr@|jr4t||j}|t |j |gz }g}|jD]{}t||j}|jst|j d|jtt|j |j|}t|||Scc}w)Nstarargsz&keyword-arg expansion is not supported)rrrrrr&rrTr rrkrr rr) r|r-rr4r stararg_exprkwargskwkw_exprs rE build_CallzExprBuilder.build_Calls#tyy)6:ii@F 3'@@ 4 $%c4==9L W\//1<@A AD-- NB bhh/G66'MMO%M MM)E'--/266$BGL M NT4((AsDc|j|j|j|jdz}t|S)N)rwrxryrr|r-rs rEbuild_EllipsiszExprBuilder.build_Ellipsiss3 NN KK$//A*= AwrGc|j|j|j|jt|jz}|jj t rt|dt z|jdk(r t|S|jdk(r t|S|jdk(r t|S|jdk(r t|Stt||jS)Nz=names of variables used in JIT-ed functions can't start with TrueFalseNoneEllipsis)rwrxryrtr rArBrkr+rrrr.rrs rE build_NamezExprBuilder.build_Names NN4;;3tww<9W X 77  . /#$&67  77f q> ! WW ? " WW q> ! WW "7N5DGG$%%rGc |j|j|j|jtt |j z}|j dur t |S|j dur t|S|j t|S|j tk(r t|Stdt |j z)NTFz!Name constant value unsupported: ) rwrxryrtstrr r+rrrrrrs rEbuild_NameConstantzExprBuilder.build_NameConstants NN KK$//CDJJ ! ZZ5 ? " ZZ q> ! ZZ8 #7N@3tzz?RS SrGcpt||j}t||j}t|j}|t j k(rZ|jsN|j|jj|jj}t|dtjj|}|[|j|jj|jj}t!|d|j"zt%|||S)NzDivision of ints in TorchScript uses Python 3 true division semantics. Please put `from __future__ import division` at the top of your filezunsupported binary operator: )rleftrightrsrrruses_true_divisionrrrzryrXr binop_maprvrkrfr )r|r-rrr err_rangers rE build_BinOpzExprBuilder.build_BinOpsdii(djj) $''] =!7!7**399;??CIIK*D*DI$;bkkI lQR= ,C#s+C , LsDctt||jt||jt||jSr@)r*rrrr)r|r-s rE build_IfExpzExprBuilder.build_IfExps9 sDII & sDII & sDKK (  rGcv|jgt|jzDcgc]}t||}}d}t ||j |ddD]\}}}t |}tjj|} |j|jj|jj} | t| d|jz|t j"k(rt%d||} t'| d| } n t%| ||} || }t%d|| }|Scc}w)Nrz!unsupported comparison operator: rrr)rr comparatorsrzipopsrsr cmpop_maprvrrrzryrkrfrNotInr r-) r|r-eoperandsr2rop_rrrrin_exprcmp_exprs rE build_ComparezExprBuilder.build_Compares&15 d4CSCS>T0TU1JsA&UU 488Xab\B 8MCccB",,004H""399;??CIIK4E4EFA':R[[HSYY c3/"1eW5 34~!ufh7) 8* /VsD6c d d fd}t||j}t|j}|tj urt |jjtjr|jjjDcgc]}t||}}|sy|j|j|jjj|jjjdz}t|g}|j|t||St|t||jjgS|tjurt| |||jgS|tj urt|||||jS|tjurg}|jjD]Q}t |tjr|j |||7|jt||S|se|j|j|jj|jjdz}t|g}|j|t||St|t||jgScc}w)Nc|jt||jnd}|jt||jnd}|jt||jnd}t |j |||Sr@)lowerrupperstepr%r)r|r slice_exprrr r!s rEbuild_SliceExprz4ExprBuilder.build_Subscript..build_SliceExpr#s##/3 0 01 ##/3 0 01 ??.3 0  TZZ\5%> >rGct|jtjrt |j dt ||jS)Nz9slicing multiple dimensions with tuples not supported yet)rr rTuplerkrr)r|r index_exprs rE build_Indexz0ExprBuilder.build_Subscript..build_Index5sD***CII6'JJLOc:#3#34 4rGcg}|jD]}t|}|tjur|j |||:|tj ur|j |||f|tj ur;|jtur)|j t|jt|jd|d|S)Nz!slicing multiple dimensions with z not supported) dimsrsrIndexrSliceConstantr rrrrk)r|rextslicer r-sub_typer'r#s rEbuild_ExtSlicez3ExprBuilder.build_Subscript..build_ExtSlice=sI :syy($$[dD%AB*$$_S$%EF-$**2H$$T$**,%78+ ;H:^T  rGr )rr rsslicerr*rr%eltsrwrxryr,rr)r+ExtSlice) r|r-r/rr.r&indicesrtupr'r#s @@rEbuild_SubscriptzExprBuilder.build_Subscript!sI ?$ 5 "#tzz* # syy $****CII6CG**BRBRBWBW4>JsJ/  ((33 ((33a7A 'q"-CNN3' w//  3 8H8H(I'JKK  "TOCtzz$J#KL L  %T>#tTZZ#HI I399$"&**//DJ!*cii8sD*'MNz#z'BC D  TZZ%:%:DJJrs8  " ------------\  ?M )..1G1GG&--WXH OO+GG[JJ LL%HHII!JJ JJ#NN'JJ"II!LL'  OOUGGUJJLL'HHfIIwJJJJNNFJJIIwLL*  : ' .  *  k k |  j  . [|,:  g  gV'gVTg7'g7T ] ]  "XrG