
    9f                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJrJrJrJr  \R*                  " \5      r\ R0                  " S	S
9R3                  5       r " S S5      r\" 5       rg)    N)Path)DictList)paths)animate)WINDOWS)DEFAULT_PYTHON)get_site_packagesget_venv_pathsrun_subprocesssubprocess_post_check   )daysc            	       (   \ rS rSrSS jr\S\4S j5       r\S\4S j5       r\S\4S j5       r	\S\4S j5       r
\S\4S	 j5       r\S\4S
 j5       rSS\\   S\SS4S jjr\S\4S j5       r\S\4S j5       rSSS.S\\   S\S\SS4S jjrSrg)_SharedLibs   returnNc                 .    0 U l         SU l        SU l        g )NF)_site_packageshas_been_updated_this_runhas_been_logged_this_runselfs    2/usr/lib/python3/dist-packages/pipx/shared_libs.py__init___SharedLibs.__init__   s    02).&(-%    c                 6    [         R                  R                  $ N)r   ctxshared_libsr   s    r   root_SharedLibs.root   s    yy$$$r   c                 8    [        U R                  5      u  n  nU$ r   r   r"   )r   bin_path_s      r   r&   _SharedLibs.bin_path"   s    '		2!Qr   c                 6    [        U R                  5      u  pnU$ r   r%   )r   r'   python_paths      r   r*   _SharedLibs.python_path'   s    *4995r   c                 6    [        U R                  5      u    pU$ r   r%   )r   r'   man_paths      r   r-   _SharedLibs.man_path,   s    '		21r   c                 >    U R                   [        (       d  S-  $ S-  $ )Npipzpip.exe)r&   r   r   s    r   pip_path_SharedLibs.pip_path1   s    }}WWDD)DDr   c                     U R                   U R                  ;  a,  [        U R                   5      U R                  U R                   '   U R                  U R                      $ r   )r*   r   r
   r   s    r   site_packages_SharedLibs.site_packages5   sN    4#6#664EdFVFV4WD 0 01""4#3#344r   Fpip_argsverbosec                 L   U R                   (       d  [        SU(       + 5         [        [        SSSU R                  /[        U R                  5      S9nS S S 5        [        W5        U=(       d    / nUR                  S5        U R                  XSS9  g g ! , (       d  f       NG= f)	Nzcreating shared libraries-mvenvz--clear)run_dirz--force-reinstallT)r6   r7   raises)	is_validr   r   r	   r"   strr   appendupgrade)r   r6   r7   create_processs       r   create_SharedLibs.create<   s    }}4'kB!/#T69diiHRUVZV_V_R`" C ".1  ~2HOO/0LL(DLI BBs   1B
B#c                     U R                   R                  5       (       aX  Sn[        U R                   SU/SSS9R                  R	                  5       nU R
                  R                  5       =(       a    US:g  $ g)Nz=import importlib.util; print(importlib.util.find_spec('pip'))z-cFz<checking pip's availability>)capture_stderrlog_cmd_strNone)r*   is_filer   stdoutstripr1   )r   	check_pipouts      r   r=   _SharedLibs.is_validJ   sm    ##%%WI !!43$; fUUW	  ==((*<sf}<r   c                 b   U R                   (       a  gU R                  R                  5       (       d  g[        R                  " 5       nXR                  R	                  5       R
                  -
  nU R                  (       d)  [        R                  SUS S[        S S35        SU l        U[        :  $ )NFTz4Time since last upgrade of shared libs, in seconds: z.0fz.. Upgrade will be run by pipx if greater than .)
r   r1   rH   timestatst_mtimer   loggerinfoSHARED_LIBS_MAX_AGE_SEC)r   nowtime_since_last_update_secs      r   needs_upgrade_SharedLibs.needs_upgradeX   s    ))}}$$&&iik%(==+=+=+?+H+H%H",,KKFGabeFf g??VWZ>[[\^ -1D)),CCCr   )r7   r<   r<   c          	         U R                   (       d  U R                  X!S9  g U R                  (       a#  [        R	                  SU R
                   35        g Uc  / n[        R	                  SU R
                   35        S/nU Vs/ s H  oUU;  d  M
  UPM     nnU(       d  UR                  S5         [        SU(       + 5         [        U R                  SSS	S
S/UQSPSP5      nS S S 5        [        W5        SU l        U R                  R                  5         g s  snf ! , (       d  f       N@= f! [         a$    [        R                  SU(       + S9  U(       a  e  g f = f)N)r7   r6   zAlready upgraded libraries in zUpgrading shared libraries in z
--editablez-qzupgrading shared librariesr9   r0   z
--no-inputz--disable-pip-version-checkinstallz	--upgradezpip >= 23.1Tz"Failed to upgrade shared libraries)exc_info)r=   rB   r   rS   rT   r"   r?   r   r   r*   r   r1   touch	Exceptionerror)r   r6   r7   r<   ignored_argsarg	_pip_argsupgrade_processs           r   r@   _SharedLibs.upgradej   sQ   }}KKK; ))KK8DEH4TYYK@A$~$,HHS<0GSH	HT"	57{C"0(($5!
 #
 $
 &
# D "/2-1D*MM!+ I DC&  	LL=F
LS 	s6   	DD2D0 "D%4D0 
D-)D0 0+EE)r   r   r   )r   N)F)__name__
__module____qualname____firstlineno__r   propertyr   r"   r&   r*   r-   r1   r4   r   r>   boolrB   r=   rX   r@   __static_attributes__ r   r   r   r      s;   .
 %d % % $   T   $   E$ E E 5t 5 5JtCy J4 JD J $   Dt D D" ?DTY *49 *t *T *^b * *r   r   )datetimeloggingrP   pathlibr   typingr   r   pipxr   pipx.animater   pipx.constantsr   pipx.interpreterr	   	pipx.utilr
   r   r   r   	getLoggerre   rS   	timedeltatotal_secondsrU   r   r!   rl   r   r   <module>ry      sn            " +  
		8	$ #,,"5CCE | |~ mr   