
    XhL                     r   U d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dl	m
Z
 ddlmZ ddlmZ ej        dk    rd d	lmZ nd d	lmZ  ed
eeef                   Zde
dee         dee         fdZ ed           G d d                      Zdeeef         fdZ e            Zeeef         ed<   dS )    N)	dataclass)TypeTypeVarUnion)
ModuleType   )
DriverBase)BaseBackend)   
   )entry_pointsT)boundmodule
base_classreturnc                    g }t          |           D ]`}t          | |          }t          |t                    r9t	          ||          r)t          j        |          s|                    |           at          |          dk    rt          d| d|  d|           t          |          dk    rt          d| d|  d|           |d         S )Nr   zFound 0 concrete subclasses of z in z: r   z Found >1 concrete subclasses of )
dirgetattr
isinstancetype
issubclassinspect
isabstractappendlenRuntimeError)r   r   ret	attr_nameattrs        j/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/triton/backends/__init__.py_find_concrete_subclassesr"      s    C[[  	vy))dD!! 	jz&B&B 	7K]^bKcKc 	JJt
3xx1}}\Z\\V\\WZ\\]]]
3xx!||]j]]f]]X[]]^^^q6M    T)frozenc                   <    e Zd ZU ee         ed<   ee         ed<   dS )BackendcompilerdriverN)__name__
__module____qualname__r   r
   __annotations__r	    r#   r!   r&   r&      s4         ;r#   r&   c                  X   t                      } t                                          d          D ]x}t          j        |j         d          }t          j        |j         d          }t          t          |t                    t          |t                              | |j
        <   y| S )Nztriton.backends)groupz	.compilerz.driver)dictr   select	importlibimport_modulevaluer&   r"   r
   r	   name)backendsepr'   r(   s       r!   _discover_backendsr8   %   s    vvHnn##*;#<< S S*bh+A+A+ABB(BH)=)=)=>>#$=h$T$T$=fj$Q$QS SOr#   r6   )r2   r   sysdataclassesr   typingr   r   r   typesr   r(   r	   r'   r
   version_infoimportlib.metadatar   importlib_metadatar   r"   r&   r0   strr8   r6   r,   r-   r#   r!   <module>rA      s         



 ! ! ! ! ! ! ' ' ' ' ' ' ' ' ' '             ! ! ! ! ! !w/////////////GCu[*45666
j 
d1g 
$q' 
 
 
 
 $       
Dg.      2133$sG|
 3 3 3 3 3r#   