o
    e«Ïi  ã                   @   s  d dl Z d dlZd dlmZ d dlZdadd„ Zdd„ Zedd	„ ƒZG d
d„ dƒZ	G dd„ dej
ƒZG dd„ dƒZddd„Zeddd„ƒZdd„ Zdd„ ZG dd„ deƒZee je eƒe je< d dlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" dS )é    N)ÚcontextmanagerTc                   C   s   da d S )NF©Ú"__allow_nonbracketed_mutation_flag© r   r   úa/var/www/addictedbytheproject.nl/epg/venv/lib/python3.10/site-packages/torch/backends/__init__.pyÚdisable_global_flags   s   r   c                   C   s   t  S ©Nr   r   r   r   r   Úflags_frozen   s   r	   c                  c   s"    t } da zd V  W | a d S | a w )NTr   )Úoldr   r   r   Ú__allow_nonbracketed_mutation   s   €r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚContextPropc                 C   ó   || _ || _d S r   )ÚgetterÚsetter)Úselfr   r   r   r   r   Ú__init__%   ó   
zContextProp.__init__c                 C   s   |   ¡ S r   )r   )r   ÚobjÚobjtyper   r   r   Ú__get__)   s   zContextProp.__get__c                 C   s&   t ƒ s
|  |¡ d S td|j› dƒ‚)Nznot allowed to set zM flags after disable_global_flags; please use flags() context manager instead)r	   r   ÚRuntimeErrorÚ__name__)r   r   Úvalr   r   r   Ú__set__,   s
   ÿzContextProp.__set__N)r   Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   $   s    r   c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )Ú
PropModulec                    s   t ƒ  |¡ || _d S r   )Úsuperr   Úm)r   r   Úname©Ú	__class__r   r   r   7   s   
zPropModule.__init__c                 C   s   | j  |¡S r   )r   Ú__getattribute__)r   Úattrr   r   r   Ú__getattr__;   s   zPropModule.__getattr__)r   r   r   r   r$   Ú__classcell__r   r   r    r   r   6   s    r   c                       s,   e Zd Zdd„ Z‡ fdd„Zdd„ Z‡  ZS )Ú_FP32Precisionc                 C   r   r   ©ÚbackendÚop)r   r(   r)   r   r   r   r   @   r   z_FP32Precision.__init__c                    sF   |dkrt j | j| j|¡ d S |dv rtƒ  ||¡ d S td| ƒ‚)NÚfp32_precisionr'   úUnknown attribute )ÚtorchÚ_CÚ_set_fp32_precision_setterr(   r)   r   Ú__setattr__ÚAttributeError)r   r   Úvaluer    r   r   r/   D   s
   z_FP32Precision.__setattr__c                 C   s&   |dkrt j | j| j¡S td| ƒ‚)Nr*   r+   )r,   r-   Ú_get_fp32_precision_getterr(   r)   r0   )r   r   r   r   r   r$   L   s   z_FP32Precision.__getattr__)r   r   r   r   r/   r$   r%   r   r   r    r   r&   ?   s    r&   Únonec                 C   s,   t j dd¡f}| d urt j dd| ¡ |S )NÚgenericÚall)r,   r-   r2   r.   )Ú_fp32_precisionÚ
orig_flagsr   r   r   Ú	set_flagsS   s   r8   c                 c   sž    t ƒ  t| ƒ}W d   ƒ n1 sw   Y  zd V  W t ƒ  t|Ž  W d   ƒ d S 1 s0w   Y  d S t ƒ  t|Ž  W d   ƒ w 1 sIw   Y  w r   )r   r8   )r*   r7   r   r   r   ÚflagsZ   s   €
ÿ
*ÿ
ÿr9   c                    ó   ‡ ‡fdd„}|S )Nc                      s   t j ˆ ˆ¡S r   )r,   r-   r2   r   r'   r   r   Úinnerf   s   z)_get_fp32_precision_getter.<locals>.innerr   ©r(   r)   r;   r   r'   r   r2   e   ó   r2   c                    r:   )Nc                    s   t j ˆ ˆ| ¡S r   )r,   r-   r.   )Ú	precisionr'   r   r   r;   m   s   z)_set_fp32_precision_setter.<locals>.innerr   r<   r   r'   r   r.   l   r=   r.   c                   @   s"   e Zd ZeeddƒeddƒƒZdS )ÚGenericModuler4   r5   N)r   r   r   r   r2   r.   r*   r   r   r   r   r?   s   s
    þr?   )ÚcpuÚcudaÚcudnnÚ
cusparseltÚkleidiaiÚmhaÚmiopenÚmklÚmkldnnÚmpsÚnnpackÚopenmpÚ
opt_einsumÚ	quantized)r3   )#ÚsysÚtypesÚ
contextlibr   r,   r   r   r	   r   r   Ú
ModuleTyper   r&   r8   r9   r2   r.   r?   Úmodulesr   Útorch.backendsr@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   r   r   r   r   Ú<module>   s(   

	

D