
    h                         S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  \	" SSS5      r\" \5      r\ R                   R#                  \5      r\ R                   R)                  \S	5      r " S
 S\5      rS rS rS rS rg)    N)	ASTSourcemake_backend)	GPUTarget)GluonASTSource)ircudad       	FileCheckc                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )
MatchError   c                 0   > [         TU ]  U5        X l        g N)super__init__
module_str)selfmessager   	__class__s      K/var/www/fran/franai/venv/lib/python3.13/site-packages/triton/_filecheck.pyr   MatchError.__init__   s    !$    c                 >   > [         TU ]  5        SU R                   3$ )N
)r   __str__r   )r   r   s    r   r   MatchError.__str__   s!    '/#$Bt&788r   )r   )__name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__)r   s   @r   r   r      s    %9 9r   r   c                    [         R                  " 5        n[        R                  R	                  US5      n[        US5       nUR                  U5        S S S 5        [        R                  R	                  US5      n[        US5       nUR                  U5        S S S 5         [        R                  " [        USU/[        R                  S9   S S S 5        g ! , (       d  f       N= f! , (       d  f       NU= f! [        R                   a+  nUR                  R                  S5      n[        U5      eS nAff = f! , (       d  f       g = f)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_filecheckrA   "   s    		$	$	&'ggll7H5+s#tJJz" $ Wj9-%JJ~& &	&##^]NT_$`+5+<+<> 
'	&## &% ,, 	&ll))*:;GW%%	& 
'	&sY   -D=C4D=	C*D=$+C;
C'	#D=*
C8	4D=;D:&D55D::D==
Ec                    U R                    Vs/ s H  oR                  PM     nn[        [        U5      5       Vs/ s H  nSU 3PM
     nn[	        X$5       VVs0 s H  u  pVXV_M	     nnnU R                  5       (       a  [        O[        nU" XS9n	[        R                  " 5       n
[        R                  " U
5        [        R                  U
5        U	R                  5       n[        R                  [        S0 UD65      n[        R                  U5      n[        R                  5       nU	R!                  XX5      nUR#                  5       (       d   eU$ s  snf s  snf s  snnf )Narg)fn	signature )paramsr9   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vrE   
source_clssrcrL   extra_optionsoptionscodegen_fns
module_mapr%   s                   r   
run_parserrb   4   s   (//0/!vv/G0"'G"56"5QQCy"5G6$'$9:$9&1$9I:#,#5#5#7#7YJ
	
7CjjlGWw'%%'M(()>)>?G99'BK,,.J[[zCF==???M! 16:s   EEEc                    [        U [        R                  R                  5      (       d   e[        R
                  " U R                  5      nUc  [        S5      e[        U 5      n[        SUR                  5       U5        g )Nz=kernel function must have a docstring with FileCheck templateplaceholder)
isinstancetritonruntimeJITFunctioninspect	getsourcerD   r8   rb   rA   str_nodebug)rU   r:   mlir_modules      r   run_filecheck_testrm   H   sd    i!;!;<<<<&&y||4NXYYY'K-!8!8!:NKr   c                    ^  U 4S jnU$ )Nc                     > [        T 5        g r   )rm   )rD   s   r   test_fnfilecheck_test.<locals>.test_fnT   s    2r   rF   )rD   rp   s   ` r   filecheck_testrr   R   s     Nr   )r,   ri   r1   r*   rf   triton.compilerr   r   triton.backends.compilerr   "triton.experimental.gluon._runtimer   triton._C.libtritonr   stub_targetrN   r-   dirname__file__
triton_dirr.   r3   r8   r   rA   rb   rm   rr   rF   r   r   <module>r{      s    	     3 . = " R(K(WW__X&
j+69 9&$(Lr   