
      i                     D   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lmZ d dlmZ ddZ G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      ZddZ e         e        ej-                  ej.                  j0                         y)    N)Any)XLAAccelerator)XLAPrecision)_StrategyRegistry)SingleDeviceXLAStrategy)rank_zero_deprecationc                      t         j                  t           } | t         j                  d<   | t         j                  d<   | t         j                  d<   | t         j                  d<   | t         j                  d<   y )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__)selfs    t/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/lightning/fabric/_graveyard/tpu.py_patch_sys_modulesr      s[    ;;x D<@CKK897;CKK34<@CKK89AECKK=>@DCKK<=    c                   J     e Zd ZdZdededdf fdZededdfd       Z xZ	S )	SingleTPUStrategyznLegacy class.

    Use :class:`~lightning.fabric.strategies.single_xla.SingleDeviceXLAStrategy` instead.

    argskwargsreturnNc                 :    t        d       t        |   |i | y )NzBThe 'single_tpu' strategy is deprecated. Use 'single_xla' instead.r   super__init__r   r   r   	__class__s      r   r   zSingleTPUStrategy.__init__)   s    bc$)&)r   strategy_registryc                 6    d|vr|j                  d| d       y y )N
single_tpuz'Legacy class. Use `single_xla` instead.)description)register)clsr   s     r   register_strategiesz%SingleTPUStrategy.register_strategies-   s&    00&&|SFo&p 1r   )
r   
__module____qualname____doc__r   r   classmethodr   r"   __classcell__r   s   @r   r   r   "   sI    *c *S *T * q4E q$ q qr   r   c                   0     e Zd ZdZdededdf fdZ xZS )TPUAcceleratorz`Legacy class.

    Use :class:`~lightning.fabric.accelerators.xla.XLAAccelerator` instead.

    r   r   r   Nc                 :    t        d       t        |   |i | y )NzeThe `TPUAccelerator` class is deprecated. Use `lightning.fabric.accelerators.XLAAccelerator` instead.r   r   s      r   r   zTPUAccelerator.__init__:   s"    s	
 	$)&)r   r   r#   r$   r%   r   r   r'   r(   s   @r   r*   r*   3   '    *c *S *T * *r   r*   c                   0     e Zd ZdZdededdf fdZ xZS )TPUPrecisioncLegacy class.

    Use :class:`~lightning.fabric.plugins.precision.xla.XLAPrecision` instead.

    r   r   r   Nc                 <    t        d       t        | 	  d       y )NzfThe `TPUPrecision` class is deprecated. Use `lightning.fabric.plugins.precision.XLAPrecision` instead.z32-true	precisionr   r   s      r   r   zTPUPrecision.__init__H   s     t	
 	9-r   r,   r(   s   @r   r/   r/   A   s'    .c .S .T . .r   r/   c                   0     e Zd ZdZdededdf fdZ xZS )XLABf16Precisionr0   r   r   r   Nc                 <    t        d       t        | 	  d       y )NzjThe `XLABf16Precision` class is deprecated. Use `lightning.fabric.plugins.precision.XLAPrecision` instead.z	bf16-truer2   r   r   s      r   r   zXLABf16Precision.__init__V   s     x	
 	;/r   r,   r(   s   @r   r5   r5   O   s'    0c 0S 0T 0 0r   r5   c                   0     e Zd ZdZdededdf fdZ xZS )TPUBf16Precisionr0   r   r   r   Nc                 :    t        d       t        |   |i | y )NzjThe `TPUBf16Precision` class is deprecated. Use `lightning.fabric.plugins.precision.XLAPrecision` instead.r   r   s      r   r   zTPUBf16Precision.__init__d   s"    x	
 	$)&)r   r,   r(   s   @r   r8   r8   ]   r-   r   r8   c                  0   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               y )Nr   r*   r/   r8   r5   )setattrfabric
strategiesr   acceleratorsr*   pluginsr/   r3   r8   r5    r   r   _patch_classesrA   k   s    F24EFF!1>BFNNNL9FNN$$nlCFNN.0@AFNN$$&8:JKFNN.0@AFNN$$&8:JKr   )r   N)r
   typingr   lightning.fabricr<   lightning.fabric.acceleratorsr   "lightning.fabric.plugins.precisionr   lightning.fabric.strategiesr   &lightning.fabric.strategies.single_xlar   $lightning.fabric.utilities.rank_zeror   r   r   r*   r/   r5   r8   rA   r"   r=   STRATEGY_REGISTRYr@   r   r   <module>rJ      s      ! 8 ; 9 J FEq/ q"*^ *.< .0| 0*' *L      % %f&7&7&I&I Jr   