a
    þd–  ã                   @   s<   d dl mZmZ d dlmZmZ d dlZG dd„ deƒZdS )é    )ÚABCÚabstractmethod)ÚAnyÚDictNc                   @   s¨   e Zd ZdZeejddœdd„ƒZeddœdd„ƒZe	ee
e
d	œd
d„ƒƒZe	ee
e
d	œdd„ƒƒZe	eedœdd„ƒƒZe	eedœdd„ƒƒZeeddœdd„ƒZdS )ÚAcceleratorz`The Accelerator base class.

    An Accelerator is meant to deal with one type of hardware.
    N)ÚdeviceÚreturnc                 C   s   dS )z6Create and prepare the device for the current process.N© )Úselfr   r	   r	   úr/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/lightning_fabric/accelerators/accelerator.pyÚsetup_device   s    zAccelerator.setup_device)r   c                 C   s   dS )z.Clean up any state created by the accelerator.Nr	   )r
   r	   r	   r   Úteardown   s    zAccelerator.teardown)Údevicesr   c                 C   s   dS )z!Accelerator device parsing logic.Nr	   ©r   r	   r	   r   Úparse_devices"   s    zAccelerator.parse_devicesc                 C   s   dS )z*Gets parallel devices for the Accelerator.Nr	   r   r	   r	   r   Úget_parallel_devices'   s    z Accelerator.get_parallel_devicesc                   C   s   dS )z&Get the device count when set to auto.Nr	   r	   r	   r	   r   Úauto_device_count,   s    zAccelerator.auto_device_countc                   C   s   dS )z$Detect if the hardware is available.Nr	   r	   r	   r	   r   Úis_available1   s    zAccelerator.is_available)Úaccelerator_registryr   c                 C   s   d S )Nr	   )Úclsr   r	   r	   r   Úregister_accelerators6   s    z!Accelerator.register_accelerators)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Útorchr   r   r   Ústaticmethodr   r   r   Úintr   Úboolr   Úclassmethodr   r   r	   r	   r	   r   r      s&   r   )Úabcr   r   Útypingr   r   r   r   r	   r	   r	   r   Ú<module>   s   