Ë
    ÍÍ:j  ã                   ó   — d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZ  e	ddd«      Z ee«      Ze j                   j#                  e«      Ze j                   j)                  ed	«      Z G d
„ de«      Zd„ Zd„ Zd„ Zd„ Zy)é    N)Ú	ASTSourceÚmake_backend)Ú	GPUTarget)ÚGluonASTSource)ÚirÚcudaéd   é    Ú	FileCheckc                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )Ú
MatchErrorc                 ó2   •— t         ‰| �  |«       || _        y ©N)ÚsuperÚ__init__Ú
module_str)ÚselfÚmessager   Ú	__class__s      €úf/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/triton/_filecheck.pyr   zMatchError.__init__   s   ø€ Ü‰Ñ˜Ô!Ø$ˆ�ó    c                 ó>   •— t         ‰| �  «       › d| j                  › �S )Nú
)r   Ú__str__r   )r   r   s    €r   r   zMatchError.__str__   s!   ø€ Ü‘'‘/Ó#Ð$ B t§¡Ð&7Ð8Ð8r   )Ú__name__Ú
__module__Ú__qualname__r   r   Ú__classcell__)r   s   @r   r   r      s   ø„ ô%÷9ð 9r   r   c                 ó~  — t        j                  «       5 }t        j                  j	                  |d«      }t        |d«      5 }|j                  |«       d d d «       t        j                  j	                  |d«      }t        |d«      5 }|j                  |«       d d d «       	 t        j                  t        |d|gt        j                  ¬«       	 d d d «       y # 1 sw Y   Œ‡xY w# 1 sw Y   ŒMxY w# t        j                  $ r+}|j                  j                  d«      }t        |«      ‚d }~ww xY w# 1 sw Y   y xY w)NÚmoduleÚwÚexpectedz--input-file)ÚstderrÚunicode_escape)ÚtempfileÚTemporaryDirectoryÚosÚpathÚjoinÚopenÚwriteÚ
subprocessÚcheck_outputÚfilecheck_pathÚSTDOUTÚCalledProcessErrorÚoutputÚdecodeÚ
ValueError)	Únamer   Úcheck_templateÚtempdirÚtemp_moduleÚtempÚtemp_expectedÚerrorÚdecodeds	            r   Úrun_filecheckr<   "   s  € Ü	×	$Ñ	$Ó	&ð &¨'Ü—g‘g—l‘l 7¨HÓ5ˆÜ�+˜sÓ#ð 	# tØ�J‰J�zÔ"÷	#ô Ÿ™Ÿ™ W¨jÓ9ˆÜ�- Ó%ð 	'¨Ø�J‰J�~Ô&÷	'ð	&Ü×#Ñ#¤^°]ÀNÐT_Ð$`Ü+5×+<Ñ+<ö>÷&ð &÷	#ð 	#ú÷	'ð 	'ûô ×,Ñ,ò 	&Ø—l‘l×)Ñ)Ð*:Ó;ˆGÜ˜WÓ%Ð%ûð	&ú÷&ð &úsY   •-D3ÁCÁ4D3ÂC&ÂD3Â#-C2ÃC#	ÃD3Ã&C/	Ã+D3Ã2D0Ä&D+Ä+D0Ä0D3Ä3D<c                 ó´  — | j                   D �cg c]  }|j                  ‘Œ }}t        t        |«      «      D �cg c]  }d|› �‘Œ	 }}t	        ||«      D ��ci c]  \  }}||“Œ
 }}}| j                  «       rt        nt        } || |¬«      }	t        j                  «       }
t        j                  |
«       t        j                  |
«       |	j                  «       }t        j                  t        di |¤Ž«      }t        j                  |«      }t        j                  «       }|	j!                  ||||
«      }|j#                  «       sJ ‚|S c c}w c c}w c c}}w )NÚarg)ÚfnÚ	signature© )Úparamsr4   ÚrangeÚlenÚzipÚis_gluonr   r   r   ÚcontextÚload_dialectsÚstub_backendÚparse_optionsÚdictÚget_codegen_implementationÚget_module_mapÚmake_irÚverify)Ú	kernel_fnÚxÚsigkeysÚiÚsigvalsÚkÚvr@   Ú
source_clsÚsrcrG   Úextra_optionsÚoptionsÚcodegen_fnsÚ
module_mapr    s                   r   Ú
run_parserr]   4   s  € Ø(×/Ñ/Ö0˜!ˆq�v‹vÐ0€GÐ0Ü"'¬¨G«Ó"5Ö6˜Q��Q�CŠyÐ6€GÐ6Ü$'¨°Ó$9×:™&˜1˜a��A‘Ð:€IÑ:Ø#,×#5Ñ#5Ô#7•¼Y€JÙ
˜	¨YÔ
7€Cä�j‰j‹l€GÜ×Ñ�WÔÜ×Ñ˜wÔ'à×%Ñ%Ó'€MÜ×(Ñ(¬Ñ)>°Ñ)>Ó?€GÜ×9Ñ9¸'ÓB€KÜ×,Ñ,Ó.€JØ�[‰[˜ +¨z¸7ÓC€FØ�=‰=Œ?Ðˆ?Ø€Mùò! 1ùÚ6ùÛ:s   �E
ºEÁEc                 óô   — t        | t        j                  j                  «      sJ ‚t	        j
                  | j                  «      }|€t        d«      ‚t        | «      }t        d|j                  «       |«       y )Nz=kernel function must have a docstring with FileCheck templateÚplaceholder)Ú
isinstanceÚtritonÚruntimeÚJITFunctionÚinspectÚ	getsourcer?   r3   r]   r<   Ústr_nodebug)rP   r5   Úmlir_modules      r   Úrun_filecheck_testrh   H   sa   € Ü�i¤§¡×!;Ñ!;Ô<Ð<Ð<Ü×&Ñ& y§|¡|Ó4€NØÐÜÐXÓYÐYÜ˜YÓ'€Kä�- ×!8Ñ!8Ó!:¸NÕKr   c                 ó   ‡ — ˆ fd„}|S )Nc                  ó   •— t        ‰ «       y r   )rh   )r?   s   €r   Útest_fnzfilecheck_test.<locals>.test_fnT   s   ø€ Ü˜2Õr   rA   )r?   rk   s   ` r   Úfilecheck_testrl   R   s   ø€ ôð €Nr   )r'   rd   r,   r%   ra   Útriton.compilerr   r   Útriton.backends.compilerr   Ú"triton.experimental.gluon._runtimer   Útriton._C.libtritonr   Ústub_targetrI   r(   ÚdirnameÚ__file__Ú
triton_dirr)   r.   r3   r   r<   r]   rh   rl   rA   r   r   ú<module>ru      s�   ðÛ 	Û Û Û ã ß 3Ý .Ý =Ý "ñ ˜  RÓ(€Ù˜KÓ(€à�W‰W�_‰_˜XÓ&€
Ø—‘—‘˜j¨+Ó6€ô9�ô 9ò&ò$ò(Lór   