o
    8wi                     @   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   \/home/ubuntu/sommelier/.venv/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   :      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      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   r/   zXLABf16Precision.__init__r(   r   r   r   r   r0   O   r)   r0   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   d   r'   zTPUBf16Precision.__init__r(   r   r   r   r   r1   ]   r)   r1   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*   r1   r0   )setattrfabric
strategiesr   acceleratorsr&   pluginsr*   r.   r1   r0   r   r   r   r   _patch_classesk   s   r7   )r   N)r	   typingr   lightning_fabricr3   lightning_fabric.acceleratorsr   "lightning_fabric.plugins.precisionr   lightning_fabric.strategiesr   &lightning_fabric.strategies.single_xlar   $lightning_fabric.utilities.rank_zeror   r   r   r&   r*   r0   r1   r7   r   r4   STRATEGY_REGISTRYr   r   r   r   <module>   s$   
	
