
    #Ki4                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
Jr   SS\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)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          P/var/www/html/dynamic-report/venv/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_linesr0   &   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_lenr7   r8   	__class__s          r   r6   SourceContext.__init__X   s$     	;O"4  r!   )r   r8   r7   )TN)__name__
__module____qualname____firstlineno__r6   __static_attributes____classcell__)r<   s   @r   r2   r2   W   s      ! !r!   r2   c                      [        U 6 $ r   )r2   )argss    r   make_source_contextrF   g   s    $r!   c                  >    [        SS SS5      R                  SS5      $ )N r   r#   )r2   make_raw_range r!   r   
fake_rangerK   l   s     T1a(771==r!   c                   b    \ rS rSr% \R
                  \S'   \\S'   \\S'   \S-  \S'   \	\S'   Sr
g)		ParsedDefp   astctxr:   Nr   r   rJ   )r>   r?   r@   rA   rO   Module__annotations__r2   strintrB   rJ   r!   r   rM   rM   p   s&    	O	KDjr!   rM   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      $ )NrH   r#   r   z&Expected a single top-level function: :r   T)r   r   
call_stackr0   joinr   rO   parser   body
isinstanceFunctionDefRuntimeErrorr&   rF   r>   rM   )	fnr   r   r   r:   
dedent_srcpy_astr;   rP   s	            r   	parse_defra   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   )rO   	functoolsr   textwrapr   typingr   r   torch._Cr   torch._C._jit_tree_viewsr   rS   tuplelistrT   r   r0   r2   cacherF   rK   rM   ra   rJ   r!   r   <module>rj      s    
    "   7
 !.	.Tz. 49c3:%&.4,+S	 ,+d3i ,+b!& !     >
 Ar!   