
    9fU"                        S SK r S SKrS SKrS SKJr  S SKJrJrJrJ	r	  S SK
JrJr  S SKJrJ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Jr  S SKJrJr  \ R>                  " \ 5      r!S\S\"S\\"   S\#S\#S\#S\$4S jr%SSSSS.S\S\\"   S\#S\#S\#S\#S\#S\\\"      S\\"   S\#S\$4S jjr&SS.S\\"\4   S\\"   S\\"   S\\"   S\#S\#S\#S\#S\#S\4S  jjr'SS.S!\S\#S\\"   S\#S"\	\"   S\#S\#S\4S# jjr(S\#S\\"   S\4S$ jr)g)%    N)Path)DictListOptionalSequence)commandspaths)boldred)expose_resources_globally)EXIT_CODE_OKExitCode)sleep)parse_specifier_for_upgrade)	PipxError	pipx_wrap)VenvVenvContainervenvpackage_namepip_argsis_main_packageforceupgrading_allreturnc                    U R                   U   nUR                  c  [        SU S35      eUR                  (       a  UR                  U R
                  :w  a>  [        R                  SUR                   SU R                   SU R                   S35        g[        R                  SU R                   SU R                   S35        g[        UR                  5      nUR                  nU R                  UUUUR                  UR                  UUR                  S9  U R                   U   nUR                   UR                   3n	UR                  n
UR                  (       ag  [        S	[         R"                  R$                  UR&                  UUR                  S
9  [        S[         R"                  R(                  UR*                  US9  UR                  (       a  UR,                  R/                  5        H2  n[        S	[         R"                  R$                  UUUR                  S
9  M4     UR0                  R/                  5        H&  n[        S[         R"                  R(                  XS9  M(     X:X  a3  U(       a   g[3        [5        SU	 SU SU R6                  < S35      5        g[3        [5        SU	 SU SU
 SU R6                  < S3	5      5        g)z7Returns 1 if package version changed, 0 if same versionzInternal Error: package z has corrupt pipx metadata.zNot upgrading pinned package z	 in venv z. Run `pipx unpin z` to unpin it.r   )include_dependenciesinclude_appsr   suffixapp)r   r   man)r   z
                    z is already at latest version z 
                    (location: z)
                    z"
                upgraded package z from z to
                z (location: z)
                   )package_metadatapackage_or_urlr   pinnedpackagemain_package_nameloggerwarningnamer   package_versionupgrade_packager   r   r   r   r	   ctxbin_dir	app_pathsman_dir	man_pathsapp_paths_of_dependenciesvaluesman_paths_of_dependenciesprintr   root)r   r   r   r   r   r   r#   r$   old_versiondisplay_namenew_versionr/   r1   s                7/usr/lib/python3/dist-packages/pipx/commands/upgrade.py_upgrade_packager;      s    ,,\:&&.2<.@[\]]		 	 ##t'='==NN/0@0H0H/ISWS\S\R] ^##'99+^=  NN:499+EWX\XaXaWbbpqr01A1P1PQN"22K-BB%22'&&   ,,\:&../0@0G0G/HIL"22K$$!II&&#**	
 	"%):):<L<V<V^cd,,)CCJJLI%		!!'.. M *CCJJLI%eUYY->->	W M !  !N"@ N  $		} - "".vk] C\$)) 7	
     F)install	venv_argspythonpython_flag_passedvenv_dirverboseinclude_injectedr=   r>   r?   r@   c                   U R                  5       (       d  U(       a  Uc  / n[        R                  " SUS[        U 5      R	                  [
        R                  R                  5      S   /[        R                  R                  [        R                  R                  UUUUSSSU	S9  g[        SU < S35      eU(       a1  U(       d*  [        R                  SS	R                  U5      -   S
-   5        U(       a  U(       d  [        R                  S5        [!        XS9n
U
R#                  XS9  U
R$                  (       d*  [        S['        [)        U R*                  5      5       S3SS9eU
R-                  U5        SnU
R.                  nU[1        U
UUSUUS9-  nU(       a5  U
R$                   H%  nXR.                  :X  a  M  U[1        U
UUSUUS9-  nM'     U$ )z0Return number of packages with changed versions.NF)rA   r>   package_namespackage_specslocal_bin_dirlocal_man_dirr?   r   rB   r   	reinstallr   preinstall_packagesr@   r   z<
                Package is not installed. Expected to find z9, but it
                does not exist.
                z	Ignoring z, z as not combined with --installz0Ignoring --python as not combined with --installrB   r   rB   zNot upgrading z. It has missing internal pipx metadata.
It was likely installed using a pipx version before 0.15.0.0.
Please uninstall and install this package to fix.)wrap_messageT)r   r   r   )is_dirr   r=   strsplitospathsepr	   r-   r.   r0   r   r(   infojoinr   check_upgrade_shared_libsr#   r   r
   r*   upgrade_packaging_librariesr'   r;   )rA   r   rB   rC   r   r   r=   r>   r?   r@   r   versions_updatedr   s                r:   _upgrade_venvrZ   k   s    ?? 	#""8}22277;;?CD#ii//#ii//!%*$(#5  <<D< H  K$))I"669ZZ[gFG*D""H"F  Shmm!456 7@ A 	
 	
 	$$X.))L(#   11L555 0 %+!  2 r<   )r@   	venv_dirsc                `    U R                  5        H  n	[        U	UUUSUUUUUS9
n
M     [        $ )Return pipx exit code.F)rC   r   r   r=   r>   r?   r@   )r3   rZ   r   )r[   r?   r   r>   rB   rC   r   r=   r@   rA   _s              r:   upgrader_      sG     $$&-1
 ' r<   venv_containerskipc                   / n/ nU R                  5        H  n	[        XS9n
U
R                  X!S9  U	R                  U;   d$  SU
R                  R
                  R                  ;   a  MQ   [        U	U
R                  R
                  R                  UUSUUS9  UR                  U	R                  5        M     [        U5      S:X  a  [        S	[         35        [        U5      S:  a  [        S
SR                  U5       35      e[         $ ! [         a?  n[        U[        R                  S9  UR                  U	R                  5         SnAGM5  SnAff = f)r]   rL   rM   z
--editableT)rB   rC   r   r   r@   )fileNr   z6No packages upgraded after running 'pipx upgrade-all' z,The following package(s) failed to upgrade: ,)iter_venv_dirsr   rW   r*   pipx_metadatamain_packager   rZ   appendr   r5   sysstderrlenr   rV   r   )r`   rB   r   rC   ra   r   r@   failedupgradedrA   r   es               r:   upgrade_allro      s*    FH"113H.&&&J==D LD4F4F4S4S4\4\$\	+""//88!1"#5 OOHMM*' 4( 8}FugNO
6{QFsxxPVGWFXYZZ  	)!#**%MM(--((	)s   '-D
E3E

Ec                 :    SSK Jn  UR                  XSS9  [        $ )r]   r   )shared_libsT)rB   r   raises)pipx.shared_libsrq   r_   r   )rB   r   rq   s      r:   upgrade_sharedrt     s     
 -4Hr<   )*loggingrR   ri   pathlibr   typingr   r   r   r   pipxr   r	   pipx.colorsr
   r   pipx.commands.commonr   pipx.constantsr   r   pipx.emojisr   pipx.package_specifierr   	pipx.utilr   r   	pipx.venvr   r   	getLogger__name__r(   rP   boolintr;   rZ   r_   ro   rt    r<   r:   <module>r      s/    	 
  1 1   ! : 1  > * )			8	$U
UU 3iU 	U
 U U 	U@ %) $XX3iX X
 X X X X S	"X SMX X 	XJ  %CISM 3i Cy	
      P  %'!'' 3i	'
 ' 3-' ' ' 'T		3i	 	r<   