Ë
    ÖéñiA  ã                   ó,  — d dl Z 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 d dlmZ  e
ddd	«      Zej$                  j'                  e«      Zej$                  j-                  ed
«      Z G d„ de«      Zd„ Zdi efd„Zd„ Zd„ Zy)é    N)Ú	ASTSourceÚmake_backend)Ú	GPUTarget)ÚGluonASTSource)Úcreate_function_from_signature)Ú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      €úS/var/www/pod-logistic/pod-ai/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|dgt        j                  ¬«       	 d d d «       y # 1 sw Y   ŒˆxY w# 1 sw Y   ŒNx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-filez--dump-input-context=50)Ú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�~Ô&÷	'ð	&Ü×#Ñ#Ü °ÀÐMfÐgÜ!×(Ñ(ö*÷&ð &÷	#ð 	#ú÷	'ð 	'ûô ×,Ñ,ò 	&Ø—l‘l×)Ñ)Ð*:Ó;ˆGÜ˜WÓ%Ð%ûð	&ú÷&ð &úsY   •-D4ÁCÁ4D4ÂC'ÂD4Â#.C3ÃC$	Ã D4Ã'C0	Ã,D4Ã3D1Ä&D,Ä,D1Ä1D4Ä4D=© c                 ó   — d|vrt        |«      }d|d<   t        |«      }t        | j                  | j                  |«      } ||i |¤Ž\  }}}| j                  |||||«      \  }}	}
}| j                  «       rt        nt        } || |	|
|«      }t        j                  «       }t        j                  |«       |j                  |«       |j                  |«      }|j                  «       }|j                  |||||«      }|S )NÚsanitize_overflowF)Údictr   r   Ú	signatureÚparamsÚ
_pack_argsÚis_gluonr   r   r   ÚcontextÚload_dialectsÚget_codegen_implementationÚget_module_mapÚmake_ir)Ú	kernel_fnÚargsÚkwargsÚtargetÚbackendÚbinderÚ
bound_argsÚspecializationÚoptionsrB   Ú
constexprsÚattrsÚ
source_clsÚsrcrF   Úcodegen_fnsÚ
module_mapr!   s                     r   Ú
run_parserrZ   6   s  € Ø &Ñ(Ü�f“ˆØ&+ˆÐ"Ñ#Ü˜6Ó"€GÜ+Ø×ÑØ×ÑØó€Fñ +1°$Ð*A¸&Ñ*AÑ'€J� Ø,5×,@Ñ,@ÀÈ&ÐR\Ð^lÐnuÓ,vÑ)€GˆY˜
 EØ#,×#5Ñ#5Ô#7•¼Y€JÙ
�Y 	¨:°uÓ
=€Cä�j‰j‹l€GÜ×Ñ�WÔØ×Ñ˜'Ô"à×4Ñ4°WÓ=€KØ×'Ñ'Ó)€JØ�[‰[˜ ¨+°zÀ7ÓK€FØ€Mr   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Ú	getsourceÚfnr4   rZ   r=   Ústr_nodebug)rK   r6   Úmlir_modules      r   Úrun_filecheck_testrf   P   sa   € Ü�i¤§¡×!;Ñ!;Ô<Ð<Ð<Ü×&Ñ& y§|¡|Ó4€NØÐÜÐXÓYÐYÜ˜YÓ'€Kä�- ×!8Ñ!8Ó!:¸NÕKr   c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc                  ó   •— t        ‰ «       y r   )rf   )rc   s   €r   Útest_fnzfilecheck_test.<locals>.test_fn\   s   ø€ ä˜2Õr   )Ú	functoolsÚwraps)rc   ri   s   ` r   Úfilecheck_testrl   Z   s%   ø€ ä‡_�_�RÓóó ðð €Nr   )rj   r(   ra   r-   r&   r^   Útriton.compilerr   r   Útriton.backends.compilerr   Ú"triton.experimental.gluon._runtimer   Útriton.runtime.jitr   Útriton._C.libtritonr   Ústub_targetr)   ÚdirnameÚ__file__Ú
triton_dirr*   r/   r4   r   r=   rZ   rf   rl   r>   r   r   ú<module>rv      s†   ðÛ Û 	Û Û Û ã ß 3Ý .Ý =Ý =Ý "ñ ˜  RÓ(€à�W‰W�_‰_˜XÓ&€
Ø—‘—‘˜j¨+Ó6€ô9�ô 9ò&ð&  "¨"°[ó ò4Lór   