o
    8} i                     @  s:  d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 dZ
edZd/ddZd/ddZd0d1ddZedkrejddZejdde	jjdd ejdded ejdded ejdd ed e ZejdusrJ ejd!krydneje_ejd!krdneje_ejd!krdneje_eejjZed" d# Z eeZ!eeZ"e!e
kree"Z#ne!Z#e$e d$YZ%e%&d% e%&d& e%&d'e# d( e%&d)e'e(ej d* e%&d+e'ej d* e%&d,e'e" d* e%&d-e'ej d* e%&d.e'ej d* W d   dS 1 sw   Y  dS dS )2    )annotationsN)Path)	distutilsUnknownz /v[0-9]+(\.[0-9]+)*(-rc[0-9]+)?/pytorch_root
str | Pathreturnstrc                 C  s   z8d }t jt j| drtjg d| d}nt jt j| dr,tjg d| d}|r6|d W S W t	S  tyB   Y t	S w )Nz.git)gitz	rev-parseZHEAD)cwdz.hg)hgZidentifyz-r.ascii)
ospathexistsjoin
subprocesscheck_outputdecodestrip	ExceptionUNKNOWN)r   rev r   >/home/app/PyTorch/test/pytorch/tools/generate_torch_version.pyget_sha   s$   r   c                 C  sJ   zt jg d| dddj }t|r|W S tW S  ty$   t Y S w )N)r
   Zdescribez--tagsz--exactr   T)r   encodingcapture_output)r   runstdoutr   RELEASE_PATTERNmatchr   r   )r   tagr   r   r   get_tag"   s   
r$   sha
str | Nonec                 C  s   t t jj}t|d   }tdr<tdd us J t	tdd}tdd}|dkr:|dt
| 7 }|S | tkrR| d u rHt|} |d| d d  7 }|S )	Nzversion.txtZPYTORCH_BUILD_VERSIONZPYTORCH_BUILD_NUMBER    z.postz+git   )r   __file__absoluteparentopenreadr   r   getenvintr	   r   r   )r%   r   versionZbuild_numberr   r   r   get_torch_version2   s   
r2   __main__z>Generate torch/version.py from build and environment metadata.)descriptionz
--is-debugz
--is_debugz(Whether this build is debug mode or not.)typehelpz--cuda-versionz--cuda_version)r5   z--hip-versionz--hip_versionz--xpu-versionz--xpu_versionr'   torchz
version.pywzfrom typing import Optional

zA__all__ = ['__version__', 'debug', 'cuda', 'git_version', 'hip']
z__version__ = 'z'
zdebug = 
zcuda: Optional[str] = zgit_version = zhip: Optional[str] = zxpu: Optional[str] = )r   r   r   r	   )N)r%   r&   r   r	   ))
__future__r   argparser   rer   pathlibr   
setuptoolsr   r   compiler!   r   r$   r2   __name__ArgumentParserparseradd_argumentutil	strtoboolr	   
parse_argsargsis_debugZcuda_versionZhip_versionZxpu_versionr*   r,   r   Zversion_pathZtagged_versionr%   r1   r-   fwritereprboolr   r   r   r   <module>   s`    






$