§
    ž²Åjð  ã                   óL  — d dl Z d dlZd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZ 	 ddede	e         de
ee         ee	e         f         fd	„Zd
ee         dee         fd„Z G d„ de¦  «        Z ej        d¬¦  «        d„ ¦   «         Zd„ Z G d„ de¦  «        Zd„ ZdS )é    N)Údedent)ÚAnyÚListÚ
NamedTupleÚOptionalÚTuple)ÚErrorReport)ÚSourceRangeFactoryÚobjÚ	error_msgÚreturnc                 óÎ   — d}	 t          j        | ¦  «        }t          j        | ¦  «        \  }}n2# t          $ r%}d| › d�}|r|d|z   z  }t          |¦  «        |‚d}~ww xY w|||fS )z{
    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          ú?C:\Projects\Historical\venv\Lib\site-packages\torch/_sources.pyÚget_source_lines_and_filer      s¥   € ð €Hð"ÝÔ(¨Ñ-Ô-ˆÝ#*Ô#9¸#Ñ#>Ô#>Ñ ˆ�[�[øÝð "ð "ð "ð Cð ð ð ð 	ð
 ð 	$Ø�4˜)Ñ#Ñ#ˆCÝ�c‰lŒl Ð!øøøøð"øøøð ˜ XÐ-Ð-s   „+0 °
Aº AÁAr   c                 ót  ‡‡— d„ Šd}t          | ¦  «        D ]0\  }}|                     ¦   «                              d¦  «        r|} nŒ1|€| S | |         }|                     d¦  «        d         Šˆˆfd„| d|…         D ¦   «         }ˆˆfd„| |dz   d…         D ¦   «         }|                     |¦  «         ||z   S )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                 óZ   — | |                       |¦  «        ot          |¦  «        d …         S ©N)Ú
startswithÚlen)ÚtextÚprefixs     r   Úremove_prefixz-normalize_source_lines.<locals>.remove_prefix4   s*   € Ø�D—O’O FÑ+Ô+Ð;µ°F±´Ð=Ð=Ô>Ð>ó    NÚdefr   c                 ó.   •— g | ]}‰ ‰|‰¦  «        z   ‘ŒS © r&   ©Ú.0Úsr"   Ú
whitespaces     €€r   ú
<listcomp>z*normalize_source_lines.<locals>.<listcomp>I   ó7   ø€ ð ð ð Ø67ˆ
�]�] 1 jÑ1Ô1Ñ1ðð ð r#   c                 ó.   •— g | ]}‰ ‰|‰¦  «        z   ‘ŒS r&   r&   r'   s     €€r   r+   z*normalize_source_lines.<locals>.<listcomp>L   r,   r#   é   )Ú	enumerateÚlstripr   ÚsplitÚappend)	r   ÚidxÚiÚlÚfn_defÚaligned_prefixÚaligned_suffixr"   r*   s	          @@r   Únormalize_source_linesr9   &   s"  øø€ ð?ð ?ð ?ð €CÝ˜+Ñ&Ô&ð ð ‰ˆˆ1Ø�8Š8‰:Œ:× Ò  Ñ'Ô'ð 	ØˆCØˆEð	ð €{ØÐð ˜Ô€FØ—’˜eÑ$Ô$ QÔ'€Jðð ð ð ð Ø;FÀtÈÀtÔ;Lðñ ô €Nðð ð ð ð Ø;FÀsÈQÁwÀyÀyÔ;Qðñ ô €Nð
 ×Ò˜&Ñ!Ô!Ð!Ø˜NÑ*Ð*r#   c                   ó$   ‡ — e Zd Z	 	 dˆ fd„	Zˆ xZS )ÚSourceContextTNc                 óz   •— t          ¦   «                              ||||¦  «         || _        || _        || _        d S r   )ÚsuperÚ__init__Úuses_true_divisionr   Úfuncname)ÚselfÚsourcer   r   Úleading_whitespace_lenr?   r@   Ú	__class__s          €r   r>   zSourceContext.__init__X   s>   ø€ õ 	‰Œ×Ò˜ ¨;Ð8NÑOÔOÐOØ"4ˆÔØ ˆŒØ ˆŒˆˆr#   )TN)Ú__name__Ú
__module__Ú__qualname__r>   Ú__classcell__)rD   s   @r   r;   r;   W   sE   ø€ € € € € ð  Øð!ð !ð !ð !ð !ð !ð !ð !ð !ð !r#   r;   )Úmaxsizec                  ó   — t          | Ž S r   )r;   )Úargss    r   Úmake_source_contextrL   g   s   € å˜$ÐÐr#   c                  óN   — t          dd dd¦  «                             dd¦  «        S )NÚ r   r.   )r;   Úmake_raw_ranger&   r#   r   Ú
fake_rangerP   l   s&   € Ý˜˜T 1 aÑ(Ô(×7Ò7¸¸1Ñ=Ô=Ð=r#   c                   óX   — e Zd ZU ej        ed<   eed<   eed<   ee         ed<   e	ed<   dS )Ú	ParsedDefÚastÚctxrB   r   r   N)
rE   rF   rG   rS   ÚModuleÚ__annotations__r;   Ústrr   Úintr&   r#   r   rR   rR   p   sN   € € € € € € Ø	Œ€O€O�OØ	ÐÐÑØ€K€K�KØ�sŒmÐÐÑØÐÐÑÐÐr#   rR   c                 ó|  — t          | t          j        ¦   «         ¦  «        \  }}}t          |¦  «        }d                     |¦  «        }t          |¦  «        }t          j        |¦  «        }t          |j	        ¦  «        dk    s%t          |j	        d         t          j        ¦  «        st          d|› d|› �¦  «        ‚t          |                     dd¦  «        d         ¦  «        t          |                     dd¦  «        d         ¦  «        z
  }t          ||||d| j        ¦  «        }t!          |||||¦  «        S )NrN   r.   r   z&Expected a single top-level function: ú:r   T)r   r	   Ú
call_stackr9   Újoinr   rS   Úparser   ÚbodyÚ
isinstanceÚFunctionDefÚRuntimeErrorr1   rL   rE   rR   )	Úfnr   r   r   rB   Ú
dedent_srcÚpy_astrC   rT   s	            r   Ú	parse_defre   x   s6  € Ý)BØ
�KÔ"Ñ$Ô$ñ*ô *Ñ&€K�˜hõ )¨Ñ5Ô5€KØ�WŠW�[Ñ!Ô!€FÝ˜‘”€JÝŒY�zÑ"Ô"€FÝ
ˆ6Œ;ÑÔ˜1ÒÐ¥J¨v¬{¸1¬~½s¼Ñ$OÔ$OÐÝØM°XÐMÐMÀÐMÐMñ
ô 
ð 	
õ ! §¢¨d°AÑ!6Ô!6°qÔ!9Ñ:Ô:½SØ×Ò˜˜qÑ!Ô! !Ô$ñ>ô >ñ Ðõ Ø�˜+Ð'=¸tÀRÄ[ñô €Cõ �V˜S &¨(°KÑ@Ô@Ð@r#   r   )rS   Ú	functoolsr   Útextwrapr   Útypingr   r   r   r   r   Útorch._Cr	   Útorch._C._jit_tree_viewsr
   rW   rX   r   r9   r;   Ú	lru_cacherL   rP   rR   re   r&   r#   r   ú<module>rl      s¬  ðà 
€
€
€
Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à  Ð  Ð  Ð  Ð  Ð  Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð
  $ð.ð .Ø	ð.à˜Œ}ð.ð ˆ4�Œ9�c˜8 Cœ=Ð(Ô)ð.ð .ð .ð .ð4,+¨¨S¬	ð ,+°d¸3´ið ,+ð ,+ð ,+ð ,+ðb!ð !ð !ð !ð !Ð&ñ !ô !ð !ð  €Ô˜TÐ"Ñ"Ô"ð ð  ñ #Ô"ð ð>ð >ð >ðð ð ð ð �
ñ ô ð ðAð Að Að Að Ar#   