Ë
      çiù	  ã                   óŽ   — d dl mZ d dlmZmZ d dlZd dlmZ dedeeej                  f   defd„Z	 G d	„ d
«      Z
 G d„ d«      Zy)é    )ÚMapping)ÚAnyÚUnionN)ÚTensorÚtensorÚdst_typeÚreturnc                 óR   — t        j                  | «      r| j                  |«      S | S ©N)ÚtorchÚis_floating_pointÚto)r   r   s     ú}/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/lightning_fabric/plugins/precision/utils.pyÚ_convert_fp_tensorr      s#   € Ü"'×"9Ñ"9¸&Ô"Aˆ6�9‰9�XÓÐMÀvÐMó    c                   óT   — e Zd ZdZdej
                  ddfd„Zdd„Zdeded	eddfd
„Z	y)Ú_DtypeContextManagerz}A context manager to change the default tensor type when tensors get created.

    See: :func:`torch.set_default_dtype`

    Údtyper	   Nc                 óD   — t        j                  «       | _        || _        y r   )r   Úget_default_dtypeÚ_previous_dtypeÚ
_new_dtype)Úselfr   s     r   Ú__init__z_DtypeContextManager.__init__!   s   € Ü,1×,CÑ,CÓ,EˆÔØˆ�r   c                 óB   — t        j                  | j                  «       y r   )r   Úset_default_dtyper   )r   s    r   Ú	__enter__z_DtypeContextManager.__enter__%   s   € Ü×Ñ §¡Õ0r   Úexc_typeÚ	exc_valueÚ	tracebackc                 óB   — t        j                  | j                  «       y r   )r   r   r   )r   r   r   r    s       r   Ú__exit__z_DtypeContextManager.__exit__(   s   € Ü×Ñ × 4Ñ 4Õ5r   ©r	   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r"   © r   r   r   r      sD   „ ñð ˜eŸk™kð  ¨dó  ó1ð6 ð 6°ð 6Àð 6Èô 6r   r   c                   óJ   — e Zd ZdZdeeef   ddfd„Zdd„Zde	de	d	e	ddfd
„Z
y)Ú_ClassReplacementContextManagerz)A context manager to monkeypatch classes.Úmappingr	   Nc                 óÒ   — || _         i | _        i | _        |D ]M  }|j                  dd«      \  }}t	        ||g¬«      }|| j                  |<   t        ||«      | j                  |<   ŒO y )NÚ.é   )Úfromlist)Ú_mappingÚ
_originalsÚ_modulesÚrsplitÚ
__import__Úgetattr)r   r+   Úclass_stringÚmodule_nameÚ
class_nameÚmodules         r   r   z(_ClassReplacementContextManager.__init__/   si   € ØˆŒØˆŒØˆŒÛ#ˆLØ&2×&9Ñ&9¸#¸qÓ&AÑ#ˆK˜Ü °z°lÔCˆFØ*0ˆD�M‰M˜,Ñ'Ü,3°F¸JÓ,GˆD�O‰O˜LÒ)ñ	 $r   c                 ó¦   — | j                   j                  «       D ]4  \  }}|j                  dd«      \  }}t        | j                  |   ||«       Œ6 y ©Nr-   r.   )r0   Úitemsr3   Úsetattrr2   )r   r6   ÚreplacementÚ_r8   s        r   r   z)_ClassReplacementContextManager.__enter__9   sI   € Ø)-¯©×)<Ñ)<Ö)>Ñ%ˆL˜+Ø(×/Ñ/°°QÓ7‰MˆAˆzÜ�D—M‘M ,Ñ/°¸[ÕIñ *?r   r   r   r    c                 óÀ   — | j                   j                  «       D ]A  \  }}|j                  dd«      \  }}t        | j                  |   || j
                  |   «       ŒC y r;   )r0   r<   r3   r=   r2   r1   )r   r   r   r    r6   r>   r?   r8   s           r   r"   z(_ClassReplacementContextManager.__exit__>   sR   € Ø)-¯©×)<Ñ)<Ö)>Ñ%ˆL˜+Ø(×/Ñ/°°QÓ7‰MˆAˆzÜ�D—M‘M ,Ñ/°¸T¿_¹_È\Ñ=ZÕ[ñ *?r   r#   )r$   r%   r&   r'   r   ÚstrÚtyper   r   r   r"   r(   r   r   r*   r*   ,   sP   „ Ù3ðH ¨¨T¨	Ñ 2ð H°tó HóJð
\ ð \°ð \Àð \Èô \r   r*   )Úcollections.abcr   Útypingr   r   r   r   rA   r   r   r   r*   r(   r   r   Ú<module>rE      sU   ðõ $ß ã Ý ðN˜vð N°°s¸E¿K¹KÐ7GÑ1Hð NÈVó N÷
6ñ 6÷$\ò \r   