a
    þdë  ã                   @   s¶   d dl Z d dlZd dlmZ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lmZ d d	lmZ ed
œdd„Zeeddœdd„Zeed edœdd„ZdS )é    N)Ú
getmembersÚisclass)ÚTensor)ÚLiteral)Ú_convert_fp_tensor)Ú_StrategyRegistry)Ú_is_register_method_overridden)ÚStrategy)Úrank_zero_deprecation)Úreturnc                   C   s    t dƒ tt d¡pt d¡ƒS )Nz[The function `on_colab_kaggle` has been deprecated in v1.8.0 and will be removed in v2.0.0.Z	COLAB_GPUZKAGGLE_URL_BASE)r
   ÚboolÚosÚgetenv© r   r   úk/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pytorch_lightning/strategies/utils.pyÚon_colab_kaggle   s    r   )ÚregistryÚbase_moduler   c                 C   sB   t  |¡}t|tƒD ](\}}t|tƒrt|tdƒr| | ¡ qd S )NÚregister_strategies)Ú	importlibÚimport_moduler   r   Ú
issubclassr	   r   r   )r   r   ÚmoduleÚ_Úmodr   r   r   Ú_call_register_strategies"   s    
r   )Z64é@   Z32é    Ú16é   Úbf16)ÚtensorÚ	precisionr   c                 C   s0   t |ƒdkrt| tjƒS |dkr,t| tjƒS | S )Nr   r    )Ústrr   ÚtorchZhalfZbfloat16)r!   r"   r   r   r   Ú_fp_to_half*   s
    r%   )r   r   Úinspectr   r   r$   r   Ztyping_extensionsr   Z(lightning_fabric.plugins.precision.utilsr   Zlightning_fabric.strategiesr   Z#lightning_fabric.utilities.registryr   Z%pytorch_lightning.strategies.strategyr	   Z%pytorch_lightning.utilities.rank_zeror
   r   r   r#   r   r%   r   r   r   r   Ú<module>   s   