§
    ¯õiž  ã                  ó  — d Z ddlmZ ddlZddlZddlZddlZddlZ ej        dej	        ¦  «        Z
ddddœZ ej        d	¬
¦  «         G d„ d¦  «        ¦   «         Zdd„Zdd„Zdd„Zedk    r eej        dd…         ¦  «         dS dS )aˆ  Translates Mypy's output into GitHub's error/warning annotation syntax.

See: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions

This first is run with Mypy's output piped in, to collect messages in
mypy_annotate.dat. After all platforms run, we run this again, which prints the
messages in GitHub's format but with cross-platform failures deduplicated.
é    )ÚannotationsNa)  
    ([^:]+):  # Filename (anything but ":")
    ([0-9]+):  # Line number (start)
    (?:([0-9]+):  # Optional column number
      (?:([0-9]+):([0-9]+):)?  # then also optionally, 2 more numbers for end columns
    )?
    \s*(error|warn|note):  # Kind, prefixed with space
    (.+)  # Message
    ÚerrorÚwarningÚnotice)r   ÚwarnÚnoteT)Úkw_onlyc                  óf   — e Zd ZU dZded<   ded<   ded<   ded<   dZd	ed
<   dZd	ed<   dZd	ed<   dS )ÚResultz7Accumulated results, used as a dict key to deduplicate.ÚstrÚfilenameÚintÚ
start_lineÚkindÚmessageNz
int | NoneÚ	start_colÚend_lineÚend_col)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r   © ó    úe/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/trio/_tools/mypy_annotate.pyr   r   (   so   € € € € € € àAÐAà€M€M�MØ€O€O�OØ€I€I�IØ€L€L�LØ €IÐ Ð Ð Ñ Ø€HÐÐÐÑØ€GÐÐÐÑÐÐr   r   Úliner   ÚreturnúResult | Nonec           	     ó\  — t                                |                      ¦   «         ¦  «        x}r}|                     ¦   «         \  }}}}}}}t	          |t          |¦  «        |�t          |¦  «        nd |�t          |¦  «        nd |�t          |¦  «        nd t          |         |¬¦  «        S d S )N)r   r   r   r   r   r   r   )Ú	report_reÚ	fullmatchÚrstripÚgroupsr   r   Úmypy_to_github)	r   Úmatchr   Úst_lineÚst_colr   r   r   r   s	            r   Úprocess_liner)   5   s¬   € Ý×#Ò# D§K¢K¡M¤MÑ2Ô2Ð2€uð ØFKÇlÂlÁnÄnÑCˆ�'˜6 8¨W°d¸GÝØÝ˜7‘|”|Ø%+Ð%7•c˜&‘k”k�k¸TØ&.Ð&:•S˜‘]”]�]ÀØ$+Ð$7•C˜‘L”L�L¸TÝ Ô%Øð
ñ 
ô 
ð 	
ð ˆtr   Úresultsúdict[Result, list[str]]ÚNonec                óB  — |                       ¦   «         D �]\  }}t          d|j        › d|j        › d|j        › d�d¬¦  «         |j        ��t          d|j        › d�d¬¦  «         |j        �T|j        �Mt          d	|j        › d
|j        › d�d¬¦  «         d|j        › d|j        › d|j        › d|j        › d|j        › �
}n,d|j        › d|j        › d|j        › �}n|j        › d|j        › �}t          dd 	                    |¦  «        › d|j        › d|› �¦  «         �Œ
dS )zDisplay the collected results.z::z file=z,line=ú,Ú )ÚendNzcol=zendLine=z,endColumn=ú(ú:z - z):ztitle=Mypy-ú+)
ÚitemsÚprintr   r   r   r   r   r   r   Újoin)r*   ÚresÚ	platformsr   s       r   Úexportr9   E   st  € à!Ÿ-š-™/œ/ð Mñ M‰ˆˆYÝÐH�3”8ÐHÐH 3¤<ÐHÐH°s´~ÐHÐHÐHÈbÐQÑQÔQÐQØŒ=Ð$ÝÐ)˜œÐ)Ð)Ð)¨rÐ2Ñ2Ô2Ð2ØŒ{Ð&¨3¬<Ð+CÝÐH ¤ÐHÐH¸#¼+ÐHÐHÐHÈbÐQÑQÔQÐQØl˜cœnÐlÐl¨s¬}ÐlÐlÀÄÐlÐlÐPSÔP[ÐlÐlÐ_bÔ_jÐlÐl��àM˜cœnÐMÐM¨s¬}ÐMÐMÀÄÐMÐM��àœÐ7Ð7¨#¬+Ð7Ð7ˆGÝÐK˜CŸHšH YÑ/Ô/ÐKÐK°3´<ÐKÐKÀ'ÐKÐKÑLÔLÐLÑLðMð Mr   Úargvú	list[str]c                ó.  — t          j        t          ¬¦  «        }|                     ddd¬¦  «         |                     ddd¬	¦  «         |                     | ¦  «        }	 t          |j        d
¦  «        5 }t          j        |¦  «        }ddd¦  «         n# 1 swxY w Y   n# t          t          j
        f$ r i }Y nw xY w|j        €t          |¦  «         dS |j        }t          j        D ]e}t          |¦  «        }|�3	 ||                              |¦  «         n# t"          $ r	 |g||<   Y nw xY wt          j                             |¦  «         Œft          |j        d¦  «        5 }t          j        ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z0Look for error messages, and convert the format.)Údescriptionz
--dumpfilez"File to write pickled messages to.T)ÚhelpÚrequiredz
--platformz.OS name, if set Mypy should be piped to stdin.N)r>   ÚdefaultÚrbÚwb)ÚargparseÚArgumentParserr   Úadd_argumentÚ
parse_argsÚopenÚdumpfileÚpickleÚloadÚFileNotFoundErrorÚUnpicklingErrorÚplatformr9   ÚsysÚstdinr)   ÚappendÚKeyErrorÚstdoutÚwriteÚdump)r:   ÚparserÚcmd_lineÚfr*   rM   r   Úparseds           r   ÚmainrY   U   sK  € åÔ$µÐ9Ñ9Ô9€FØ
×ÒØØ1Øð ñ ô ð ð
 ×ÒØØ=Øð ñ ô ð ð
 × Ò  Ñ&Ô&€HðÝ�(Ô# TÑ*Ô*ð 	%¨aÝ”k !‘n”nˆGð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%øøå�vÔ5Ð6ð ð ð àˆˆˆðøøøð ÔÐ åˆw‰Œˆˆˆà Ô)ˆÝ”Ið 	#ð 	#ˆDÝ! $Ñ'Ô'ˆFØÐ!ð1Ø˜F”O×*Ò*¨8Ñ4Ô4Ð4Ð4øÝð 1ð 1ð 1Ø'/ j�G˜F‘O�O�Oð1øøøåŒJ×Ò˜TÑ"Ô"Ð"Ð"Ý�(Ô# TÑ*Ô*ð 	$¨aÝŒK˜ Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$sZ   Á!B# Á6BÂB# ÂBÂB# ÂBÂB# Â#B>Â=B>Ä DÄD/Ä.D/Å'F
Æ
FÆFÚ__main__é   )r   r   r   r   )r*   r+   r   r,   )r:   r;   r   r,   )r   Ú
__future__r   rC   rI   ÚrerN   ÚattrsÚcompileÚVERBOSEr!   r%   Úfrozenr   r)   r9   rY   r   r:   r   r   r   ú<module>rb      sB  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
à €€€ð ˆBŒJðð „Jñô €	ð ØØðð €ð €„�dÐÑÔð	ð 	ð 	ð 	ð 	ñ 	ô 	ñ Ôð	ðð ð ð ð Mð Mð Mð Mð %$ð %$ð %$ð %$ðP ˆzÒÐØ€DˆŒ�!�"�"ŒÑÔÐÐÐð Ðr   