
      i:	                     f    d dl Z d dlZd dlmZ d dlmZ  e j                  e      Z G d de      Z	y)    N)override)ClusterEnvironmentc                      e Zd ZdZeedefd              Zeedefd              Z	eede
fd              Zeedefd              Zede
fd       Zede
dd	fd
       Zede
fd       Zede
dd	fd       Zede
fd       Zede
fd       Zy	)KubeflowEnvironmentau  Environment for distributed training using the `PyTorchJob`_ operator from `Kubeflow`_.

    This environment, unlike others, does not get auto-detected and needs to be passed to the Fabric/Trainer
    constructor manually.

    .. _PyTorchJob: https://www.kubeflow.org/docs/components/trainer/legacy-v1/user-guides/pytorch/
    .. _Kubeflow: https://www.kubeflow.org

    returnc                      y)NT selfs    /Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/lightning/fabric/plugins/environments/kubeflow.pycreates_processes_externallyz0KubeflowEnvironment.creates_processes_externally$   s         c                 (    t         j                  d   S )NMASTER_ADDR)osenvironr
   s    r   main_addressz KubeflowEnvironment.main_address)   s     zz-((r   c                 :    t        t        j                  d         S )NMASTER_PORTintr   r   r
   s    r   	main_portzKubeflowEnvironment.main_port.   s     2::m,--r   c                      t        d      )Nz9The Kubeflow environment can't be detected automatically.)NotImplementedErrorr	   r   r   detectzKubeflowEnvironment.detect3   s     ""]^^r   c                 :    t        t        j                  d         S )N
WORLD_SIZEr   r
   s    r   
world_sizezKubeflowEnvironment.world_size8   s    2::l+,,r   sizeNc                 .    t         j                  d       y )Nz^KubeflowEnvironment.set_world_size was called, but setting world size is not allowed. Ignored.logdebug)r   r   s     r   set_world_sizez"KubeflowEnvironment.set_world_size<   s    		rsr   c                 :    t        t        j                  d         S )NRANKr   r
   s    r   global_rankzKubeflowEnvironment.global_rank@   s    2::f%&&r   rankc                 .    t         j                  d       y )Nz`KubeflowEnvironment.set_global_rank was called, but setting global rank is not allowed. Ignored.r!   )r   r(   s     r   set_global_rankz#KubeflowEnvironment.set_global_rankD   s    		tur   c                      y)Nr   r	   r
   s    r   
local_rankzKubeflowEnvironment.local_rankH   s    r   c                 "    | j                         S )N)r'   r
   s    r   	node_rankzKubeflowEnvironment.node_rankL   s    !!r   )__name__
__module____qualname____doc__propertyr   boolr   strr   r   r   staticmethodr   r   r$   r'   r*   r,   r.   r	   r   r   r   r      sN    d    )c )  ) .3 .  . _D _  _ -C - - t3 t4 t t 'S ' ' vC vD v v C   "3 " "r   r   )
loggingr   typing_extensionsr   9lightning.fabric.plugins.environments.cluster_environmentr   	getLoggerr/   r"   r   r	   r   r   <module>r;      s2     	 & Xg!5", 5"r   