o
    h                     @  sv   d dl mZ ddlmZmZ d dlmZmZmZmZm	Z	 dddZ
ed	ZG d
d dee ZG dd dZe ZdS )    )annotations   )backends
DriverBase)AnyCallableGenericTypeVarUnionreturnr   c                  C  s@   dd t  D } t| dkrtt|  d|  d| d  S )Nc                 S  s   g | ]
}|j  r|j qS  )driverZ	is_active).0xr   r   [/home/www/facesmatcher.com/frenv_anti/lib/python3.10/site-packages/triton/runtime/driver.py
<listcomp>	   s    z"_create_driver.<locals>.<listcomp>   z active drivers (z). There should only be one.r   )r   valueslenRuntimeError)Zactive_driversr   r   r   _create_driver   s   
r   Tc                      sZ   e Zd ZdddZddd	ZdddZd fddZdddZdddZdddZ	  Z
S )	LazyProxyinit_fnCallable[[], T]r   Nonec                 C  s   || _ d | _d S N_init_fn_obj)selfr   r   r   r   __init__   s   
zLazyProxy.__init__r   c                 C  s   | j d u r
|  | _ | j S r   )r   r   r    r   r   r   _initialize_obj   s   

zLazyProxy._initialize_objr   c                 C  s   t |  |S r   )getattrr#   r    namer   r   r   __getattr__   s   zLazyProxy.__getattr__r&   strvaluec                   s.   |dv rt  || d S t|  || d S )Nr   )super__setattr__setattrr#   )r    r&   r)   	__class__r   r   r+       s   zLazyProxy.__setattr__c                 C  s   t |  | d S r   )delattrr#   r%   r   r   r   __delattr__&   s   zLazyProxy.__delattr__c                 C  s,   | j d u rd| jj d| j dS t| j S )N<z for z not yet initialized>)r   r.   __name__r   reprr"   r   r   r   __repr__)   s   

zLazyProxy.__repr__c                 C  s   t |  S r   )r(   r#   r"   r   r   r   __str__.      zLazyProxy.__str__)r   r   r   r   )r   r   )r   r   )r&   r(   r)   r   r   r   )r&   r(   r   r   )r   r(   )r2   
__module____qualname__r!   r#   r'   r+   r0   r4   r5   __classcell__r   r   r-   r   r      s    




r   c                   @  s*   e Zd ZdddZdddZdd	d
ZdS )DriverConfigr   r   c                 C  s   t t| _| j| _d S r   )r   r   defaultactiver"   r   r   r   r!   4   s   
zDriverConfig.__init__r   r   c                 C  s
   || _ d S r   )r<   )r    r   r   r   r   
set_active8   s   
zDriverConfig.set_activec                 C  s   | j | _d S r   )r;   r<   r"   r   r   r   reset_active;   r6   zDriverConfig.reset_activeN)r   r   )r   r   r   r   )r2   r7   r8   r!   r=   r>   r   r   r   r   r:   2   s    

r:   N)r   r   )
__future__r   r   r   typingr   r   r   r	   r
   r   r   r   r:   r   r   r   r   r   <module>   s    
 
