Ë
    _§1h²  ã                  ó  — 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 «       yy)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                  ód   — 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<   y)Ú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   © ó    úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_tools/mypy_annotate.pyr   r   (   s7   … áAàƒMØƒOØ
ƒIØƒLØ €IˆzÓ Ø€HˆjÓØ€GˆZÔr   r   c           	     ó  — t         j                  | j                  «       «      x}ra|j                  «       \  }}}}}}}t	        |t        |«      |�t        |«      nd |�t        |«      nd |�t        |«      nd t        |   |¬«      S y )N)r   r   r   r   r   r   r   )Ú	report_reÚ	fullmatchÚrstripÚgroupsr   r   Úmypy_to_github)	ÚlineÚmatchr   Úst_lineÚst_colr   r   r   r   s	            r   Úprocess_liner'   5   s‰   € Ü×#Ñ# D§K¡K£MÓ2Ð2€uÐ2ØFKÇlÁlÃnÑCˆ�'˜6 8¨W°d¸GÜØÜ˜7“|Ø%+Ð%7”c˜&”k¸TØ&.Ð&:”S˜”]ÀØ$+Ð$7”C˜”L¸TÜ Ñ%Øô
ð 	
ð r   c                óÜ  — | j                  «       D �]X  \  }}t        d|j                  › d|j                  › d|j                  › d�d¬«       |j
                  �Ét        d|j
                  › d�d¬«       |j                  �x|j                  �lt        d	|j                  › d
|j                  › d�d¬«       d|j                  › d|j
                  › d|j                  › d|j                  › d|j                  › �
}nEd|j                  › d|j
                  › d|j                  › �}n|j                  › d|j                  › �}t        ddj                  |«      › d|j                  › d|› �«       �Œ[ y)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)ÚresultsÚresÚ	platformsr   s       r   Úexportr5   E   sF  € à!Ÿ-™-›/ó M‰ˆˆYÜ��3—8‘8�*˜F 3§<¡< .°°s·~±~Ð6FÀaÐHÈbÕQØ�=‰=Ð$Ü�D˜Ÿ™˜ qÐ)¨rÕ2Ø�{‰{Ð&¨3¯<©<Ð+CÜ˜ §¡ ¨k¸#¿+¹+¸ÀaÐHÈbÕQØ˜cŸn™nÐ-¨Q¨s¯}©}¨o¸SÀÇÁÀÈaÐPS×P[ÑP[È}Ð\^Ð_b×_jÑ_jÐ^kÐl‘à˜cŸn™nÐ-¨Q¨s¯}©}¨o¸RÀÇÁ¸}ÐM‘àŸ™Ð(¨¨#¯+©+¨Ð7ˆGÜ�˜CŸH™H YÓ/Ð0°°3·<±<°.ÀÀ'ÀÐKÖLñMr   c                ó  — t        j                  t        ¬«      }|j                  ddd¬«       |j                  ddd¬	«       |j	                  | «      }	 t        |j                  d
«      5 }t        j                  |«      }ddd«       |j                  €t        «       y|j                  }t        j                  D ]C  }t        |«      }|�	 |   j!                  |«       t        j$                  j'                  |«       ŒE t        |j                  d«      5 }t        j(                  |«       ddd«       y# 1 sw Y   Œ¹xY w# t        t        j                  f$ r i }Y ŒÙw xY w# t"        $ r	 |g|<   Y Œ•w xY w# 1 sw Y   yxY w)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)r8   ÚdefaultÚrbÚwb)ÚargparseÚArgumentParserr   Úadd_argumentÚ
parse_argsÚopenÚdumpfileÚpickleÚloadÚFileNotFoundErrorÚUnpicklingErrorÚplatformr5   ÚsysÚstdinr'   ÚappendÚKeyErrorÚstdoutÚwriteÚdump)ÚargvÚparserÚcmd_lineÚfr2   rG   r#   Úparseds           r   ÚmainrT   U   sz  € ä×$Ñ$´Ô9€FØ
×ÑØØ1Øð ô ð
 ×ÑØØ=Øð ô ð
 × Ñ  Ó&€HðÜ�(×#Ñ# TÓ*ð 	%¨aÜ—k‘k !“nˆG÷	%ð ×ÑÐ äˆw�à ×)Ñ)ˆÜ—I‘Iò 	#ˆDÜ! $Ó'ˆFØÐ!ð1Ø˜F‘O×*Ñ*¨8Ô4ô �J‰J×Ñ˜TÕ"ð	#ô �(×#Ñ# TÓ*ð 	$¨aÜ�K‰K˜ Ô#÷	$ð 	$÷'	%ð 	%ûäœv×5Ñ5Ð6ò àŠðûô  ò 1Ø'/ j�G˜F“Oð1ú÷	$ð 	$úsH   ÁE Á+D9ÂE ÃE&ÄE;Ä9EÄ>E ÅE#Å"E#Å&E8Å7E8Å;FÚ__main__é   )r#   r   ÚreturnzResult | None)r2   zdict[Result, list[str]]rW   ÚNone)rO   z	list[str]rW   rX   )r   Ú
__future__r   r=   rC   ÚrerH   ÚattrsÚcompileÚVERBOSEr   r"   Úfrozenr   r'   r5   rT   r   rO   r   r   r   ú<module>r_      s¦   ðñõ #ã Û Û 	Û 
ã ð ˆB�J‰Jðð ‡J�Jó€	ð ØØñ€ð €‡��dÔ÷	ð 	ó ð	óó Mó %$ðP ˆzÒÙˆ�‰�!�"ˆÕð r   