U
    ‰d½  ã                   @   sZ   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eƒZG dd„ dej	ƒZ
dS )é    )ÚcontextmanagerNTc                   C   s   da d S )NF©Ú"__allow_nonbracketed_mutation_flag© r   r   ú;/tmp/pip-unpacked-wheel-ua33x9lu/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 5 | a X d S )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   s   || _ || _d S r   )ÚgetterÚsetter)Úselfr   r   r   r   r   Ú__init__   s    zContextProp.__init__c                 C   s   |   ¡ S r   )r   )r   ÚobjZobjtyper   r   r   Ú__get__   s    zContextProp.__get__c                 C   s$   t ƒ s|  |¡ ntd|j ƒ‚d S )Nzbnot allowed to set %s 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 t| ƒ |¡ || _d S r   )Úsuperr   r   Úm)r   r   Úname©Ú	__class__r   r   r   *   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   )   s   r   )Ú
contextlibr   Útypesr   r   r	   r   Úobjectr   Ú
ModuleTyper   r   r   r   r   Ú<module>   s   
	