o
    �PÔa‚  ã                   @   sè   d dl Z d dlmZ d dlmZmZ d dlmZ d dlZ	d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZ d d	lmZmZ d d
lmZ d dlmZmZ dededededef
dd„Zdededededee defdd„Z dS )é    N)ÚPath)ÚListÚSequence)Úcanonicalize_name)Ú
inject_dep)Úinstall)Ú	uninstall)ÚEXIT_CODE_OKÚ"EXIT_CODE_REINSTALL_INVALID_PYTHONÚ$EXIT_CODE_REINSTALL_VENV_NONEXISTENTÚExitCode)ÚerrorÚsleep)Ú	PipxError)ÚVenvÚVenvContainerÚvenv_dirÚlocal_bin_dirÚpythonÚverboseÚreturnc                 C   s4  |   ¡ std| j› dt› �ƒ tS z	t|ƒ | ¡ W n	 ty#   Y nw tt› d�dƒ t	S t
| |d�}|jjjdurA|jjj}n|j}t| ||ƒ |  t| jƒ¡} t| |j||||jjj|jj|d|jjj|jjjd� |jj ¡ D ]$\}}|jdu r‡td	|› d
|j› �ƒ‚t| ||j|j||j|jdd� qstS )úReturns pipx exit code.zNothing to reinstall for ú z/ Error, the python executable would be deleted!zPChange it using the --python option or PIPX_DEFAULT_PYTHON environment variable.©r   NT)ÚforceÚinclude_dependenciesÚsuffixz!Internal Error injecting package z into )r   Úinclude_appsr   r   )ÚexistsÚprintÚnamer   r   r   Úrelative_toÚ
ValueErrorr   r
   r   Úpipx_metadataÚmain_packageÚpackage_or_urlÚmain_package_namer   Ú	with_namer   r   Úpip_argsÚ	venv_argsr   r   Úinjected_packagesÚitemsr   r   r   r	   )r   r   r   r   Úvenvr%   Úinjected_nameÚinjected_package© r/   ú9/usr/lib/python3/dist-packages/pipx/commands/reinstall.pyÚ	reinstall   sf   ÿþõ
ý
ÿør1   Úvenv_containerÚskipc          	      C   sº   t jjj|d� g }|  ¡ D ]<}|j|v rqz
t||||d�}W n ty? } zt|tj	d� | 
|j¡ W Y d}~qd}~ww |dkrJ| 
|j¡ qt|ƒdkr[tdd |¡› �ƒ‚tS )r   r   )r   r   r   r   )ÚfileNr   z.The following package(s) failed to reinstall: z, )ÚpipxÚshared_libsÚupgradeÚiter_venv_dirsr    r1   r   r   ÚsysÚstderrÚappendÚlenÚjoinr	   )	r2   r   r   r   r3   Úfailedr   Úpackage_exitÚer/   r/   r0   Úreinstall_all^   s2   	

ü€þ€ÿrA   )!r9   Úpathlibr   Útypingr   r   Úpackaging.utilsr   Úpipx.shared_libsr5   Úpipx.commands.injectr   Úpipx.commands.installr   Úpipx.commands.uninstallr   Úpipx.constantsr	   r
   r   r   Úpipx.emojisr   r   Ú	pipx.utilr   Ú	pipx.venvr   r   ÚstrÚboolr1   rA   r/   r/   r/   r0   Ú<module>   sH    ÿÿÿÿ
þHÿþýüúù