o
    zi$                     @   s   d dl Z d dlmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ dd	d
ZG dd deZG dd deZG dd deZG dd deZG dd deZdddZe  e  eejj dS )    N)Any)XLAAccelerator)XLAPrecision)_StrategyRegistry)SingleDeviceXLAStrategy)rank_zero_deprecationreturnc                  C   s@   t jt } | t jd< | t jd< | t jd< | t jd< | t jd< d S )Nz&lightning_fabric.strategies.single_tpuz!lightning_fabric.accelerators.tpuz&lightning_fabric.plugins.precision.tpuz+lightning_fabric.plugins.precision.tpu_bf16z*lightning_fabric.plugins.precision.xlabf16)sysmodules__name__)self r   S/home/ubuntu/.local/lib/python3.10/site-packages/lightning_fabric/_graveyard/tpu.py_patch_sys_modules   s   




r   c                       sD   e Zd ZdZdededdf fddZededdfd	d
Z  Z	S )SingleTPUStrategyznLegacy class.

    Use :class:`~lightning_fabric.strategies.single_xla.SingleDeviceXLAStrategy` instead.

    argskwargsr   Nc                       t d t j|i | d S )NzBThe 'single_tpu' strategy is deprecated. Use 'single_xla' instead.r   super__init__r   r   r   	__class__r   r   r   )   s   zSingleTPUStrategy.__init__strategy_registryc                 C   s    d|vr|j d| dd d S d S )N
single_tpuz'Legacy class. Use `single_xla` instead.)description)register)clsr   r   r   r   register_strategies-   s   z%SingleTPUStrategy.register_strategies)
r   
__module____qualname____doc__r   r   classmethodr   r   __classcell__r   r   r   r   r   "   s
    r   c                       .   e Zd ZdZdededdf fddZ  ZS )TPUAcceleratorz`Legacy class.

    Use :class:`~lightning_fabric.accelerators.xla.XLAAccelerator` instead.

    r   r   r   Nc                    r   )NzeThe `TPUAccelerator` class is deprecated. Use `lightning_fabric.accelerators.XLAAccelerator` instead.r   r   r   r   r   r   :   s   zTPUAccelerator.__init__r   r    r!   r"   r   r   r$   r   r   r   r   r&   3       "r&   c                       r%   )TPUPrecisioncLegacy class.

    Use :class:`~lightning_fabric.plugins.precision.xla.XLAPrecision` instead.

    r   r   r   Nc                       t d t jdd d S )NzfThe `TPUPrecision` class is deprecated. Use `lightning_fabric.plugins.precision.XLAPrecision` instead.z32-true	precisionr   r   r   r   r   r   H   s   zTPUPrecision.__init__r'   r   r   r   r   r)   A   r(   r)   c                       r%   )XLABf16Precisionr*   r   r   r   Nc                    r+   )NzjThe `XLABf16Precision` class is deprecated. Use `lightning_fabric.plugins.precision.XLAPrecision` instead.z	bf16-truer,   r   r   r   r   r   r   V   s   zXLABf16Precision.__init__r'   r   r   r   r   r.   O   r(   r.   c                       r%   )TPUBf16Precisionr*   r   r   r   Nc                    r   )NzjThe `TPUBf16Precision` class is deprecated. Use `lightning_fabric.plugins.precision.XLAPrecision` instead.r   r   r   r   r   r   e   s   zTPUBf16Precision.__init__r'   r   r   r   r   r/   ^   r(   r/   c                   C   sz   t tjdt t tjdt t tjdt t tjjdt t tjdt	 t tjjdt	 t tjdt
 t tjjdt
 d S )Nr   r&   r)   r/   r.   )setattrfabric
strategiesr   acceleratorsr&   pluginsr)   r-   r/   r.   r   r   r   r   _patch_classesm   s   r5   )r   N)r	   typingr   lightning_fabricr1   lightning_fabric.acceleratorsr   "lightning_fabric.plugins.precisionr   lightning_fabric.strategiesr   &lightning_fabric.strategies.single_xlar   $lightning_fabric.utilities.rank_zeror   r   r   r&   r)   r.   r/   r5   r   r2   STRATEGY_REGISTRYr   r   r   r   <module>   s$   
	
