
    HЦi                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
JrJr  S SKrS SKrS SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<  S SK=J>r>J?r?J@r@JArA  S SKBJCrCJDrDJErEJFrG  S S	KHJIrI  S S
KJJKrKJLrL  SrM S SKNrNSrMSrPS1rQ\R" \R                  \R                  -   \R                  -   5      rVS rW\ R                  S\ RH                  S\ R:                  S\ R0                  S\ Rv                  S\ RZ                  S\ R$                  S\ R                  S\ R                  S\ R                  S\ R.                  S\ R4                  S0r\\ R                  S\ RH                  S\ R:                  S\ R0                  S\ Rv                  S\ RZ                  S \ R$                  S!\ R                  S"\ R                  S#\ R                  S$\ R.                  S%\ R4                  S&0r]\\R                  \ R                  S'\ R                  S(\ R                  S)\ R                  S*\ R                  S+05        \]R                  \ R                  S,\ R                  S-\ R                  S.\ R                  S/\ R                  S005        \\R                  \ R                  S105         " S2 S3\e5      rf " S4 S5\f5      rg " S6 S7\g5      rh " S8 S9\f5      riS: rjS; rkS< rlS= rmS> rnSRS? jroS@ rp " SA SB5      rqSC rrSSSD jrsSErtSTSF jruSTSG jrvSH rwSI rxSJ ry " SK SL\q5      rz " SM SN\q5      r{ " SO SP\q5      r|\|" 5       r}\{" 5       r~\z" 5       rSUSQ jrg! \O a     GNf = f)V    N)
namedtuple)dedent)ListTuple)_jit_internal),ApplyAssertAssign	Attribute	AugAssignBinOpBreakClassDefConstContinueDeclDefDeleteDictCompDictLiteralDotsEmptyTypeAnnotationExprStmtFalseLiteralForIdentIfListCompListLiteralNoneLiteralParamPassPropertyRaiseReturnSelect	SliceExprStarredStmtStringLiteral	Subscript	TernaryIfTrueLiteralTupleLiteralUnaryOpVarWhileWithWithItem)_is_drop_fnFunctionModifiersis_static_fnshould_drop)get_source_lines_and_filemake_source_context	parse_def	ParsedDef)DATACLASS_MAGIC_METHODS)get_qualified_namemonkeytype_traceFT__jitprintc                 L    U R                  [        5      =(       d	    U [        ;   $ N)
startswith_reserved_prefix_reserved_names)names    Q/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/jit/frontend.pyis_reserved_namerH   ]   s    ??+,G0GG    zfunction definitionsz	for loopszdel statementszclass definitionszwith statementszraise statements
assertionszimport statementszglobal variableszbreak statementszcontinue statementsdeffordelclasswithraiseassertimportfromglobalbreakcontinuezasync function definitionszasync for loopszasync with statementsz
try blocksznonlocal variablesz	async defz	async forz
async withtrynonlocalzannotated assignmentsc                        \ rS rSrS rS rSrg)FrontendError   c                 x    Xl         X l        [        R                  R	                  U R                   5      U l        g rB   )source_rangemsgtorch_CErrorReporterror_report)selfr]   r^   s      rG   __init__FrontendError.__init__   s,    ( "HH001B1BCrI   c                 l    U R                   U R                  R                  5       R                  5       -   $ rB   )r^   rb   whatlstrip)rc   s    rG   __str__FrontendError.__str__   s)    xx$++00299;;;rI   )rb   r^   r]   N)__name__
__module____qualname____firstlineno__rd   ri   __static_attributes__ rI   rG   rZ   rZ      s    D<rI   rZ   c                       \ rS rSrSrg)NotSupportedError   rp   Nrk   rl   rm   rn   ro   rp   rI   rG   rr   rr          rI   rr   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )UnsupportedNodeError   c                 F  > [        U5      n[        [        R                  US5      5      nUR	                  UR
                  UR                  UR                  U-   5      n[        R                  XDR                  5      nU SU(       a  US-   OS S3n[        T	U ])  Xh5        g )N  zaren't supported)typelennode_start_tokensget
make_rangelineno
col_offsetpretty_node_namesrk   superrd   )
rc   ctxoffending_nodereason	node_type	range_lenr]   feature_namer^   	__class__s
            rG   rd   UnsupportedNodeError.__init__   s    (	)--i=>	~~!!%%%%	1

 ),,Y8J8JKaB??OP+rI   rp   )r{   )rk   rl   rm   rn   rd   ro   __classcell__)r   s   @rG   rw   rw      s    , ,rI   rw   c                       \ rS rSrSrg)FrontendTypeError   rp   Nrt   rp   rI   rG   r   r      ru   rI   r   c                 X    U Vs/ s H  n[        X5      PM     nn[        U5      $ s  snf rB   )build_withitemlist)r   itemsis      rG   build_withitemsr      s*    -23U^C#UE3; 4s   'c                 l    U Vs/ s H  n[        X5      PM     nn[        [        S U5      5      $ s  snf rB   )
build_stmtr   filter)r   stmtsss      rG   build_stmtsr      s2    )./AZE/tU#$$ 0s   1c                    [         R                  " U S S9n[        U S/ 5      n/ nU H  nUS   U;  d  M  [        US   R                  5      (       a  M-  [        US   R                  SUS    S3US9nUS   R                  (       a  [        US   R                  SUS    S	3US9OS
nUR                  [        UR                  5       [        UR                  5       US   5      Xg5      5        M     U$ )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                 "    [        U [        5      $ rB   )
isinstanceproperty)ms    rG   <lambda>&get_class_properties.<locals>.<lambda>   s    
1h8OrI   	predicate__jit_unused_properties__r      ___getter)	self_name_setterN)inspect
getmembersgetattrr7   fgetget_jit_deffsetappendr#   ranger   )clsr   propsunused_properties
propertiespropgettersetters           rG   get_class_propertiesr      s     s.OPE%@"E J7++KQ4M4M Q47)73yF
 7<< DGLLBtAwiw*?9U 
 v||~tAw)GX  rI   c                 "  ^ ^ / mUU 4S jnUR                    Hs  n[        U[        R                  5      (       a  U" [        R
                  U5        M;  [        U[        R                  5      (       d  M\  U" [        R                  U5        Mu     T$ )Nc                 X   >  TR                  U " TU5      5        g ! [         a     g f = frB   )r   rr   )builderentryassignsr   s     rG   maybe_build_assign-get_class_assigns.<locals>.maybe_build_assign   s-    	NN73./  		s    
)))bodyr   astr
   StmtBuilderbuild_Assign	AnnAssignbuild_AnnAssign)r   cls_astr   r   r   s   `   @rG   get_class_assignsr      sf    G eSZZ(({77?s}}--{::EB	 
 NrI   c                   ^  [         R                  " T U 4S jS9nU 4S jn[        T [        R                  R
                  R                  5       5      u  pEnSR                  U5      n[        U5      n[        R                  " U5      n	U	R                  S   n
[        U
[        R                  5      (       d   e[        R                  " T 5      (       a  U
R                   Vs1 s HF  n[        U[        R                   5      (       d  M$  UR"                  [$        ;   d  M:  UR"                  iMH     nn['        U5       Hr  u  nu  p[$        R(                  " U5      nU(       d  M'  X;  d  M.  U" T 5      nUU4X-'   [+        T U5      n[,        R.                  R1                  UUR2                  5        Mt     U VVs/ s H  u  nn[5        UXU" U5      S9PM     nnn[7        T U5      n[9        UR;                  SS5      S   5      [9        UR;                  SS5      S   5      -
  n[=        XvUUS	5      n[?        UU
5      n[A        UU
UUUU5      $ s  snf s  snnf )
aT  Get 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.
c                   > [         R                  " U 5      =(       d    [         R                  " U 5      =(       aR    [        TU R                  5      (       + =(       a0    U R                  TR
                  ;   =(       a    [        U 5      (       + $ rB   )r   ismethod
isfunctionr6   rk   __dict__r4   r   r   s    rG   r   #get_jit_class_def.<locals>.<lambda>  sa    W--a0IG4F4Fq4I S!**--JJ#,,& ArI   r   c                 ^   > [         R                  " U 5      =(       a    [        U SS 5      T:H  $ )N__self__)r   r   r   )fnr   s    rG   is_classmethod)get_jit_class_def.<locals>.is_classmethod  s'    #LJ(E(LLrI   r{   r   )r   r   
r   F)!r   r   r8   r_   r`   ra   
call_stackjoinr   r   parser   r   r   dataclassesis_dataclassFunctionDefrF   r<   	enumerater   r   r   loadercachesourcer   r   r}   splitr9   r   build_class_def)r   r   methodsr   sourcelinesfile_linenofilenamer   
dedent_srcpy_ast	class_astmethod	overridesr   rF   _synthesizer_fn
parsed_deffuncobjmethod_defsr   leading_whitespace_lenr   r   s   `                        rG   get_jit_class_defr      s*      GM *CUXX!!,,.*&Kh WW[!FJYYz"FAIi.... $$
 $..
(&#//2  66 FKK( 	 
 &g.LAy488>N~$"7+C0
!:-
sD)$$**41B1BC / #"KT3 	C>RUCVW"   &c95J dA!6q!9:Sq!!$>  +'=uC  Y/G3	;
IwWW;
s   !#I
I
I
6Ic           	      P   [        U [        5      (       d  [        U 5      OU n[        R                  R
                  R                  UR                  5      nUR                  R                  S   nU(       ag  UR                  R                  S   R                  n[        R                  " U SU 35      R                  S   nUR                  R                  SU5        [        U 5      (       Ga<  [        R                  " S5      n	[        U	R                  5      S:w  d,  [        U	R                  S   [        R                   5      (       d%  [#        SUR$                   SUR&                   35      eU	R                  S   n
U
R                  Ul	        S=UR                  l        UR                  l        UR                  R                  UR                  R,                  -    H+  nU
R                  R                  S   R.                  Ul        M-     [1        U 5      (       a  SUl        SUl        [        R                  R6                  R9                  5       nSn[:        (       a1  [        U [        5      (       d  [=        U 5      nUR?                  U5      n[A        URB                  UUUUUS9$ )	a6  
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")r   z&Expected a single top-level function: :N)r   pdt_arg_types)"r   
_ParsedDefr:   r_   jitannotationsget_type_liner   r   r   argsargr   insertr7   r}   r   RuntimeErrorr   r   kwargvararg
kwonlyargs
annotationr4   returnstype_comment_script_get_type_trace_dbr>   r=   get_args_types	build_defr   )r   def_namer   r   r   	type_linefn_defarg_nameassign_stmtunused_fn_def
unused_defr   type_trace_dbr   qualnames                  rG   r   r   G  s    '1Z&@&@2bJ		%%33J4E4EFI^^  #F;;##A&**ii8*C	{ ;<AA!D1k* 2		\
 }!!"a'zq!3??0
 0
 89L9L8MQzOeOeNfg  #''*
 oo155FKK.;;##fkk&<&<<C'__11!4??CN = r??!FN"&F II%%88:MM
2z : :%b)%44X># rI   c                    [        U R                  S   R                  [        R                  5      (       a  U R                  S   R                  R
                  n[        U[        R                  5      (       a  UR                  nUR                  nUS:X  as  [        U[        R                  5      (       aT  UR                  S:X  aD  [        UR                  [        R                  5      (       a  UR                  R                  S:X  a  gg)Nr   _IgnoreContextManagerr   r_   TF)r   r   context_exprr   Callr   r   attrvalueNameid)stmtfunction	attr_name
attr_values       rG   #is_torch_jit_ignore_context_managerr     s    $**Q-,,chh77::a=--22h.. I!J33
CMM9 9 ??e+
:;K;KSXX0V0V!''**g5#rI   c                       \ rS rSrS rSrg)Builderi  c                 v    [        U SUR                  R                  -   S 5      nUc  [        X5      eU" X5      $ )Nbuild_)r   r   rk   rw   )rc   r   noder   s       rG   __call__Builder.__call__  s:    x$..*A*AA4H>&s11c  rI   rp   N)rk   rl   rm   rn   r&  ro   rp   rI   rG   r"  r"    s    !rI   r"  c           	          U R                  UR                  UR                  UR                  [        S5      -   5      n[	        [        Xd5      U Vs/ s H  n[        U5      PM     snX55      $ s  snf )NrN   )r   r   r   r}   r   r   r)   )r   py_defr   r   r   r   rr   s           rG   r   r     sa    v((&*;*;c'l*J	A aAvd6lA: As   A.
c                    UR                   nU R                  UR                  UR                  UR                  [	        S5      -   5      n[        XR                  XE5      nS n	[        USS 5      b  [        XR                  5      n	[        XxU	5      n
US LnUb?  [        R                  R                  U5      n[        R                  R                  XU5      n
[        [!        Xs5      U
[#        X5      5      $ )NrK   r  )r   r   r   r   r}   build_param_listr   r   
build_exprr  r   r_   r`   parse_type_commentmerge_type_from_type_commentr   r   r   )r   r)  r  r  r   r   r   r*  
param_listreturn_typedecl	is_methodtype_comment_decls                rG   r
  r
    s    ;;Dv}}f&7&79J9JSQVZ9WXA!#{{IMJKvy$'3 nn5{+D%I!HH77	Bxx44TiXuQ!4S)?@@rI   zfCompiled functions can't take variable number of arguments or use keyword-only arguments with defaultsc                 r   UR                   bf  UR                   nU R                  UR                  UR                  S-
  UR                  [	        UR
                  5      -   5      n[        U[        5      eUR                  bf  UR                  nU R                  UR                  UR                  S-
  UR                  [	        UR
                  5      -   5      n[        U[        5      e[	        UR                  5      S:  a?  UR                   H/  nUc  M  [        X5      R                  5       n[        U[        5      e   UR                   Vs/ s H8  nUU(       a*  [        X6R
                     5      (       a  X6R
                     OS 4PM:     nnUR                   Vs/ s H8  nUU(       a*  [        X6R
                     5      (       a  X6R
                     OS 4PM:     nnU VV	s/ s H  u  pi[        XUSU	S9PM     n
nn	U
U VV	s/ s H  u  pi[        XUSU	S9PM     sn	n-  n
U
$ s  snf s  snf s  sn	nf s  sn	nf )Nr   r   F)
kwarg_onlypdt_arg_typeT)r  r   r   r   r}   r   rr   _vararg_kwarg_errr  kw_defaultsr-  r   r   boolr  build_param)r   py_argsr   r   expr	ctx_ranger   arg_and_typesarg_and_types_kwonlyargsarg_typeresults              rG   r,  r,    s   }} }}NNKK1,dooDHH.M
	  	+<==~~!~~NNKK1,dooDHH.M
	  	+<==
7!# &&C&s0668	'	3DEE ' <<  C mGG&<!=!= ''"		
      %%  &C mGG&<!=!= ''"		
 &    +*MC 	CiEQ*   55MC 	CiDxP5 F M7 s   ?H#?H("H-H3c                    UR                   nU R                  UR                  UR                  UR                  [	        U5      -   5      n[        USS 5      b  [        XR                  5      nOEU(       a  [        [        Xd5      5      nO)Ub  US:X  a  [        [        Xb5      5      nO[        U5      n[        U[        Xe5      U5      $ )Nr  rc   )r   r   r   r   r}   r   r-  r  r0   r   r   r!   )r   py_argr   r6  r7  rF   r*  annotation_exprs           rG   r;  r;    s    ::Dv}}f&7&79J9JSQUY9VWAv|T*6$S*;*;<	eA45		46>eA12-a0%.*==rI   c           	      |  ^^ [        SSS/5      m[        SSS/5      mUU4S jnS nS nS nU" UR                  S	   R                  R                  5      u  pgS
U" X5      -   nSU-   n	U	SSR	                  U V
s/ s H  oR
                  S-   U
R                  -   PM      sn
5      -   S-   -  n	U" U5      u  pXS-   -  n	[        R                  " U	5      R                  S	   nUR                  Ul	        [        R                  " U5      R                  S	   nUR                  R                  U5        S[        R                  " U5      -   nUSU SU 3-  n[        U5        U" U5      nSU S3U" U5      -   S-   n[        U5      S	:  a	  US-   U-   nOUn[        R                  " U5      R                  S	   nU$ s  sn
f )N	InputTyperF   ann
OutputTypec                   > / n/ nU  Ht  nUR                   nUR                  R                  nUR                  S5      u  peUS:X  a  UR                  T" XE5      5        US:X  d  M]  UR                  T" XE5      5        Mv     X4$ )Nr   inpout)r   r  r   r   )	r   inputsoutputsr   var_namevar_annvar_decl_typerG  rI  s	          rG   process_ins_outs6build_ignore_context_manager.<locals>.process_ins_outs  s|     CwwHiiooG%,]]3%7"M%i:;%z(<=  rI   c                 h    [         R                  " SSU R                  5      nU SUR                   3$ )Nz[^a-zA-Z0-9_]r   )resubr   r   )r   r  r   s      rG   create_unique_name_ext<build_ignore_context_manager.<locals>.create_unique_name_ext  s0     VV$c3<<8Qt{{m$$rI   c                    SnSn[        U 5      S:X  a  US-  n[        U 5      S:X  a#  SU S   R                  -   nX S   R                  -  n[        U 5      S:  ad  SnUSS	R                  U  Vs/ s H  o3R                  PM     sn5      -   S
-   -  nUS	R                  U  Vs/ s H  o3R                  PM     sn5      -  nX4$ s  snf s  snf )Nr{   zreturn r   z -> Noner   z -> z	 -> Tuple[, ])r}   rH  rF   r   )rN  return_type_annreturn_statement_strvars       rG   build_return_ann_stmt;build_ignore_context_manager.<locals>.build_return_ann_stmt"  s    (w<1z)Ow<1$wqz~~5O AJOO3 w<!)OsTYY7/K7C7/K%LLsRRO DII7.K7Cxx7.K$LL 44 0L.Ks   -C C
c                 b    SR                  U  Vs/ s H  oR                  PM     sn5      $ s  snf )Nr[  )r   rF   )r   r   s     rG   
build_args0build_ignore_context_manager.<locals>.build_args0  s%    yyd3ds((d3443s   ,r   func_ignore_z
def (r[  z :)z: passz@torch.jit.ignore
z
globals()["z"] = ztorch.jit.frontend.r   )r   r   r  keywordsr   rF   rH  r   r   r   r   
astunparseunparseexecr}   )r   r  rR  rW  r`  rc  rM  rN  ignore_function_nameignore_function_strr_  
return_annreturn_stmtignore_functionignore_func_strassign_str_lhsassign_str_rhs
assign_str
assign_astrG  rI  s                      @@rG   build_ignore_context_managerrv    s   ;8IL65/:J %55 'tzz!}'A'A'J'JKOF *,B3,MM"%99diifEfsD3772fEFFL 4G<J00 ii 3499!<O  99O ))K(--a0K, ,j.@.@.QQO';&<EBVAWXXO  (N 2315
68JJSP  7|a#e+n<
#
:&++A.JE Fs   ;%F9c                    U c  0 $ [         R                  " U 5      nUR                  R                  5        VVs0 s H:  u  p#UR                  [         R
                  R                  Ld  M.  X#R                  _M<     snn$ s  snnf )a  
Get a dictionary of default arguments for a function.

Args:
    fn: Callable - The function to inspect for default arguments.
Returns:
    (Dict[str, Any]): mapping argument names to their default values if
    :attr:`fn` is not None, else empty dictionary.
)r   	signature
parametersr   default	Parameterempty)r   rx  kvs       rG   get_default_argsr  ^  sv     
z	!!"%I ((..00DA99G--333 	990  s   -A>*A>c                    ^  [         R                  " T U 4S jS9nU VVs0 s H  u  p#U[        U5      _M     nnnU$ s  snnf )a'  
Get default arguments for all methods in a class (except for static methods).

Args:
    cls: type - The class type to inspect for default arguments.
Returns:
    A Dict[str, Dict[str, Any]] which maps each method name to a Dict[str, Any]
    that maps each argument name to its default value.
c                    > [         R                  " U 5      =(       d    [         R                  " U 5      =(       a;    [        TU R                  5      (       + =(       a    U R                  TR
                  ;   $ rB   )r   r   r   r6   rk   r   r   s    rG   r   ,get_default_args_for_class.<locals>.<lambda>  sP    W--a0IG4F4Fq4I 'S!**--'JJ#,,&'rI   r   )r   r   r  )r   r   method_namemethod_impldefaultss   `    rG   get_default_args_for_classr  t  sY       'G )0(/$K 	%k22(/  
 Os   =c                   $    \ rS rSr\S 5       rSrg)WithItemBuilderi  c                 H   UR                   R                  nUR                   R                  nU[        [        [
        R                     5      -   nUR                  nU R                  X#U5      n[        U[        XR                   5      U(       a  [        X5      5      $ S 5      $ rB   )r  r   r   r}   r   r   r2   optional_varsr   r3   r-  )r   itemr   startendop_varsr*  s          rG   r   WithItemBuilder.build_withitem  s    ""))!!,,c+CHH566$$NN6#.s--.(/Js$
 	
 6:
 	
rI   rp   N)rk   rl   rm   rn   staticmethodr   ro   rp   rI   rG   r  r    s    
 
rI   r  c                       \ rS rSr\R
                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S	\R                  S
\R                  S\R                  S0r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r!Sr"g)r   i  +-*/%|&^<<>>**c                 x    UR                   nUR                  R                  S:X  a  g [        [	        X5      5      $ )NStr)r  r   rk   r   r-  )r   r  r  s      rG   
build_ExprStmtBuilder.build_Expr  s2    

??##u, Js233rI   c                     [        XR                  5      nUR                   Vs/ s H  n[        X5      PM     nn[        XB5      $ s  snf rB   )r-  r  targetsr
   )r   r  rhsxlhss        rG   r   StmtBuilder.build_Assign  s=    jj)+/<<8<az#!<8c 9s   Ac                    UR                   c
  [        XSS9e[        UR                  5      [        R
                  :X  a  UR                  R                   R                  S:X  a  U R                  S:w  a  UR                  nU[        SUR                  R                   35      -   n[        UR                  S5      (       a%  U[        SUR                  R                   35      -  nU R                  UR                  X#5      n[        SU R                   S	U 35      e[!        XR                   5      n[!        XR                  5      n[!        XR                  5      n[#        U/XW5      $ )
Nzwithout assigned value)r   rc   rd   zself.r  z: zKType annotations on instance attributes must be declared in __init__, not 'z': )r  rw   r|   targetr   r   r  funcnamer   r}   r  hasattrr  r   r   
ValueErrorr-  r
   )r   r  r  r  srr  r  the_types           rG   r   StmtBuilder.build_AnnAssign  s&   ::&s9QRR .!!$$.
*OOE#dkk&6&6%7899Ct--sR 2 23455U8B""%,,s2$8 
 jj)kk*c??3seS++rI   c           
          U R                  UR                  UR                  UR                  [        S5      -   5      n[	        X!R
                   Vs/ s H  n[        X5      PM     sn5      $ s  snf )NrM   )r   r   r   r}   r   r  r-  )r   r  r*  r  s       rG   build_DeleteStmtBuilder.build_Delete  sO    NN4;;3u:9UVaMf*S1MNNMs   A-
c                     U R                  UR                  UR                  UR                  [        S5      -   5      n[	        X!R
                  c  S 5      $ [        XR
                  5      5      $ )Nreturn)r   r   r   r}   r%   r  r-  r   r  r*  s      rG   build_ReturnStmtBuilder.build_Return  sS    NNKK$//CM*I
 a!3UUC9TUUrI   c                     U R                  UR                  UR                  UR                  [        S5      -   5      n[	        XR
                  5      n[        X#5      $ )NrP   )r   r   r   r}   r-  excr$   )r   r  r*  r=  s       rG   build_RaiseStmtBuilder.build_Raise  sA    NN4;;3w<9WX#xx(Q~rI   c                    U R                  UR                  UR                  UR                  [        S5      -   5      n[	        XR
                  5      nUR                  b  [	        XR                  5      OS n[        X#U5      $ )NrQ   )r   r   r   r}   r-  testr^   r	   )r   r  r*  r  r^   s        rG   build_AssertStmtBuilder.build_Assert  sb    NNKK$//CM*I
 #yy)+/88+?jhh'Tas##rI   c           	      \   [        XR                  5      n[        XR                  5      n[        UR                  5      nU[
        R                  ;   a  [
        R                  U   nO:[        [        XR                  5       R                  SSS9SUR                  -   5      e[        X%U5      $ )N=)r   )offsetsz*unsupported kind of augmented assignment: )r-  r  r  r|   opr   augassign_maprr   find_beforer   r  rk   r   )r   r  r  r  r  op_tokens         rG   build_AugAssignStmtBuilder.build_AugAssign  s    kk*jj)$'']***"004H#C!2!2CI<r{{J  ,,rI   c                    UR                   (       a  [        S S5      eU R                  UR                  UR                  UR                  [        S5      -   5      n[        U[        XR                  5      [        XR                  5      5      $ )Nz-else branches of while loops aren't supportedwhile)orelserr   r   r   r   r}   r1   r-  r  r   r   r  s      rG   build_WhileStmtBuilder.build_While  sh    ;; $E  NN4;;3w<9WXQ
3		2KYY4OPPrI   c           	      H   U R                  UR                  UR                  UR                  [        S5      -   5      nUR                  (       a  [        US5      e[        U[        XR                  5      /[        XR                  5      /[        XR                  5      5      $ )NrL   z+else branches of for loops aren't supported)r   r   r   r}   r  rr   r   r-  r  iterr   r   r  s      rG   	build_ForStmtBuilder.build_For  sx    NN4;;3u:9UV;;#A'TUU[[)*YY'(YY'	
 	
rI   c           	      
   U R                  UR                  UR                  UR                  [        S5      -   5      n[	        U[        XR                  5      [        XR                  5      [        XR                  5      5      $ )Nif)
r   r   r   r}   r   r-  r  r   r   r  r  s      rG   build_IfStmtBuilder.build_If  s]    NN4;;3t99TUsII&YY'[[)	
 	
rI   c           
      \   U R                  UR                  UR                  UR                  [        S5      -   5      nUR                  (       a  [        US5      eUR                   Vs/ s H  n[        X5      PM     nn[        [        [        [        US5      5      U/ 5      5      $ s  snf )Nr@   z?print statements with non-default destinations aren't supported)r   r   r   r}   destrr   valuesr-  r   r   r0   r   )r   r  r*  valr   s        rG   build_PrintStmtBuilder.build_Print&  s    NN4;;3w<9WX99#T  15<
3$<c%7"34dB?@@ =s   )B)c                     U R                  UR                  UR                  UR                  [        S5      -   5      n[	        U5      $ )Npass)r   r   r   r}   r"   r  s      rG   
build_PassStmtBuilder.build_Pass0  s2    NN4;;3v;9VWAwrI   c                     U R                  UR                  UR                  UR                  [        S5      -   5      n[	        U5      $ )NrU   )r   r   r   r}   r   r  s      rG   build_BreakStmtBuilder.build_Break5  s2    NN4;;3w<9WXQxrI   c                     U R                  UR                  UR                  UR                  [        S5      -   5      n[	        U5      $ )NrV   )r   r   r   r}   r   r  s      rG   build_ContinueStmtBuilder.build_Continue:  s8    NNKK$//C
O*K
 {rI   c                 Z   U R                  UR                  UR                  UR                  [        S5      -   5      n[	        U5      (       a,  [
        (       d  [        S5      e[        X5      n[        X5      $ [        U[        XR                  5      [        XR                  5      5      $ )NrO   ztorch.jit._IgnoreContextManager requires installing Python library `astunparse`,                                    please install it in your Python environment)r   r   r   r}   r   _IS_ASTUNPARSE_INSTALLEDr   rv  r   r2   r   r   r   r   )r   r  r*  ru  s       rG   
build_WithStmtBuilder.build_WithA  s    NN4;;3v;9VW.t44++"Q  6c@Jc..AsJJ7S))9TUUrI   rp   N)#rk   rl   rm   rn   r   AddSubMultDivModBitOrBitAndBitXorLShiftRShiftPowr  r  r  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  ro   rp   rI   rG   r   r     s   #		3

C

C

D

DM 4 4    
 , ,2 O O
 V V  
 $ $ - - Q Q 

 

 
 
 A A       V VrI   r   c                   *   \ rS rSr\R
                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S	\R                  S
\R                  S\R                  S\R                   S0rS\\R$                  '   \R&                  S\R(                  S\R*                  S0r\R.                  S\R0                  S0r\R4                  S\R6                  S\R8                  S\R:                  S\R<                  S\R>                  S\R@                  S\RB                  S\RD                  S\RF                  S0
r$\%S 5       r&\%S 5       r'\%S 5       r(\%S  5       r)\%S! 5       r*\%S" 5       r+\%S# 5       r,\%S$ 5       r-\%S% 5       r.\%S& 5       r/\%S' 5       r0\%S( 5       r1\%S) 5       r2\%S* 5       r3\%S+ 5       r4\%S, 5       r5\%S- 5       r6\%S. 5       r7\%S/ 5       r8\%S0 5       r9\%S1 5       r:\%S2 5       r;S3r<g4)5ExprBuilderiP  r  r  r  r  r  r  z//r  r  r  r  r  @not~andorz==z!=z<=<z>=>iszis notinznot inc                   ^ [        XR                  5      nU R                  R                  S5      mU4S jnUR	                  5       R
                  S-   nU" U5      [        R                  ;   a!  US-  nU" U5      [        R                  ;   a  M!  U[        UR                  5      -   nU R                  XE5      n[        U[        XaR                  5      5      $ )Nzutf-8c                     > [        TU    5      $ rB   )chr)indexr   s    rG   get_char-ExprBuilder.build_Attribute.<locals>.get_char  s    ve}%%rI   r   )r-  r  r   encoder   r  string
whitespacer}   r  make_raw_ranger&   r   )r   r=  baser  	start_posend_pos
name_ranger   s          @rG   build_AttributeExprBuilder.build_Attributez  s    #zz* ""7+	& JJL$$q(	y!V%6%66NI y!V%6%66c$))n,''	;
dE*ii899rI   c           	      f   [        XR                  5      nUR                   Vs/ s H  n[        X5      PM     nn[        US5      (       aD  UR                  (       a3  [        XR                  5      nU[        UR                  5       U5      /-  n/ nUR                   H  n[        XR                  5      nUR                  (       d  [        UR                  5       S5      eUR                  [        [        UR                  5       UR                  5      U5      5        M     [        X$U5      $ s  snf )Nstarargsz&keyword-arg expansion is not supported)r-  r   r   r  r  r(   r   rh  r  r   rr   r   r   r   r   )	r   r=  r   rD  r   stararg_exprkwargskwkw_exprs	            rG   
build_CallExprBuilder.build_Call  s    #yy)6:ii@iF
3'i@4$$%c==9LW\//1<@AAD--B hh/G66'MMO%M  MM)E'--/266$BGLM   T(( As   D.c                     U R                  UR                  UR                  UR                  S-   5      n[        U5      $ )N   )r   r   r   r   r   r=  r*  s      rG   build_EllipsisExprBuilder.build_Ellipsis  s3    NNKK$//A*=
 AwrI   c                    U R                  UR                  UR                  UR                  [        UR                  5      -   5      nUR                  R                  [        5      (       a  [        US[        -   5      eUR                  S:X  a  [        U5      $ UR                  S:X  a  [        U5      $ UR                  S:X  a  [        U5      $ UR                  S:X  a  [        U5      $ [        [        X!R                  5      5      $ )Nz=names of variables used in JIT-ed functions can't start with TrueFalseNoneEllipsis)r   r   r   r}   r  rC   rD   rr   r-   r   r    r   r0   r   r  s      rG   
build_NameExprBuilder.build_Name  s    NN4;;3tww<9WX77.//#$&67 
 77fq>!WW?"WWq>!WW
"7N5GG$%%rI   c           
         U R                  UR                  UR                  UR                  [        [	        UR
                  5      5      -   5      nUR
                  SL a  [        U5      $ UR
                  SL a  [        U5      $ UR
                  c  [        U5      $ UR
                  [        :X  a  [        U5      $ [        S[	        UR
                  5      -   5      e)NTFz!Name constant value unsupported: )r   r   r   r}   strr  r-   r   r    r!  r   r  r  s      rG   build_NameConstantExprBuilder.build_NameConstant  s    NNKK$//CDJJ<P*P
 ::q>!ZZ5 ?"ZZq>!ZZ8#7N@3tzz?RSSrI   c                 x   [        XR                  5      n[        XR                  5      n[        UR                  5      nU[
        R                  :X  a_  U R                  (       dN  U R                  UR                  5       R                  UR                  5       R                  5      n[        US5      e[        R                  R                  U5      nUc[  U R                  UR                  5       R                  UR                  5       R                  5      n[!        USUR"                  -   5      e[%        XbU5      $ )NzDivision of ints in TorchScript uses Python 3 true division semantics. Please put `from __future__ import division` at the top of your filezunsupported binary operator: )r-  leftrightr|   r  r   r  uses_true_divisionr	  r   r  r  rZ   r  	binop_mapr   rr   rk   r   )r   r=  r  r  r  	err_ranger  s          rG   build_BinOpExprBuilder.build_BinOp  s    ii(jj)$'']=!7!7**399;??CIIK<M<MNI;  ((,,R0**399;??CIIK<M<MNI#:R[[H  XC((rI   c                 z   [        XR                  5      n[        UR                  5      n[        R
                  R                  U5      nUc'  [        UR                  5       SUR                  -   5      eU R                  UR                  UR                  UR                  [        U5      -   5      n[        XTU5      $ )Nzunsupported unary operator: )r-  operandr|   r  r  unop_mapr   rr   r   rk   r   r   r   r}   r/   )r   r=  sub_exprr  r  r*  s         rG   build_UnaryOpExprBuilder.build_UnaryOp  s    c<<0$'']''++B/#

<r{{J  NNKK$//CM*I
 qH--rI   c                 J   [        UR                  5      S:  a*  [        S[        [        UR                  5      5      -   5      eUR                   Vs/ s H  n[	        X5      PM     nn[        UR                  5      n[        R                  R                  U5      nUca  U R                  US   R                  5       R                  US   R                  5       R                  5      n[        USUR                  -   5      eUS   nUSS   H  n[!        XWU5      nM     U$ s  snf )N   z.expected at least 2 values in BoolOp, but got r   r   zunsupported boolean operator: )r}   r  AssertionErrorr%  r-  r|   r  r  
boolop_mapr   r	  r   r  r  rr   rk   r   )	r   r=  r3  	sub_exprsr  r  r-  r  r  s	            rG   build_BoolOpExprBuilder.build_BoolOp  s   t{{a @3s4;;GWCXX  @D{{K{8Z.{	K$'']))--b1**!""$(()A,*<*<*>*D*DI $;bkkI  lQR=Cs+C !
 Ls   D c                     [        [        XR                  5      [        XR                  5      [        XR                  5      5      $ rB   )r,   r-  r  r   r  )r   r=  s     rG   build_IfExpExprBuilder.build_IfExp   s3    sII&sII&sKK(
 	
rI   c                 |   UR                   /[        UR                  5      -    Vs/ s H  n[        X5      PM     nnS n[	        X1R
                  USS  5       H  u  pVn[        U5      n[        R                  R                  U5      n	U R                  UR                  5       R                  UR                  5       R                  5      n
U	c  [        U
SUR                  -   5      eU[         R"                  :X  a  [%        SXW5      n['        U
SU5      nO[%        XU5      nUc  UnM  [%        SXL5      nM     U$ s  snf )Nr   z!unsupported comparison operator: r  r  r  )r)  r   comparatorsr-  zipopsr|   r  	cmpop_mapr   r	  r   r  r  rr   rk   r   NotInr   r/   )r   r=  eoperandsrB  r  op_r  r  r  r*  in_exprcmp_exprs                rG   build_CompareExprBuilder.build_Compare  s   15d4CSCS>T0TU0T1Js&0TU 88Xab\BMCccB",,004H""399;??CIIK4E4EFA':R[[H  SYY  c/"1eW5 4~!uf7) C* / Vs   D9c                 >  ^	^
 S m
S m	U	U
4S jn[        XR                  5      n[        UR                  5      nU[        R
                  L Ga!  [        UR                  R                  [        R                  5      (       a  UR                  R                  R                   Vs/ s H  n[        X5      PM     nnU(       dy  U R                  UR                  UR                  R                  R                  UR                  R                  R                  S-   5      n[        U/ 5      nUR                  U5        [        X65      $ [        U[        XR                  R                  5      /5      $ U[        R                  L a  [        UT
" XUR                  5      /5      $ U[        R                   L a  [        X2" XUR                  5      5      $ ["        R$                  S:  Ga  U[        R                  L a  / nUR                  R                   HV  n[        U[        R                  5      (       a  UR                  T
" XU5      5        M<  UR                  [        X5      5        MX     U(       de  U R                  UR                  UR                  R                  UR                  R                  S-   5      n[        U/ 5      nUR                  U5        [        X65      $ [        U[        XR                  5      /5      $ ['        UR)                  5       S5      es  snf )Nc                    UR                   b  [        XR                   5      OS nUR                  b  [        XR                  5      OS nUR                  b  [        XR                  5      OS n[	        UR                  5       X4U5      $ rB   )lowerr-  upperstepr'   r   )r   r
  
slice_exprrO  rP  rQ  s         rG   build_SliceExpr4ExprBuilder.build_Subscript.<locals>.build_SliceExpr%  s     ##/ 3 0 01  ##/ 3 0 01  ??. 30 
 TZZ\5>>rI   c                     [        UR                  [        R                  5      (       a  [	        UR                  5       S5      e[        XR                  5      $ )Nz9slicing multiple dimensions with tuples not supported yet)r   r  r   r   rr   r   r-  )r   r
  
index_exprs      rG   build_Index0ExprBuilder.build_Subscript.<locals>.build_Index7  sE    ***CII66'JJLO  c#3#344rI   c                   > / nUR                    H  n[        U5      nU[        R                  L a  UR	                  T" XU5      5        M;  U[        R
                  L a  UR	                  T" XU5      5        Mh  U[        R                  L a=  UR                  [        L a*  UR	                  [        UR                  5       5      5        M  [        UR                  5       SU S35      e   U$ )Nz!slicing multiple dimensions with z not supported)dimsr|   r   Indexr   SliceConstantr  r!  r   r   rr   )r   r
  extslicer:  r=  sub_typerW  rS  s         rG   build_ExtSlice3ExprBuilder.build_Subscript.<locals>.build_ExtSlice?  s    I :syy($$[D%AB*$$_S%EF-$**2H$$T$**,%78+

;H:^T  & rI   r7  )r  	   zellipsis is not supported)r-  r  r|   slicer   r[  r   r   eltsr   r   r   r.   r   r+   r\  ExtSlicesysversion_inforr   r   )r   r=  r`  r
  r_  rV  indicesr*  tuprW  rS  s            @@rG   build_SubscriptExprBuilder.build_Subscript#  s`   	?$	5	" #zz*

#syy $****CII66 CG**BRBRBWBWBWJJs/BW    

((33

((33a7A
 'q"-CNN3' // 
3

8H8H(I'JKK"TOCtzz$J#KLL%T>#TZZ#HII "
 
 399$"&**//J!*cii88s*'MNz#'BC	 #2 TZZ%:%:DJJ<Q<QTU<UA 'q"-CNN3' //TJsJJ$?#@AA#DJJL2MNNYs   #Lc           
          [        U R                  UR                  UR                  UR                  S-   5      UR                   Vs/ s H  n[        X5      PM     sn5      $ s  snf Nr   )r   r   r   r   rd  r-  r   r=  rF  s      rG   
build_ListExprBuilder.build_List  sN    NN4;;19LM)-3AZ3
 	
3   A#
c           
          [        U R                  UR                  UR                  UR                  S-   5      UR                   Vs/ s H  n[        X5      PM     sn5      $ s  snf rm  )r.   r   r   r   rd  r-  rn  s      rG   build_TupleExprBuilder.build_Tuple  sN    NN4;;19LM)-3AZ3
 	
3rq  c                    U R                  UR                  UR                  UR                  S-   5      nUR                  (       a   UR                  S   (       d  [	        US5      e[        UUR                   Vs/ s H  n[        X5      PM     snUR                   Vs/ s H  n[        X5      PM     sn5      $ s  snf s  snf )Nr   r   z1Dict expansion (e.g. `{**dict}`) is not supported)r   r   r   keysrr   r   r-  r  )r   r=  r   rF  s       rG   
build_DictExprBuilder.build_Dict  s    t{{DOOT__q=PQ99TYYq\#J  )-3AZ3)-5AZ5
 	
35s   :B;
C c                     [        UR                  5      nU R                  UR                  UR                  UR                  [        U5      -   5      n[        X25      $ rB   )r%  r  r   r   r   r}   r   r   r=  r  r*  s       rG   	build_NumExprBuilder.build_Num  s@    DJJNN4;;3u:9UVQrI   c           
      <   UR                   nUb  [        U[        5      (       a  [        R	                  X5      $ [        U[
        [        [        45      (       a  [        R                  X5      $ [        U[        5      (       a  [        R                  X5      $ [        U[        [        5      5      (       a  [        R                  X5      $ U R                  UR                  UR                   UR                   [#        [        U5      5      -   5      n[%        US5      e)Nz Unknown Constant expression type)r  r   r:  r  r&  intfloatcomplexr{  r%  	build_Strr|   r!  r  r   r   r   r}   rZ   )r   r=  r  error_ranges       rG   build_ConstantExprBuilder.build_Constant  s    

=Jud33 11#<<ec5'233((33s##((33tH~..--c88..T__dooCJ.OK  -OPPrI   c                     [        UR                  5      nU R                  UR                  UR                  UR                  [        U5      -   S-   5      n[        X25      $ rm  )r%  r  r   r   r   r}   r*   rz  s       rG   r  ExprBuilder.build_Str  sK    DJJNNKK$//CJ*F*J
 Q&&rI   c           	         Sn/ nUR                    H  nU R                  UR                  UR                  UR                  S-   5      n[	        U[
        R                  5      (       a`  UR                  S:w  a  [        US5      eUR                  b  [        US5      eUS-  nUR                  [        XR                  5      5        M  [	        U[
        R                  5      (       a  X$R                  -  nM  [        US5      e   U R                  UR                  UR                  UR                  S-   5      n[        [        [!        XR5      [#        US5      5      U/ 5      $ )	Nr{   r   r  z%Don't support conversion in JoinedStrz%Don't support formatting in JoinedStrz{}zUnsupported value in JoinedStrformat)r  r   r   r   r   r   FormattedValue
conversionrr   format_specr   r-  r  r]  r   r&   r*   r   )r   r=  r   r   r  r*  s         rG   build_JoinedStrExprBuilder.build_JoinedStr  s   [[Eu||U-=-=u?O?ORS?STA%!3!344##r)+A/VWW$$0+A/VWWT	JsKK89E3<<00[[ '+KLL ! NN4;;19LMVM!/q(1CDdBOOrI   c                    U R                  UR                  UR                  UR                  5      n[        UR                  5      S:w  a  [        US5      e[        UR                  S   R                  5      S:w  a  [        US5      e[        XR                  5      n[        XR                  S   R                  5      n[        XR                  S   R                  5      n[        X#XE5      $ Nr   z.Only a single generator is currently supportedr   z'Comprehension ifs are not supported yet)r   r   r   r}   
generatorsrr   ifsr-  eltr  r  r   )r   r  r*  elt_exprtarget_expr	iter_exprs         rG   build_ListCompExprBuilder.build_ListComp  s    NN4;;It1$#A'WXXtq!%%&!+#A'PQQc88, ooa&8&?&?@sOOA$6$;$;<	[<<rI   c                 ,    [         R                  X5      $ rB   )r  r  )r   r  s     rG   build_GeneratorExpExprBuilder.build_GeneratorExp  s     ))#44rI   c                    U R                  UR                  UR                  UR                  5      n[        UR                  5      S:w  a  [        US5      e[        UR                  S   R                  5      S:w  a  [        US5      e[        XR                  5      n[        XR                  5      n[        XR                  S   R                  5      n[        XR                  S   R                  5      n[        X#XEU5      $ r  )r   r   r   r}   r  rr   r  r-  keyr  r  r  r   )r   r  r*  key_expr
value_exprr  r  s          rG   build_DictCompExprBuilder.build_DictComp  s    NN4;;It1$#A'WXXtq!%%&!+#A'PQQc88,ZZ0
 ooa&8&?&?@sOOA$6$;$;<	ZiHHrI   c                     U R                  UR                  UR                  UR                  S-   5      n[        U[	        XR
                  5      5      $ rm  )r   r   r   r(   r-  r  r  s      rG   build_StarredExprBuilder.build_Starred  s;    NN4;;19LMq*S**566rI   rp   N)=rk   rl   rm   rn   r   r  r  r  r  r  r  FloorDivr  r  r  r  r  r,  MatMultNotUSubInvertr2  AndOrr9  EqNotEqLtELtGtEGtIsIsNotInrE  rD  r  r  r  r  r"  r&  r.  r4  r;  r>  rK  rj  ro  rs  rw  r{  r  r  r  r  r  r  r  ro   rp   rI   rG   r  r  P  s   #d

C

C		3

D

DI !Ickk 	#

CH 	J 			4		8		8I : :  ) )"   & &$ T T ) )* . .  ( 
 
  4 ^O ^O@ 
 
 
 
 

 

  
 Q Q$ ' ' P P( = = 5 5 I I 7 7rI   r  c                     U R                   S U R                  U5      nU R                  XCS   -   U[        U5      -   US   -   5      $ )Nr   r   )r   rindexr	  r}   )r   possubstrr  new_poss        rG   r  r    sJ    jj#%%f-Gg
2Gc&k4IGTUJ4VWWrI   )NF)NNrB   ))r   r   )r   r   r   rU  r  rf  collectionsr   textwrapr   typingr   r   r_   torch.jit.annotationsr   torch._C._jit_tree_viewsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   torch._jit_internalr4   r5   r6   r7   torch._sourcesr8   r9   r:   r;   r   torch.jit._dataclass_implsr<   torch.jit._monkeytype_configr=   r>   r  ri  ImportErrorrD   rE   setascii_lowercaseascii_uppercasedigits_identifier_charsrH   r   Import
ImportFromGlobalr   r~   updateAsyncFunctionDefAsyncFor	AsyncWithTryNonlocalr   	ExceptionrZ   rr   rw   r   r   r   r   r   r   r   r   r"  r   r
  r8  r,  r;  rv  r  r  r  r   r  r-  r   r   r  rp   rI   rG   <module>r     sf   
   	  
 "     - - - - - - - - - - - -\   ? M ! 	#  )..1G1GG&--WX H
 OO+GG[JJ LL%HHII!JJJJ#NN'JJ"II!LL'   OOUGGUJJLL'HHfIIwJJJJNNFJJIIwLL*    :'.*   kk|j   .
<I 
<	 	,, ,	 	
%
D$GXT?F$! !A&2 1h>Sl,:
g 
 lV' lV^l7' l7^ ]
]
 "Xe%  		s    M; ;NN