o
    ;i                     @   s   d dl Z d dlmZ d dlmZ ee jjZed Z	dede
fddZd	e
d
e
ddfddZde
fddZdddZdddZedkrcd dlZeejdkrXe  e  dS e ejd    dS dS )    N)Path)
check_callthird_partypathreturnc                 C   s<   | j dd}|  W  d    S 1 sw   Y  d S )Nzutf-8)encoding)openreadstrip)r   f r   6/home/app/PyTorch/pytorch/tools/optional_submodules.py
_read_file
   s   
$r   repotagc                 C   s   t ddddd|| gtd d S )Ngitclonez--depth1z--branch)cwd)r   third_party_path)r   r   r   r   r   _checkout_by_tag   s   	
r   c                  C   s>   d} t dt dddrd} td d d	 |  }t|S )
Nznccl-cu12.txtZDESIRED_CUDAZCUDA_VERSION Z11znccl-cu11.txtz.ciZdockerZci_commit_pins)osgetenv
startswith	repo_rootr   )Z	nccl_fileZnccl_pin_pathr   r   r   read_nccl_pin   s
   r   c                  C   s6   t  } td|   td }| std|  d S d S )Nz-- Checkout nccl release tag: Zncclzhttps://github.com/NVIDIA/nccl)r   printr   existsr   )Zrelease_tagZnccl_basedirr   r   r   checkout_nccl&   s   r   c                  C   s<   t td } td|   td }| std|  d S d S )Nzeigen_pin.txtz-- Checkout Eigen release tag: Zeigenz!https://gitlab.com/libeigen/eigen)r   r   r   r   r   )Z	eigen_tagZeigen_basedirr   r   r   checkout_eigen.   s   r    __main__   )r   N)r   pathlibr   
subprocessr   __file__absoluteparentr   r   strr   r   r   r   r    __name__syslenargvglobalsr   r   r   r   <module>   s"    


