ó
    Eñi4  ã                   ó  • 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          ÚK/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_sources.pyÚget_source_lines_and_filer      s†   € ð €Hð"Ü×(Ò(¨Ó-ˆÜ#*×#9Ò#9¸#Ó#>Ñ ˆð  XÐ-Ð-øô ó "à# C 5ð )ð ð 	ö
 Ø�4˜)Ñ#Ñ#ˆCÜ�c‹l Ð!ûð"ú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    € Ø—O‘O FÓ+×;´°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Ü˜+Ö&‰ˆØ�8‰8‹:× Ñ  ×'Ó'ØˆCÙñ 'ð �{ØÐð Ñ€FØ—‘˜eÓ$ QÑ'€Jð <GÀtÈÑ;LóÚ;L°a‘] 1Ó1Ô1Ñ;Lð ð ð <GÈQÁwÀyÑ;QóÚ;Q°a‘] 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$ )ÚSourceContextéW   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    € Ü˜˜T 1 aÓ(×7Ñ7¸¸1Ó=Ð=r!   c                   ób   • \ rS rSr% \R
                  \S'   \\S'   \\S'   \S-  \S'   \	\S'   Sr
g)	Ú	ParsedDefép   ÚastÚctxr:   Nr   r   rJ   )r>   r?   r@   rA   rO   ÚModuleÚ__annotations__r2   ÚstrÚintrB   rJ   r!   r   rM   rM   p   s&   ‡ Ø	�‰ƒOØ	ÓØƒKØ�D‰jÓØÖ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×"Ò"Ó$ó*Ñ&€K˜hô )¨Ó5€KØ�W‰W�[Ó!€FÜ˜“€JÜ�YŠY�zÓ"€FÜ
ˆ6�;‰;Ó˜1Ó¤J¨v¯{©{¸1©~¼s¿¹×$OÑ$OÜØ4°X°J¸aÀ¸}ÐMó
ð 	
ô ! §¡¨d°AÓ!6°qÑ!9Ó:¼SØ×Ñ˜˜qÓ! !Ñ$ó>ñ Ðô Ø˜+¸tÀRÇ[Á[ó€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ð
 !ñ.Ø	ð.à�T‰zð.ð ˆ4�‰9�c˜3 ™:Ð%Ñ&õ.ð4,+¨¨S©	ð ,+°d¸3±iô ,+ôb!Ð&ô !ð  ‡�ñ ó ð ò>ô�
ô óAr!   