
    &Th;                         S SK r S SKrS SKrS SKJr  SSKJr  SSKJ	r	  S r
S r\" SS	9 " S
 S5      5       rS r\" 5       rg)    N)	dataclass   )
DriverBase)BaseBackendc                     [         R                  R                  X5      n[         R                  R                  U5      nUR                  R                  U5        U$ )N)	importlibutilspec_from_file_locationmodule_from_specloaderexec_module)namepathspecmodules       P/var/www/auris/envauris/lib/python3.13/site-packages/triton/backends/__init__.py_load_moduler   	   sA    >>11$=D^^,,T2FKKF#M    c                    / n[        U 5       He  n[        X5      n[        U[        5      (       d  M%  [	        XA5      (       d  M7  [
        R                  " U5      (       a  MT  UR                  U5        Mg     [        U5      S:X  a  [        SU SU  SU 35      e[        U5      S:  a  [        SU SU  SU 35      eU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   
base_classret	attr_nameattrs        r   _find_concrete_subclassesr$      s    
C[	v)dD!!j&B&B7K]K]^bKcKcJJt ! 3x1}<ZLVHTVWZV[\]]
3x!|=j\fXUWX[W\]^^q6Mr   T)frozenc                   2    \ rS rSr% Sr\\S'   Sr\\S'   Sr	g)Backend   Ncompilerdriver )
__name__
__module____qualname____firstlineno__r)   r   __annotations__r*   r   __static_attributes__r+   r   r   r'   r'      s     Hk FJr   r'   c            	      L   [        5       n [        R                  R                  [        5      n[        R
                  " U5       H  n[        R                  R                  [        R                  R                  X5      5      (       d  MF  UR                  S5      (       a  M^  [        U[        R                  R                  XS5      5      n[        U[        R                  R                  XS5      5      n[        [        U[        5      [        U[        5      5      X'   M     U $ )N__zcompiler.pyz	driver.py)dictosr   dirname__file__listdirisdirjoin
startswithr   r'   r$   r   r   )backendsrootr   r)   r*   s        r   _discover_backendsr>   #   s    vH77??8$D

4 ww}}RWW\\$566??4  bggll4}&MNdBGGLL[$IJ !:8[!Q!:6:!NP ! Or   )r5   importlib.utilr   r   dataclassesr   r*   r   r)   r   r   r$   r'   r>   r<   r+   r   r   <module>rA      sN    	   !  !
 $  
 r   