
    uki                        U d dl mZ d dlZd dlZd dlZd dlZdZdZded<   dZ	ded<   ddZ
dd	Zdd
ZddZddZddZd Z e
       ZdZd Z ee      Z ee      Zy)    )annotationsNz0.8.2str_release_version(3f125024ecd17a1d90789a69c59962de4ff6af53	_git_hashc                     t         t         S t        j                  d      rt        t        j                  dd      z   S t	        t              xs t        t              S )NWHEEL_VERSION_SUFFIX )r   osgetenv_version_version_from_git_tree_version_from_todays_date     F/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/version.py_get_version_stringr   !   sJ     !YY%&bii 6;;;		)	P-Fx-PPr   c                j    t         j                  j                         j                  d      }|  d| S )N%Y%m%d.dev)datetimedatetodaystrftime)base_version
datestrings     r   r   r   +   s0    }}""$--h7*>j\	**r   c                   	 t         j                  j                  t         j                  j                  t                    }t        j                  g d|t
        j                  t
        j                        }|j                         \  }}|j                         j                         j                  dd      \  }}t        j                  j                  t        |            j!                  d      }|j#                         sJ |j%                         sJ 	 |  d| d| }t         j&                  j)                  dd       }	|	r|d	z   |	z   S |S #  Y y xY w)
N)gitshowz-sz--format=%at-%hHEAD)cwdstdoutstderr-   r   r   +JAX_CUSTOM_VERSION_SUFFIX.)r   pathdirnamerealpath__file__
subprocessPopenPIPEcommunicatedecodestripsplitr   r   fromtimestampintr   	isnumericisalnumenvironget)
r   root_directorypr"   _	timestampcommit_hashr   versionsuffixs
             r   r   r   0   s   WW__RWW%5%5h%?@N 	I+ *
	IA IFA#]]_224::3BI{,,S^<EEhOJ!!!    d:,a}=GZZ^^7>Fs]V##Ns   DE Ec                    t         t         S t        j                  d      rt        t        j                  dd      z   S t        j                  d      st        j                  d      rt        S t        j                  d      st        j                  d      rt	        t              S t        t              xs t	        t              S )a  Determine the version at build time.

  The returned version string depends on which environment variables are set:
  - if WHEEL_VERSION_SUFFIX is set: version looks like "0.5.1.dev20230906+ge58560fdc"
    Here the WHEEL_VERSION_SUFFIX value is ".dev20230906+ge58560fdc".
    Please note that the WHEEL_VERSION_SUFFIX value is not the same as the
    JAX_CUSTOM_VERSION_SUFFIX value, and WHEEL_VERSION_SUFFIX is set by Bazel
    wheel build rule.
  - if JAX_RELEASE or JAXLIB_RELEASE are set: version looks like "0.4.16"
  - if JAX_NIGHTLY or JAXLIB_NIGHTLY are set: version looks like "0.4.16.dev20230906"
  - if none are set: version looks like "0.4.16.dev20230906+ge58560fdc
  r	   r
   JAX_RELEASEJAXLIB_RELEASEJAX_NIGHTLYJAXLIB_NIGHTLY)r   r   r   r   r   r   r   r   r   _get_version_for_buildrF   H   s     !YY%&bii 6;;;YY}+;!<OYY}+;!<$X..		)	P-Fx-PPr   c                 X    t        j                  dd      } | j                  d      rdS dS )z7Determine if this is a pre-release ("rc" wheels) build.r	   r
   rcTF)r   r   
startswith)
rc_versions    r   _is_prereleaserK   `   s+    yy/4*&&t,7%7r   c                   t               }d}d|}t        j                  |       }|j                         }|j	                  |      dk7  rt        d|d|        |j                  ||      }t        j                  j                  d      }|r>d}d|}|j	                  |      dk7  rt        d|d|        |j                  ||      }|j                  |       y	)
zJUsed by setup.py to write the specified version info into the source tree.z_release_version: str = '0.8.2'z_release_version: str =    zBuild: could not find z in JAX_GIT_HASHz;_git_hash: str = '3f125024ecd17a1d90789a69c59962de4ff6af53'z_git_hash: str = N)rF   pathlibPath	read_textcountRuntimeErrorreplacer   r8   r9   
write_text)	fnamerelease_versionold_version_stringnew_version_stringfhandlecontentsgithashold_githash_stringnew_githash_strings	            r   _write_versionr_   f   s    *,/81/1DELL' (^^&'1,
/0B/ET%Q
RR02DE(JJNN>*'V,WK8~~()Q.12D1GtE7STT 24FGH	Xr   c                j     ddl m} ddlm}  G  fdd|      } G  fdd|      }t	        ||      S )	Nr   )build_py)sdistc                  "     e Zd Z fdZ xZS ) _get_cmdclass.<locals>._build_pyc                R   t         t        j                  j                  | j                  t        j                  j                  t                    }t        j                  j                  |      rt        j                  |       t        | )          t         t               y y N)r   r   r)   join	build_libbasenamer,   isfileunlinksuperrunr_   )selfthis_file_in_build_dir	__class__pkg_source_paths     r   rm   z$_get_cmdclass.<locals>._build_py.run   st    		!!#dnno.0gg.>.>x.H"J 77>>01
))*
+gkm		!-. 
"r   )__name__
__module____qualname__rm   __classcell__rp   rq   s   @r   	_build_pyrd      s    / /r   rw   c                  "     e Zd Z fdZ xZS )_get_cmdclass.<locals>._sdistc           	         t         |   ||       t        Lt        t        j
                  j                  |t        j
                  j                  t                           y y rf   )	rl   make_release_treer   r_   r   r)   rg   ri   r,   )rn   base_dirfilesrp   rq   s      r   r{   z/_get_cmdclass.<locals>._sdist.make_release_tree   sL    g%0		!rww||Ho$&GG$4$4X$>@ 	A 
"r   )rr   rs   rt   r{   ru   rv   s   @r   _sdistry      s    A Ar   r~   )rb   ra   )setuptools.command.build_pyra   setuptools.command.sdistrb   dict)rq   build_py_orig
sdist_origrw   r~   s   `    r   _get_cmdclassr   |   s2    C:/- / Az A 
FY	//r   c                D    t        d | j                  d      D              S )Nc              3  T   K   | ]   }|j                         st        |       " y wrf   )isdigitr5   ).0is     r   	<genexpr>z$_version_as_tuple.<locals>.<genexpr>   s     E!s1vEs   ((r(   )tupler3   )version_strs    r   _version_as_tupler      s    	E{005E	EEr   )returnr   )r   r   r   r   )r   r   r   z
str | None)r   bool)rV   r   r   None)
__future__r   r   r   rO   r-   r   r   __annotations__r   r   r   r   rF   rK   r_   r   __version___minimum_jaxlib_versionr   __version_info___minimum_jaxlib_version_infor   r   r   <module>r      s   " #  	     #  <	3 ;Q+
0Q08,0< "#! F %[1 01HI r   