
    Vpfb                        d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZ ddZ	 	 dddZd dZ	 d!d"dZd#dZd$dZd%dZdS )&z7Utilities for the building JAX related python packages.    )annotationsN)Sequencereturnboolc                 @    t           j                            d          S )Nwin32)sysplatform
startswith     U/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/tools/build_utils.py
is_windowsr      s    		 	 	)	))r   	src_filesstr | Sequence[str]dst_dirpathlib.PathNonec                   |                     dd           t          | t                    r| g} | D ]}|                    |          }|t	          d|           t
          j                            |          }t
          j                            ||p|          }t                      rt          j        ||           t          j        ||           d S )NT)parentsexist_okz!Unable to find wheel source file )mkdir
isinstancestr	Rlocation
ValueErrorospathbasenamejoinr   shutilcopyfilecopy)r   r   dst_filenamerunfilessrc_filesrc_file_rlocsrc_filenamedst_files           r   	copy_filer*   !   s     
--t-,,,	3 I 	+ 	+h&&x00ME8EEFFF7##M22Lw||G\%A\BBH|| +omX....k-****	+ 	+r   cpur   c                Z    dddddddt          j                    | f         \  }}| d| S )	N)manylinux2014x86_64)r-   aarch64)r-   ppc64le)macosx_10_14r.   )macosx_11_0arm64)winamd64))Linuxr.   )r6   r/   )r6   r0   )Darwinr.   )r7   r3   )WindowsAMD64_)r
   system)r+   platform_namecpu_names      r   platform_tagr>   6   sR    46641*  _- 	&	&H	&	&&r    sources_pathoutput_pathpackage_namegit_hashc                   t          t          j                  }|r||d<   t          j        t
          j        ddddgd| |           t          j        t          j        	                    | dd	                    D ]^}t          j        	                    |t          j        
                    |                    }t
          j                            d
| d           t
          j                            d| ddz              t
          j                            d| d           d	                    t          j                    dd                   }t
          j                            d| ddz              t
          j                            d| d           t
          j                            dd| dz              t          j        ||           `dS )zHBuilds a wheel in `output_path` using the source tree in `sources_path`.JAX_GIT_HASHz-mbuildz-nz-wT)checkcwdenvdistz*.whlzOutput wheel: 

zTo install the newly-built z wheel zon system Python, run:
z  pip install z --force-reinstall

.Nzon hermetic Python, run:
z  echo -e "\nz" >> build/requirements.in
z'  bazel run //build:requirements.updatez$ --repo_env=HERMETIC_PYTHON_VERSION=)dictr   environ
subprocessrunr	   
executableglobr   r    r   stderrwriter
   python_version_tupler!   r#   )r@   rA   rB   rC   rI   wheeloutput_file
py_versions           r   build_wheelrZ   B   s    	RZ# #"C.#.$t<38 8 8 8ylFGDDEE $ $e',,{BG,<,<U,C,CDDKJ7k777888JH<HHH/0 1 1 1JIkIIIJJJ(799#2#>??JJH<HHH12 3 3 3JOkOOOPPPJ>LJLLLM N N N
K{####$ $r   c                    t           j                            d| d| d           t          j        |d           t          j        | |           d S )NzTo install the editable z build, run:

  pip install -e rK   T)ignore_errors)r	   rT   rU   r!   rmtreecopytree)r@   rA   rB   s      r   build_editabler_   Z   sp     **| * *#* * *   	-40000/,,,,,,r   file_dircuda_versionc                4   | dz  }t          |          5 }|                                }d d d            n# 1 swxY w Y   |                    dd|           }t          |d          5 }|                    |           d d d            d S # 1 swxY w Y   d S )Nsetup.pyzcuda_version = 0  # placeholderzcuda_version = wopenreadreplacerU   )r`   ra   r&   fcontents        r   update_setup_with_cuda_versionrk   e      
"(H~~ ffhhG              OO')I<)I)I ' Hc aGGG                    6::*BBBrocm_versionc                4   | dz  }t          |          5 }|                                }d d d            n# 1 swxY w Y   |                    dd|           }t          |d          5 }|                    |           d d d            d S # 1 swxY w Y   d S )Nrc   zrocm_version = 0  # placeholderzrocm_version = rd   re   )r`   rn   r&   ri   rj   s        r   update_setup_with_rocm_versionrp   o   rl   rm   )r   r   )NN)r   r   r   r   r   r   )r+   r   r   r   )r?   )
r@   r   rA   r   rB   r   rC   r   r   r   )r@   r   rA   r   rB   r   r   r   )r`   r   ra   r   )r`   r   rn   r   )__doc__
__future__r   r   pathlibr
   r!   r	   rP   rS   collections.abcr   r   r*   r>   rZ   r_   rk   rp   r   r   r   <module>ru      s"   > = " " " " " " 				    



      $ $ $ $ $ $* * * * 	+ + + + +*	' 	' 	' 	' MO$ $ $ $ $0- - - -        r   