
    [ThG                        S SK r S SKrS SKrS SKJr  S SKJrJrJr  S SK	J
r
  S SKJr   SS\S\\   S\\\   \\\   4   4S	 jjrS
\\   S\\   4S jr " S S\5      r\R(                  S 5       rS r " S S\5      rS rg)    N)dedent)Any
NamedTupleOptional)ErrorReport)SourceRangeFactoryobj	error_msgreturnc                     Sn [         R                  " U 5      n[         R                  " U 5      u  p4X4U4$ ! [         a&  nSU  S3nU(       a  USU-   -  n[        U5      UeSnAff = f)zo
Wrapper around inspect.getsourcelines and inspect.getsourcefile.

Returns: (sourcelines, file_lino, filename)
NzCan't get source for zs. TorchScript requires source access in order to carry out compilation, make sure original .py files are available.
)inspectgetsourcefilegetsourcelinesOSError)r	   r
   filenamesourcelinesfile_linenoemsgs          F/var/www/auris/envauris/lib/python3.13/site-packages/torch/_sources.pyget_source_lines_and_filer      s     H"((-#*#9#9##>  X--  "#C5 )  	
 4)##Ccl!"s   .6 
A& !A!!A&r   c                 t   S nSn[        U 5       H-  u  p4UR                  5       R                  S5      (       d  M+  Un  O   Uc  U $ X   nUR                  S5      S   nU SU  Vs/ s H  ovU" Xv5      -   PM     nnXS-   S  Vs/ s H  ovU" Xv5      -   PM     n	nUR	                  U5        X-   $ s  snf s  snf )a   
    This helper function accepts a list of source lines. It finds the
    indentation level of the function definition (`def`), then it indents
    all lines in the function body to a point at or greater than that
    level. This allows for comments and continued string literals that
    are at a lower indentation than the rest of the code.
    Args:
        sourcelines: function source code, separated into lines by
                        the '
' character
    Returns:
        A list of source lines that have been correctly aligned
    c                 L    X R                  U5      =(       a    [        U5      S  $ N)
startswithlen)textprefixs     r   remove_prefix-normalize_source_lines.<locals>.remove_prefix4   s     OOF+;F=>>    Ndefr      )	enumeratelstripr   splitappend)
r   r    idxilfn_def
whitespacesaligned_prefixaligned_suffixs
             r   normalize_source_linesr1   &   s    ? C+&88:  ''C ' { Fe$Q'J <Gt;L;La]111;L   <GQwy;Q;Qa]111;Q  
 &!**s   &B0B5c                   0   ^  \ rS rSr  SU 4S jjrSrU =r$ )SourceContextW   c                 J   > [         TU ]  XX45        XPl        X l        X`l        g r   )super__init__uses_true_divisionr   funcname)selfsourcer   r   leading_whitespace_lenr8   r9   	__class__s          r   r7   SourceContext.__init__X   s$     	;O"4  r"   )r   r9   r8   )TN)__name__
__module____qualname____firstlineno__r7   __static_attributes____classcell__)r=   s   @r   r3   r3   W   s      ! !r"   r3   c                      [        U 6 $ r   )r3   )argss    r   make_source_contextrG   g   s    $r"   c                  >    [        SS SS5      R                  SS5      $ )N r   r$   )r3   make_raw_range r"   r   
fake_rangerL   l   s     T1a(771==r"   c                   b    \ rS rSr% \R
                  \S'   \\S'   \\S'   \	\   \S'   \
\S'   Srg)		ParsedDefp   astctxr;   r   r   rK   N)r?   r@   rA   rB   rP   Module__annotations__r3   strr   intrC   rK   r"   r   rN   rN   p   s&    	O	Ksmr"   rN   c                 0   [        U [        R                  " 5       5      u  pn[        U5      nSR	                  U5      n[        U5      n[        R                  " U5      n[        UR                  5      S:w  d,  [        UR                  S   [        R                  5      (       d  [        SU SU 35      e[        UR                  SS5      S   5      [        UR                  SS5      S   5      -
  n[        XCX'SU R                  5      n[!        XhXCU5      $ )NrI   r$   r   z&Expected a single top-level function: :r   T)r   r   
call_stackr1   joinr   rP   parser   body
isinstanceFunctionDefRuntimeErrorr'   rG   r?   rN   )	fnr   r   r   r;   
dedent_srcpy_astr<   rQ   s	            r   	parse_defrb   x   s    )B
K""$*&Kh )5KWW[!FJYYz"F
6;;1Jv{{1~s$O$O4XJa}M
 	
 !dA!6q!9:Sq!!$>  +tR[[C V&K@@r"   r   )rP   	functoolsr   textwrapr   typingr   r   r   torch._Cr   torch._C._jit_tree_viewsr   rT   tuplelistrU   r   r1   r3   cacherG   rL   rN   rb   rK   r"   r   <module>rk      s    
    , ,   7
  $.	.}. 49c8C=().4,+S	 ,+d3i ,+b!& !     >
 Ar"   