+
    'Ýhí:  ã                   ó*  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ] P<                  ! ]4      t  ! R R	]!4      t"]
! R
R7       ! R R4      4       t#R R lt$R4R R llt%R R lt&R R lt'R R lt(R R lt)]'       d   R R lt*MR R lt*R R lt+R  R! lt,R5R" R# llt-R4R$ R% llt.R& R' lt/R( R) lt0R* R+ lt1R6R, R- llt2R. R/ lt3R7R0 R1 llt4R2 R3 lt5R# )8é    N)Ú	dataclass©ÚPath)	ÚAnyÚDictÚListÚNoReturnÚOptionalÚPatternÚSequenceÚTupleÚUnion)Úpaths)Úshow_cursor)ÚMINGWÚWINDOWSc                   óB   a a€ ] tR t^t oRV3R lV 3R llltRtVtV ;t# )Ú	PipxErrorc                ó&   <€ V ^8„  d   QhRS[ RS[/# )é   ÚmessageÚwrap_message©ÚstrÚbool)ÚformatÚ__classdict__s   "€Ú+/usr/lib/python3/dist-packages/pipx/util.pyÚ__annotate__ÚPipxError.__annotate__    s   ø€ ÷ &ñ &¡ð &±4ñ &ó    c                ój   <€ V'       d   \         SV `  \        V4      4       R # \         SV `  V4       R # ©N)ÚsuperÚ__init__Ú	pipx_wrap)Úselfr   r   Ú	__class__s   &&&€r   r%   ÚPipxError.__init__    s%   ø€ ßÜ‰GÑœY wÓ/Ö0ä‰GÑ˜WÖ%r!   © ©T)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r%   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r(   r   s   @@r   r   r      s   ù‡ € ÷&÷ &õ &r!   r   T)Úfrozenc                   ó,   a € ] tR t^'t o V 3R ltRtV tR# )ÚRelevantSearchc                óB   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[;R&   # )r   ÚpatternÚcategory)r   r   )r   r   s   "€r   r   ÚRelevantSearch.__annotate__'   s    ø‡ ‚ á‘S�\Ññ ñ �Mò r!   r*   N)r,   r-   r.   r/   Ú__annotate_func__r0   r1   )r   s   @r   r5   r5   '   s   ø‡ ‡ „ r!   r5   c                ó0   € V ^8„  d   QhR\         R\         /# )r   ÚpathÚreturnr   )r   s   "r   r   r   -   s   € ÷ 5ñ 5œ$ð 5¤4ñ 5r!   c                 óx  € \         P                  P                  P                  4       '       g)   \         P                  P                  P	                  4        R P                  \        P                  ! \        P                  ^R7      4      p\         P                  P                  V RV P                   2,          # )Ú )ÚkÚ.)r   ÚctxÚtrashÚis_dirÚmkdirÚjoinÚrandomÚchoicesÚstringÚascii_lowercaseÚname)r<   Úprefixs   & r   Ú_get_trash_filerM   -   sn   € Ü�9‰9�?‰?×!Ñ!×#Ò#Ü�	‰	�‰×ÑÔØ�W‰W”V—^’^¤F×$:Ñ$:¸aÔ@ÓA€FÜ�9‰9�?‰? ˜x q¨¯©¨Ð4Õ4Ð4r!   c                ó4   € V ^8„  d   QhR\         R\        RR/# )r   r<   Úsafe_rmr=   N)r   r   )r   s   "r   r   r   4   s&   € ÷ \ñ \”ð \œtð \¨tñ \r!   c                 óp  € V P                  4       '       g   R # \        P                  RV  24       \        P                  ! WR7       V P                  4       '       dY   V'       d6   \        P                  RV  R24       V P                  \        V 4      4       R # \        P                  RV  R24       R # R # )Nzremoving directory )Úignore_errorszFailed to delete z0. Will move it to a temp folder to delete later.z%. You may need to delete it manually.)rD   ÚloggerÚinfoÚshutilÚrmtreeÚwarningÚrenamerM   )r<   rO   s   &&r   ÚrmdirrX   4   s†   € Ø�;‰;�=Š=Ùä
‡K�KÐ% d VÐ,Ô-ô
 ‡M‚M�$Õ.ð ‡{�{‡}‚}ßÜ�N‰NÐ.¨t¨fÐ4dÐeÔfà�K‰Kœ¨Ó-Ö.ä�N‰NÐ.¨t¨fÐ4YÐZÖ[ñ r!   c                ó(   € V ^8„  d   QhR\         RR/# )r   r<   r=   Nr   )r   s   "r   r   r   I   s   € ÷ ,ñ ,”ð ,˜ñ ,r!   c                 óŒ   € V P                  4       '       d   R # \        P                  RV  24       V P                  RRR7       R # )Nzcreating directory T©ÚparentsÚexist_ok)rD   rR   rS   rE   )r<   s   &r   rE   rE   I   s4   € Ø‡{�{‡}‚}ÙÜ
‡K�KÐ% d VÐ,Ô-Ø‡J�J�t d€JÖ+r!   c                ó(   € V ^8„  d   QhR\         RR/# )r   Úfiler=   Nr   )r   s   "r   r   r   P   s   € ÷ 
+ñ 
+”dð 
+˜tñ 
+r!   c                 ó°   € V P                  4       '       g   R #  V P                  4        R #   \         d    T P                  \	        T 4      4        R # i ; ir#   )Úis_fileÚunlinkÚPermissionErrorrW   rM   ©r_   s   &r   Úsafe_unlinkre   P   s@   € ð
 �<‰<�>Š>Ùð+Ø�‰ŽøÜô +Ø�‰”O DÓ)×*ð+ús   š, ¬%AÁAc                ó0   € V ^8„  d   QhR\         R\        /# )r   Úbinary_namer=   )r   r   )r   s   "r   r   r   ]   s   € ÷ ñ ¬ð ´ñ r!   c                 óð   € \        R 4      \        \        P                  P                  4      R,           \        \        P                  P
                  4      ,           ,          R,          R,          V ,          # )Ú__pypackages__rA   ÚlibÚbin)r   r   ÚsysÚversion_infoÚmajorÚminor)rg   s   &r   Úget_pypackage_bin_pathrp   ]   sa   € äÐÓÜŒs×Ñ×%Ñ%Ó&¨Õ,¬s´3×3CÑ3C×3IÑ3IÓ/JÕJõ	Là
õ	ð õ	ð õ		ðr!   c                óR   € V ^8„  d   QhR\         R\        \        ,          R\        /# )r   Úbin_pathÚargsr=   )r   r   r   r	   )r   s   "r   r   r   g   s%   € ÷ ñ ¤ð ¬D´­Ið ¼(ñ r!   c                 óœ   € \        \        V P                  4       4      .V,           R \        V P                  P                  4      .R7       R# )rA   )Úextra_python_pathsN)Úexec_appr   ÚresolveÚparent)rr   rs   s   &&r   Úrun_pypackage_binry   g   s:   € ÜÜ	ˆX×ÑÓÓ	 Ð! DÕ(Ø¤ X§_¡_×%;Ñ%;Ó!<Ð=÷r!   c                ó\   € V ^8„  d   QhR\         R\        \         \         \         3,          /# ©r   Úrootr=   ©r   r   )r   s   "r   r   r   p   s&   € ÷ /ñ /œTð /¤e¬D´$¼Ð,<Õ&=ñ /r!   c                 ó˜   € V P                  4       p \        '       g
   V R ,          MV R,          pVR,          pV R,          R,          pWV3# )ÚScriptsrk   z
python.exeÚshareÚman)rw   r   ©r|   rr   Úpython_pathÚman_paths   &   r   Úget_venv_pathsr…   p   sF   € ð �|‰|‹~ˆß+0«5�4˜)Ö#°d¸UµlˆØ Õ-ˆØ˜'•> EÕ)ˆØ hÐ.Ð.r!   c                ó\   € V ^8„  d   QhR\         R\        \         \         \         3,          /# r{   r}   )r   s   "r   r   r   |   s&   € ÷ /ñ /œTð /¤e¬D´$¼Ð,<Õ&=ñ /r!   c                 óN   € V R ,          pVR,          pV R,          R,          pWV3# )rk   Úpythonr€   r�   r*   r‚   s   &   r   r…   r…   |   s.   € Ø˜%•<ˆØ Õ)ˆØ˜'•> EÕ)ˆØ hÐ.Ð.r!   c                ó0   € V ^8„  d   QhR\         R\         /# )r   rˆ   r=   r   )r   s   "r   r   r   ƒ   s   € ÷ ñ œdð ¤tñ r!   c                 ó’   € \        V R R.RR7      P                  p\        VP                  4       4      pVP	                  RRR7       V# )z-cz6import sysconfig; print(sysconfig.get_path('purelib'))F)Úcapture_stderrTr[   )Úrun_subprocessÚstdoutr   ÚstriprE   )rˆ   Úoutputr<   s   &  r   Úget_site_packagesr�   ƒ   sK   € ÜØ	�ÐOÐPØô÷ �fð ô �—‘“Ó€DØ‡J�J�t d€JÔ+Ø€Kr!   c                ót   € V ^8„  d   QhR\         \        \        3,          R\         \        \        3,          /# )r   Úenvr=   )r   r   )r   s   "r   r   r   �   s*   € ÷ ñ œT¤#¤s (�^ð ´´S¼#°Xµñ r!   c                 ól   € R R.pV F  pV P                  VR4       K  	  RV R&   RV R&   RV R&   RV R	&   V # )
Ú
PYTHONPATHÚ__PYVENV_LAUNCHER__NÚ1ÚPIP_DISABLE_PIP_VERSION_CHECKúutf-8ÚPYTHONIOENCODINGÚPYTHONLEGACYWINDOWSSTDIOÚ0ÚPIP_USER)Úpop)r’   Úenv_blocklistÚenv_to_removes   &  r   Ú_fix_subprocess_envr    �   sX   € ð "Ð#8Ð9€MÛ&ˆØ�‰�˜tÖ$ñ 'ð ,/€CÐ'Ñ(à%€CÐÑØ&-€CÐ"Ñ#à€Cˆ
�OØ€Jr!   c                óÔ   € V ^8„  d   QhR\         \        \        \        3,          ,          R\        R\        R\
        \        ,          R\        R\        R\
        \        ,          RR	/# )
r   ÚcmdÚcapture_stdoutr‹   Úlog_cmd_strÚ
log_stdoutÚ
log_stderrÚrun_dirr=   ú subprocess.CompletedProcess[str])r   r   r   r   r   r
   )r   s   "r   r   r       sn   € ÷ (ñ (Ü	”%œœT˜	Õ"Õ	#ð(äð(ô ð(ô œ#•ð	(ô
 ð(ô ð(ô ”c�]ð(ð (ñ(r!   c                ó  € \        \        P                  4      p\        V4      pVf   RP	                  R V  4       4      p\
        P                  RV 24       V'       d   \        P                  ! VRR7       V  Uu. uF  p\        V4      NK  	  p	p\        P                  ! T	TV'       d   \        P                  MRV'       d   \        P                  MRRRRVR	7      p
V'       d9   V'       d1   \
        P                  R
V
P                   2P                  4       4       V'       d9   V'       d1   \
        P                  RV
P                   2P                  4       4       \
        P                  RV
P                    24       V
# u upi )z?Run arbitrary command as subprocess, capturing stderr and stoutNÚ c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5ir#   ©r   )Ú.0Úcs   & r   Ú	<genexpr>Ú!run_subprocess.<locals>.<genexpr>®   s   é € Ð3©s¨!œs 1Ÿv˜v«sùs   ‚zrunning T)r]   r˜   F)r’   r�   ÚstderrÚencodingÚtextÚcheckÚcwdzstdout: zstderr: zreturncode: )ÚdictÚosÚenvironr    rF   rR   rS   Úmakedirsr   Ú
subprocessÚrunÚPIPEÚdebugr�   Úrstripr±   Ú
returncode)r¢   r£   r‹   r¤   r¥   r¦   r§   r’   r®   Úcmd_str_listÚcompleted_processs   &&&&&&&    r   rŒ   rŒ       s%  € ô Œr�z‰zÓ
€CÜ
˜cÓ
"€CàÒØ—h‘hÑ3©sÓ3Ó3ˆÜ
‡K�K�(˜;˜-Ð(Ô)ßÜ
�Š�G dÕ+á$'Ó(¡C˜q”C˜–F¡C€LÐ(ô #ŸšØØß"0Œz�Š°dß"0Œz�Š°dØØØØô	Ð÷ Ÿ*Ü�‰�xÐ 1× 8Ñ 8Ð9Ð:×AÑAÓCÔDßŸ*Ü�‰�xÐ 1× 8Ñ 8Ð9Ð:×AÑAÓCÔDÜ
‡L�L�<Ð 1× <Ñ <Ð=Ð>Ô?àÐùò+ )s   Á=Fc                ó,   € V ^8„  d   QhRRR\         RR/# )r   rÁ   r¨   Úraise_errorr=   N)r   )r   s   "r   r   r   Ë   s)   € ÷ 	Hñ 	HÐ-Oð 	HÔ^bð 	HÐnrñ 	Hr!   c           
      óþ  € V P                   '       dæ   V P                  e'   \        V P                  \        P                  RR7       V P                  e'   \        V P                  \        P                  RR7       V'       dB   \        RP                  V P                   Uu. uF  p\        V4      NK  	  up4      : R24      h\        P                  RP                  V P                  4      : R24       R # R # u upi )Nr?   ©r_   Úendrª   ú failed)r¿   r�   Úprintrl   r±   r   rF   rs   r   rR   rS   )rÁ   rÃ   Úxs   && r   Úsubprocess_post_checkrÊ   Ë   s¿   € Ø×#×#Ð#Ø×#Ñ#Ò/ÜÐ#×*Ñ*´·±ÀÕDØ×#Ñ#Ò/ÜÐ#×*Ñ*´·±ÀÕDßÜ˜sŸx™xÐ9J×9OÒ9OÓ(PÑ9O°A¬¨Q®Ñ9OÑ(PÓQÑTÐT[Ð\Ó]Ð]ä�K‰K˜3Ÿ8™8Ð$5×$:Ñ$:Ó;Ñ>¸gÐFÖGñ $ùò )Qs   Â!C:c                ó    € V ^8„  d   QhR\         \        \        \        3,          ,          R\         \        \        \        3,          ,          /# )r   Ú
input_listr=   )r   r   r   r   )r   s   "r   r   r   ×   s4   € ÷ ñ œd¤5¬¬c¨¥?Õ3ð ¼¼UÄ3ÌÀ8½_Õ8Mñ r!   c                 ó¢   € . p\        4       pV  F<  pV^ ,          V9  g   K  VP                  V4       VP                  V^ ,          4       K>  	  V# )r   )ÚsetÚappendÚadd)rÌ   Úoutput_listÚseenrÉ   s   &   r   Údedup_orderedrÓ   ×   sI   € Ø€KÜ‹5€DÛˆØˆQ�4�tÖØ×Ñ˜qÔ!Ø�H‰H�Q�q•TŽNñ ð
 Ðr!   c                ó4   € V ^8„  d   QhR\         R\         RR/# )r   Ú
pip_stdoutÚ
pip_stderrr=   Nr¬   )r   s   "r   r   r   â   s&   € ÷ c?ñ c?¤3ð c?´Cð c?¸Dñ c?r!   c                ó®  € ^
p. pRpV P                  R4       F�  p\        P                  ! RV4      p\        P                  ! RV4      pV'       d.   VP                  ^4      P	                  4       P                  4       pV'       g   Kp  VP                  ^4      pKƒ  	  \        \        P                  ! R\        P                  4      R4      \        \        P                  ! R\        P                  4      R4      \        \        P                  ! R	4      R
4      \        \        P                  ! R\        P                  4      R4      \        \        P                  ! R\        P                  4      R4      \        \        P                  ! R\        P                  4      R4      .p\        P                  ! R4      p	. p
\        4       pVP                  R4       F”  pV	P                  V4      pV'       d!   VP                  VP                  ^4      4       V FR  pVP                  P                  V4      '       g   K&  V
P                  VP	                  4       VP                  34        K’  	  K–  	  V'       d]   RP                  V4      p\        V4      ^8”  d   RMRp\        R\         P"                  R7       \$        P'                  RV RV 24       M›V'       d]   RP                  V4      p\        V4      ^8”  d   RMRp\        R\         P"                  R7       \$        P'                  RV RV 24       M7Ve4   \        R\         P"                  R7       \$        P'                  RV 24       \)        V
4      p
V
'       dË   \        R\         P"                  R7       V Uu. uF  pVP                  NK  	  ppV
P+                  4       p\        V4      ^8”  dE   \        V4      V8”  d5   VP-                  R4       V
 Uu. uF  pV^,          V9   g   K  VNK  	  ppKT  V F(  p\        RV^ ,           2\         P"                  R7       K*  	  R# R# u upi u upi )a  Extract useful errors from pip output of failed install

Print the module that failed to build
Print some of the most relevant errors from the pip output

Example pip stderr line for each "relevant" type:
    not_found
        Package cairo was not found in the pkg-config search path.
        src/common.h:34:10: fatal error: 'stdio.h' file not found
        The headers or library files could not be found for zlib,
    no_such
        unable to execute 'gcc': No such file or directory
        build\test1.c(2): fatal error C1083: Cannot open include file: 'cpuid.h': No such file ...
    exception_error
        Exception: Unable to find OpenSSL >= 1.0 headers. (Looked here: ...
    fatal_error
        LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
    conflict_
        ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/...
    error_
        error: can't copy 'lib\ansible\module_utils\ansible_release.py': doesn't exist ...
        build\test1.c(4): error C2146: syntax error: missing ';' before identifier 'x'
NÚ
zFailed to build\s+(\S.+)$z^\s*Collecting\s+(\S+)znot (?:be )?foundÚ	not_foundzno suchÚno_suchz(Exception|Error):\s*\S+Úexception_errorzfatal errorÚfatal_errorÚconflictÚ	conflict_zŽerror:(?!.+Command errored out)(?!.+failed building wheel for)(?!.+could not build wheels? for)(?!.+failed to build one or more wheels).+[^:]$Úerror_z/Failed to build\s+(?!one or more packages)(\S+)z
    Úsr?   rd   zpip failed to build packagez:
    z#pip seemed to fail to build packagez)pip seemed to fail to build package:
    z0
Some possibly relevant errors from pip install:z    éÿÿÿÿ)ÚsplitÚreÚsearchÚgrouprŽ   r5   ÚcompileÚIrÎ   rÐ   r7   rÏ   r8   rF   ÚlenrÈ   rl   r±   rR   ÚerrorrÓ   Úcopyr�   )rÕ   rÖ   Úmax_relevant_errorsÚfailed_build_stdoutÚlast_collecting_depÚlineÚfailed_matchÚcollecting_matchÚrelevant_searchesÚfailed_stderr_pattÚrelevants_savedÚfailed_build_stderrÚfailed_build_matchÚrelevant_searchÚfailed_to_build_strÚ
plural_strrÉ   Úprint_categoriesÚrelevants_saved_filteredÚrelevant_saveds   &&                  r   Úanalyze_pip_outputrü   â   sw  € ð0 Ðà%'ÐØ)-Ðð × Ñ  Ö&ˆÜ—y’yÐ!=¸tÓDˆÜŸ9š9Ð%>ÀÓEÐßØ".×"4Ñ"4°QÓ"7×"=Ñ"=Ó"?×"EÑ"EÓ"GÐßÑØ"2×"8Ñ"8¸Ó";Òñ 'ô 	”r—z’zÐ"6¼¿¹Ó=¸{ÓKÜ”r—z’z *¬b¯d©dÓ3°YÓ?Ü”r—z’zÐ"=Ó>Ð@QÓRÜ”r—z’z .´"·$±$Ó7¸ÓGÜ”r—z’z +¬r¯t©tÓ4°kÓBÜÜ�JŠJðô —‘óð ó	
ðÐô( ŸšÐ$VÓWÐà€OÜ›%ÐØ× Ñ  Ö&ˆØ/×6Ñ6°tÓ<ÐßØ×#Ñ#Ð$6×$<Ñ$<¸QÓ$?Ô@ã0ˆOØ×&Ñ&×-Ñ-¨d×3Ô3Ø×&Ñ&¨¯
©
«°o×6NÑ6NÐ'OÔPÚó  1ñ '÷ Ø&Ÿm™mÐ,?Ó@ÐÜÐ 3Ó4°qÔ8‘S¸bˆ
Üˆb”s—z‘zÕ"Ü�‰Ð2°:°,¸gÐFYÐEZÐ[Õ\ß	Ø&Ÿm™mÐ,?Ó@ÐÜÐ 3Ó4°qÔ8‘S¸bˆ
Üˆb”s—z‘zÕ"Ü�‰Ð:¸:¸,ÀgÐNaÐMbÐcÕdØ	Ò	(Üˆb”s—z‘zÕ"Ü�‰ÐAÐBUÐAVÐWÔXä# OÓ4€OçÜÐAÌÏ
É
ÕSá0AÓBÑ0A¨1˜AŸJœJÑ0AÐÐBØ#2×#7Ñ#7Ó#9Ð ÜÐ#Ó$ qÔ(¬sÐ3KÓ/LÐObÔ/bØ× Ñ  Ô$Ù3BÓ'_±?¨aÀaÈÅdÐN^ÑF^¯¨±?Ð$Ð'_Ñ$ã6ˆNÜ�D˜¨Õ*Ð+Ð,´3·:±:×>ó 7ñ ùò Cùò (`s   Î QÏ<QÐQc                ó    € V ^8„  d   QhRRRR/# )r   rÁ   r¨   r=   Nr*   )r   s   "r   r   r   H  s    € ÷ Oñ OØ9ðOà	ñOr!   c                 óh  € V P                   '       EdŒ   \        P                  R P                  V P                  4      : R24       \
        P                  P                  f   \        R4      h\
        P                  P                  P                  \
        P                  P                  P                  R,           ,          pVP                  RRR7      ;_uu_ 4       p\        RVR	7       \        R
VR	7       V P                  e   \        V P                  VRR7       \        RVR	7       \        R
VR	7       V P                  e   \        V P                  VRR7       RRR4       \        P                  RV 24       \!        V P                  V P                  4       R# R#   + '       g   i     LL; i)rª   rÇ   Nz)Pipx internal error: No log_file present.z_pip_errors.logÚar˜   )r²   z
PIP STDOUTrd   z
----------r?   rÅ   z
PIP STDERRzJFatal error from pip prevented installation. Full pip output in file:
    )r¿   rR   rS   rF   rs   r   rB   Úlog_filer   rx   ÚstemÚopenrÈ   r�   r±   ré   rü   )rÁ   Úpip_error_fileÚpip_error_fhs   &  r   Ú&subprocess_post_check_handle_pip_errorr  H  sA  € ð ×#×#Ñ#Ü�‰�s—x‘xÐ 1× 6Ñ 6Ó7Ñ:¸'ÐBÔCä�9‰9×ÑÒ%ÜÐGÓHÐHÜŸ™×+Ñ+×2Ñ2´e·i±i×6HÑ6H×6MÑ6MÐPaÕ6aÕbˆØ× Ñ  ¨wÐ ×7Ô7¸<Ü�, \Õ2Ü�, \Õ2Ø ×'Ñ'Ò3ÜÐ'×.Ñ.°\ÀrÕJÜ�. |Õ4Ü�, \Õ2Ø ×'Ñ'Ò3ÜÐ'×.Ñ.°\ÀrÕJ÷ 8ô 	�‰ÐbÐcqÐbrÐsÔtäÐ,×3Ñ3Ð5F×5MÑ5MÖNñ% $÷ 8×7ús   ÃBF!Æ!F1	c                óä   € V ^8„  d   QhR\         \        \        \        3,          ,          R\        \
        \        \        3,          ,          R\        \        \        ,          ,          R\        /# )r   r¢   r’   ru   r=   )r   r   r   r   r
   r   r   r	   )r   s   "r   r   r   `  sT   € ÷ &<ñ &<Ü	”%œœT˜	Õ"Õ	#ð&<ä	”$”sœC�x•.Õ	!ð&<ô !¤¤c¥Õ+ð&<ô ñ	&<r!   c                ó<  € Vf   \        \        P                  4      p\        V4      pVeŽ   \        P                  P
                  P                  T\        P                  ! R4      '       d?   \        P                  ! RR4      P                  \        P                  P
                  4      M. ,           4      VR&   \        4        \        P                  RRP                  V  Uu. uF  p\        V4      NK  	  up4      ,           4       \        '       d>   \        P                  ! \         P"                  ! V VRRRRRR	7      P$                  4       R# \        P&                  ! \        V ^ ,          4      V  Uu. uF  p\        V4      NK  	  upV4       R# u upi u upi )
z�Run command, do not return

POSIX: replace current process with command using os.exec*()
Windows: Use subprocess and sys.exit() to run command
Nr”   r?   z
exec_app: rª   r˜   TF)r’   r�   r±   r²   r³   r´   )r¶   r·   r¸   r    r<   ÚpathseprF   Úgetenvrâ   r   rR   rS   r   r   rl   Úexitrº   r»   r¿   Úexecvpe)r¢   r’   ru   r®   rÉ   s   &&&  r   rv   rv   `  s#  € ð ‚{Ü”2—:‘:ÓˆÜ
˜cÓ
"€CàÒ%ÜŸG™GŸO™O×0Ñ0ØÔXZ×XaÒXaÐbn×XoÒXo¤"§)¢)¨L¸"Ó"=×"CÑ"CÄBÇGÁGÇOÁOÔ"TÐuwÕxó
ˆˆLÑô
 „Mä
‡K�K�˜sŸx™x¹Ó(=¹°A¬¨Q®¹Ñ(=Ó>Õ>Ô?çƒwÜ�ŠÜ�NŠNØØØØØ ØØô÷ ‰jö
	
ô 	�
Š
”3�s˜1•v“;±Ó 5±¨A¤ Q¦±Ñ 5°sÖ;ùò )>ùò !6s   Ã#FÅ6F
c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r   Úpackage_nameÚpackage_specr=   r¬   )r   s   "r   r   r   ‰  s!   € ÷ <ñ <¬3ð <¼cð <Äcñ <r!   c                 ó"   € W8X  d   V # V  R V: 2# )z from spec r*   )r  r  s   &&r   Úfull_package_descriptionr  ‰  s    € ØÔ#ØÐà�˜{¨<Ñ*:Ð;Ð;r!   c                óH   € V ^8„  d   QhR\         R\         R\        R\         /# )r   r³   Úsubsequent_indentÚkeep_newlinesr=   r   )r   s   "r   r   r   �  s)   € ÷ 
ñ 
”Cð 
¬Cð 
ÄTð 
ÔVYñ 
r!   c                óŒ  € ^(p\        \        P                  ! R4      P                  V4      ^,
          p\        P
                  ! V 4      P                  4       p V'       dH   RP                  V P                  4        Uu. uF  p\        P                  ! VVVRR7      NK  	  up4      # \        P                  ! V VVRR7      # u upi )zGDedent, strip, wrap to shell width. Don't break on hyphens, only spacesrØ   F)Úwidthr  Úbreak_on_hyphens)éP   é(   )
ÚmaxrT   Úget_terminal_sizeÚcolumnsÚtextwrapÚdedentrŽ   rF   Ú
splitlinesÚfill)r³   r  r  Úminimum_widthr  rî   s   &&&   r   r&   r&   �  sµ   € à€MÜ”×(Ò(¨Ó2×:Ñ:¸MÓJÈQÕN€Eä�?Š?˜4Ó ×&Ñ&Ó(€DßØ�y‰yð !ŸO™OÔ-óñ .�Dô —’ØØØ&7Ø%*÷	ñ .ñó

ð 
	
ô �}Š}ØØØ/Ø"ô	
ð 	
ùòs   Á=#Cc                ó0   € V ^8„  d   QhR\         R\         /# )r   r<   rx   r   )r   s   "r   r   r   «  s   € ÷ 'ñ 'œDð '¬$ñ 'r!   c                 ó$   € V P                  V4      # r#   )Úis_relative_to)r<   rx   s   &&r   Úis_paths_relativer$  «  s   € Ø×Ñ˜vÓ&Ð&r!   r+   )TTNTTN)NN)r?   F)6Úloggingr·   rG   rã   rT   rI   rº   rl   r  Údataclassesr   Úpathlibr   Útypingr   r   r   r	   r
   r   r   r   r   Úpipxr   Úpipx.animater   Úpipx.constantsr   r   Ú	getLoggerr,   rR   Ú	Exceptionr   r5   rM   rX   rE   re   rp   ry   r…   r�   r    rŒ   rÊ   rÓ   rü   r  rv   r  r&   r$  r*   r!   r   Ú<module>r.     så   ðÛ Û 	Û Û 	Û Û Û Û 
Û Ý !Ý ÷
÷ 
õ 
õ Ý $ß )à	×	Ò	˜8Ó	$€ô&�	ô &ñ �$Ô÷ð ó ðõ
5÷\õ*,õ
+õõ÷ ö/õ/õõ÷&(÷V	Hõõc?õLO÷0&<õR<÷
÷6'r!   