U
    yh                     @   s@   d dl mZ d dlmZ d dlZdgZG dd dejjjZdS )    )Any)
deprecatedNautocastc                       sp   e Zd ZdZededdejdfeej	ed fddZ
 fdd	Zeeed
 fddZ fddZ  ZS )r   z
    See :class:`torch.autocast`.
    ``torch.cpu.amp.autocast(args...)`` is deprecated. Please use ``torch.amp.autocast("cpu", args...)`` instead.
    zi`torch.cpu.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cpu', args...)` instead.)categoryTenableddtypecache_enabledc                    s8   t j r || _d| _|| _d S t jd|||d d S )Ncpur   )torch_jit_internalis_scriptingZ_enabledZdeviceZ
fast_dtypesuper__init__)selfr   r   r	   	__class__ M/var/www/html/venv/lib/python3.8/site-packages/torch/cpu/amp/autocast_mode.pyr      s    
   zautocast.__init__c                    s   t j r| S t  S N)r   r   r   r   	__enter__)r   r   r   r   r   $   s    
zautocast.__enter__)exc_typeexc_valexc_tbc                    s   t j rd S t |||S r   )r   r   r   r   __exit__)r   r   r   r   r   r   r   r   *   s    
zautocast.__exit__c                    s   t j r|S t |S r   )r   r   r   r   __call__)r   funcr   r   r   r   /   s    
zautocast.__call__)__name__
__module____qualname____doc__r   FutureWarningr   Zbfloat16boolr   r   r   r   r   r   __classcell__r   r   r   r   r   
   s    )	typingr   typing_extensionsr   r   __all__ampZautocast_moder   r   r   r   r   <module>   s   