
    <Bhi                       S r SSKJr  SSKrSSKrSSKJrJr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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  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)J*r*J+r+J,r,J-r-  SSK.J/r/J0r0  SSK1J2r2  SSK3J4r4J5r5J6r6J7r7J8r8  SSK9J:r:  SSK;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrD  SSKEJFrF  SSKGJHrH  SSKIJJrJJKrKJLrLJMrM  SSKNJOrOJPrP  SSKQJRrR  SSKSJTrT  SSKUJVrVJWrWJXrX  SSKYJZrZ  SS K[J\r\J]r]J^r^J_r_J`r`Jara  S!S"KbJcrcJdrdJere  S!S#KfJgrgJhrh  S!S$KiJjrj  \(       a  SS%KkJlrl   \m  \" \p5      rq\R                  " S&\R                  5      rtS'ru " S( S)5      rv\2R                  " S*S+S,\vS-S.9   " S/ S0\v\S19rx " S2 S3\v\S19ry " S4 S5\x\S19rz " S6 S7\z\S19r{ " S8 S9\{5      r| " S: S;\|5      r} " S< S=\{5      r~ " S> S?\y5      r " S@ SA\5      r " SB SC\{5      r " SD SE\{5      r " SF SG\{5      r " SH SI\x5      r " SJ SK\z\S19r " SL SM\5      r " SN SO\5      r " SP SQ\5      r " SR SS\x5      r " ST SU\x5      r " SV SW\x5      rg! \n a    \orm GN(f = f)XzJAtomic actions that make up a package installation or removal transaction.    )annotationsN)ABCMetaabstractmethodabstractproperty)chain)JSONDecodeError)	getLogger)basenamedirnamegetsizeisdirjoin)TYPE_CHECKING)uuid4   )
CondaError)dals)CONDA_TEMP_EXTENSION)context)on_win)TRACE)BIN_DIRECTORYget_leaf_directoriesget_python_noarch_target_pathget_python_short_pathparse_entry_point_defpyc_pathurl_to_pathwin_path_ok)has_platformpath_to_url)
deprecated)CondaUpgradeErrorCondaVerificationErrorNotWritableErrorPaddingErrorSafetyError)download)	compile_multiple_pyccopycreate_hard_link_or_copycreate_linkcreate_python_entry_pointextract_tarball	make_menumkdir_pwrite_as_json_to_file)rm_rf)make_writable)compute_sumislinklexistsread_index_json)backoff_renametouch)History)Channel)LinkType
NoarchTypePathType)	MatchSpec)LinkPackageCacheRecordPackageRecord
PathDataV1	PathsDataPrefixRecord   )get_user_environments_txt_fileregister_envunregister_env)_PaddingErrorupdate_prefix)
PrefixData)Iterablez^menu/.*\.json$)transaction_contextpackage_info	hold_pathc                      \ rS rSrSrSr       S             SS jjr\SS j5       r\SS j5       r	\SS j5       r
\SS	 j5       r\S
 5       rS rSrg)Action\   a  Base class for path manipulation actions, including linking, unlinking, and others.

Pre and post-transaction plugins should inherit this class to implement their
own verification, execution, reversing, and cleanup steps. These methods are
guaranteed to be called in the following order:

    1. ``verify``
    2. ``execute``
    3. ``reverse`` (only if ``execute`` raises an exception)
    4. ``cleanup``


:param transaction_context: Mapping between target prefixes and PrefixActions
    instances
:param target_prefix: Target prefix for the action
:param unlink_precs: Package records to be unlinked
:param link_precs: Package records to link
:param remove_specs: Specs to be removed
:param update_specs: Specs to be updated
:param neutered_specs: Specs to be neutered
FNc                X    Xl         X l        X0l        X@l        XPl        X`l        Xpl        g N)rN   target_prefixunlink_precs
link_precsremove_specsupdate_specsneutered_specs)selfrN   rV   rW   rX   rY   rZ   r[   s           7lib/python3.13/site-packages/conda/core/path_actions.py__init__Action.__init__u   s-     $7 *($((,    c                    g)a  Carry out any pre-execution verification.

Should set self._verified = True upon success.

:return: On failure, this function should return (not raise!) an exception
object. At the end of the verification run, all errors will be raised as a
CondaMultiError.
N r\   s    r]   verifyAction.verify       r`   c                    g)z~Execute the action.

Called after ``self.verify()``. If this function raises an exception,
``self.reverse()`` will be called.
Nrb   rc   s    r]   executeAction.execute   rf   r`   c                    g)zZReverse what was done in execute.

Called only if ``self.execute()`` raises an exception.
Nrb   rc   s    r]   reverseAction.reverse   s     	r`   c                    g)z#Carry out any post-execution tasks.Nrb   rc   s    r]   cleanupAction.cleanup   s     	r`   c                    U R                   $ rU   	_verifiedrc   s    r]   verifiedAction.verified   s    ~~r`   c                    S [        U 5      R                  5       5       nSR                  U R                  R                  SR                  U5      5      $ )Nc              3  N   #    U  H  u  pU[         ;  d  M  U S U< 3v   M     g7f)=N)REPR_IGNORE_KWARGS).0keyvalues      r]   	<genexpr>"Action.__repr__.<locals>.<genexpr>   s/      
0
,, se1UI0s   %%z{}({})z, )varsitemsformat	__class____name__r   )r\   argss     r]   __repr__Action.__repr__   sC    
"4j..0

 t~~66		$HHr`   )rX   r[   rY   rV   rN   rW   rZ   )NNNNNNN)rN   zdict[str, str] | NonerV   z
str | NonerW   Iterable[PackageRecord] | NonerX   r   rY   Iterable[MatchSpec] | NonerZ   r   r[   r   )returnzException | None)r   None)r   
__module____qualname____firstlineno____doc__rr   r^   r   rd   rh   rk   rn   propertyrs   r   __static_attributes__rb   r`   r]   rR   rR   \   s    , I 6:$(7;59373759-2- "- 5	-
 3- 1- 1- 3-$          Ir`   rR   z25.9z26.3_Actionz-Use `conda.core.path_actions.Action` instead.)addendumc                  $    \ rS rSr\S 5       rSrg)
PathAction   c                    [        5       erU   NotImplementedErrorrc   s    r]   target_full_pathPathAction.target_full_path       !##r`   rb   N)r   r   r   r   r   r   r   rb   r`   r]   r   r          $ $r`   r   )	metaclassc                  $    \ rS rSr\S 5       rSrg)MultiPathAction   c                    [        5       erU   r   rc   s    r]   target_full_paths!MultiPathAction.target_full_paths   r   r`   rb   N)r   r   r   r   r   r   r   rb   r`   r]   r   r      r   r`   r   c                  :    \ rS rSrS r\S 5       r\S 5       rSrg)PrefixPathAction   c                (    Xl         X l        X0l        g rU   )rN   rV   target_short_path)r\   rN   rV   r   s       r]   r^   PrefixPathAction.__init__   s    #6 *!2r`   c                    U R                   4$ rU   r   rc   s    r]   target_short_paths#PrefixPathAction.target_short_paths   s    &&((r`   c                h    U R                   U R                  p!Ub  Ub  [        U[        U5      5      $ g rU   )rV   r   r   r   )r\   trgtshrt_pths      r]   r   !PrefixPathAction.target_full_path   s5    ++T-C-Ch 4k(344r`   )rV   r   rN   N)	r   r   r   r   r^   r   r   r   r   rb   r`   r]   r   r      s/    3
 ) )  r`   r   c                  D   ^  \ rS rSrU 4S jrS rS r\S 5       rSr	U =r
$ )CreateInPrefixPathAction   c                J   > [         TU ]  XU5        X l        X0l        X@l        g rU   )superr^   rO   source_prefixsource_short_path)r\   rN   rO   r   r   rV   r   r   s          r]   r^   !CreateInPrefixPathAction.__init__   s(     	,=NO(*!2r`   c                    SU l         g NTrq   rc   s    r]   rd   CreateInPrefixPathAction.verify   	    r`   c                    g rU   rb   rc   s    r]   rn    CreateInPrefixPathAction.cleanup       r`   c                z    U R                   U R                  p!U(       a  U(       a  [        U[        U5      5      $ S $ rU   )r   r   r   r   )r\   prfxr   s      r]   source_full_path)CreateInPrefixPathAction.source_full_path   s0    ++T-C-Ch48XtD+h/0O4Or`   )rr   rO   r   r   )r   r   r   r   r^   rd   rn   r   r   r   __classcell__r   s   @r]   r   r      s(    3 P Pr`   r   c                  j   ^  \ rS rSr\S 5       r\S 5       r\S 5       rU 4S jrS r	S r
S rS	rU =r$ )
LinkPathAction   c                ~   ^^^^^^ U4S jmUUUUU4S jm[        U4S jTR                  R                  5       5      $ )Nc                >  > U R                   [        R                  :X  a  [        R                  nSu  p#OfU R
                  (       a)  [        R                  nU R
                  nU R                  nO,U R                  (       a  [        R                  nSu  p#OTnSu  p#XU4$ )N) N)	path_typer>   softlinkr<   r*   prefix_placeholder	file_modeno_link)source_path_data	link_typeprefix_placehoderr   requested_link_types       r]   get_prefix_replaceCLinkPathAction.create_file_link_actions.<locals>.get_prefix_replace  s    ))X->->>$MM	/7,!9!44$MM	$4$G$G!,66	!))$MM	/7,!9/	/7,!::r`   c                L  > TR                   R                  nUc2  TR                  b%  TR                  R                  nUb  UR                  nU[        R
                  :X  a-  TS   nUc  [        ST
 35      e[        U R                  U5      nO8Ub  U[        R                  :X  a  U R                  nO[        [        S5      5      eT" U 5      u  pEnU(       a(  [        TTTR                  U R                  T
UT	UUU 5
      $ [        TTTR                  U R                  T
UUU 5      $ )Ntarget_site_packages_short_pathzgUnable to determine python site-packages dir in target_prefix!
Please make sure python is installed in zv
                The current version of conda is too old to install this package.
                Please update conda.)repodata_recordnoarchpackage_metadatatyper=   pythonr   r   pathgenericr#   r   PrefixReplaceLinkActionextracted_package_dirr   )r   r   sp_dirr   r   placeholderfmoder   rO   r   rV   rN   s          r]   make_file_link_actionFLinkPathAction.create_file_link_actions.<locals>.make_file_link_action  sQ   !1188F~,"?"?"K%66==%#[[F***,-NO>$22?B 
 %B$))6%! 6Z-?-?#?$4$9$9!'(  -??O,P)IE.'  66$))!%'$  &'  66$))!%$	 	r`   c              3  4   >#    U  H  nT" U5      v   M     g 7frU   rb   )ry   spir   s     r]   r|   :LinkPathAction.create_file_link_actions.<locals>.<genexpr>O  s      
2O3!#&&2Os   )tuple
paths_datapaths)clsrN   rO   rV   r   r   r   s    ````@@r]   create_file_link_actions'LinkPathAction.create_file_link_actions  s;    	;"7	 7	r  
2>2I2I2O2O
 
 	
r`   c                Z   ^ ^^^ [        S U5       5      n[        U UUU4S jU5       5      $ )Nc              3  8   #    U  H  oR                   v   M     g 7frU   r   )ry   axns     r]   r|   :LinkPathAction.create_directory_actions.<locals>.<genexpr>\  s      0
->c!!->s   c              3  ^   >#    U  H"  nT" TTS S TU[         R                  S 5      v   M$     g 7frU   )r<   	directory)ry   directory_short_pathr   rO   rV   rN   s     r]   r|   r   _  sE      
 )9$ #$""	 	 )9s   *-)r   r   )r   rN   rO   rV   r   file_link_actionsleaf_directoriess   ````   r]   create_directory_actions'LinkPathAction.create_directory_actionsS  s;     0 0
->0
 
  
 )9
 
 	
r`   c           
         [         R                  nSn[        U5      u  n  n	SU S3n
[        U
[        R
                  S9nU " UUUUUU
UU5      $ )NzScripts/conda.exezScripts/z.exe_pathr   )r   conda_prefixr   rC   r>   windows_python_entry_point_exe)r   rN   rO   rV   r   entry_point_defsource_directoryr   command_r   r   s               r]   ,create_python_entry_point_windows_exe_action;LinkPathAction.create_python_entry_point_windows_exe_actionm  ss     #///-o>A&wit4%#==
 	
 		
r`   c	                b   > [         T	U ]  UUUUUU5        Xpl        SU l        Xl        S U l        g NF)r   r^   r   _execute_successfulr   prefix_path_data)
r\   rN   rO   r   r   rV   r   r   r   r   s
            r]   r^   LinkPathAction.__init__  sA     	!	
 ##(  0 $r`   c                   U R                   [        R                  :w  at  [        U R                  5      (       dZ  [        [        SU R                  R                  R                   SU R                  R                   SU R                   S35      5      $ U R                  n UR                  nU[        R                   ;   a  S nU R                   [        R                  :X  a	  S U l        GOU R                   [        R$                  :X  a=  [&        R(                  " U R                  U=(       d    [        R$                  S9U l        GO;U R                   [        R*                  :X  a[  UR                  [        R$                  :X  a=  [&        R(                  " U R                  U=(       d    [        R$                  S9U l        GOUR                  [        R,                  :X  Gat   UR.                  nSnU(       az  [1        U R                  5      nX4:w  a`  [3        [        SU R                  R                  R                   SU R                  R                   SU R                   S	U S
U S35      5      $  UR4                  nU(       a  X4:X  a  [6        R8                  (       a  [;        U R                  S5      nU(       ae  XV:w  a`  [3        [        SU R                  R                  R                   SU R                  R                   SU R                   SU SU S35      5      $ [&        R(                  " UUUU=(       d    [        R,                  S9U l        O/UR                  [        R<                  :X  a  Xl        O
[?        5       eSU l         g ! [         a    S n GNf = f! [         a    S n GNf = f! [         a    S n GNCf = f)Nz
            The package for z located at z0
            appears to be corrupted. The path 'zM'
            specified in the package manifest cannot be found.
            )r   r   z%
                    The package for z8
                    appears to be corrupted. The path 'zR'
                    has an incorrect size.
                      reported size: z* bytes
                      actual size: z bytes
                    sha256zR'
                    has a sha256 mismatch.
                    reported sha256: z$
                    actual sha256: z
                    )r  sha256_in_prefixr   T)!r   r<   r   r6   r   r$   r   rO   r   namer   r   r   r   AttributeErrorr>   basic_typesr	  r   rC   from_objectsr*   hardlinksize_in_bytesr   r'   r  r   extra_safety_checksr4   r   r   rr   )r\   r   source_path_typereported_size_in_bytessource_size_in_bytesreported_sha256source_sha256s          r]   rd   LinkPathAction.verify  s   >>X///!!9
 9
 *!..>>CCDLQUQbQbQxQxPy z0040F0F/G H   00	$/99 x333#>>X///$(D!^^x000$.$;$;%%*?h.?.?%D!
 NNhmm+ **h.?.??$.$;$;%%*?h.?.?%D!
 ''8+<+<<.)9)G)G& $% %'.t/D/D'E$)A&!%%)%6%6%F%F%K%K$LLY]YjYj  ZA  ZA  YB B88<8N8N7O P&&<%= >$$8#9 :
 
'"2"9"9
 %*B// +D,A,A8 L"'G&!%%)%6%6%F%F%K%K$LLY]YjYj  ZA  ZA  YB B88<8N8N7O P&&5%6 7$$1? 3
 
 %/$;$; &!0*?h.?.?	%D! ''8+R+RR$4!%'']  	$#	$2 " .)-&.( " '"&'s6    N N -N- NNN*)N*-N=<N=c                    [         R                  [        SU R                  U R                  5        [	        U R                  U R                  U R
                  [        R                  S9  SU l        g )Nlinking %s => %sforceT)	logr   r   r   r,   r   r   r  r  rc   s    r]   rh   LinkPathAction.execute  sS    )4+@+@$BWBWX!!!!NN--		
 $( r`   c                    U R                   (       aU  [        R                  [        SU R                  5        [	        U R
                  5      (       d  [        U R
                  SS9  g g g )Nzreversing link creation %sTclean_empty_parents)r  r  r   rV   r   r   r2   rc   s    r]   rk   LinkPathAction.reverse  sM    ##GGE79K9KL..//d++F 0 $r`   )r  rr   r   r	  r   )r   r   r   r   classmethodr   r   r  r^   rd   rh   rk   r   r   r   s   @r]   r   r      s]    O
 O
b 
 
2 
 
6%0_B(G Gr`   r   c                  :   ^  \ rS rSrU 4S jrU 4S jrS rSrU =r$ )r   i  c           
        > U[         R                  :X  a  [         R                  O[         R                  n[        TU ]  UUUUUUUU
5        Xl        Xl        S U l        g rU   )r<   r*   r  r   r^   r   r   intermediate_path)r\   rN   rO   r   r   rV   r   r   r   r   r   r   s              r]   r^    PrefixReplaceLinkAction.__init__  s[     &/(--%?HMMXEVEV	!		
 #5"!%r`   c                  > [         TU ]  5       nU(       a  U$ [        U R                  5      (       a,  [        R	                  [
        SU R                  5         S5       e[        U R                  S   5        [        U R                  S   [        [        5       5      5      U l        [        R	                  [
        SU R                  U R                  5        [        U R                  U R                  [        R                  5        [        U R                  5         [        R	                  [
        SU R                   5        [#        U R                  [$        R&                  =(       d    U R(                  U R*                  U R,                  U R.                  R0                  R2                  S9  [;        U R                  S5      n[<        R>                  " U R@                  U R,                  [B        RD                  U R*                  US9U l         S	U l#        g ! [4         a5    [7        U R                   U R*                  [9        U R*                  5      5      ef = f)
Nz6ignoring prefix update for symlink with source path %sz4I don't think this is the right place to ignore thistemp_dirzcopying %s => %szrewriting prefixes in %s)subdirr  )r   r   r   r  T)$r   rd   r5   r   r  r   r0   rN   r   strr   r(  r,   r<   r*   r3   r   rK   r   target_prefix_overriderV   r   r   rO   r   r,  rJ   r&   lenr4   rC   r  r	  r>   r  rr   )r\   validation_errorr  r   s      r]   rd   PrefixReplaceLinkAction.verify1  s    7>+##$''((GGH%% QPP5((45!%$$Z0#eg,"
 	%t'<'<d>T>T	
 	D))4+A+A8==Qd,,-	GGE5t7L7LM&&..D$2D2D''((88?? 't'='=xH * 7 7!!nn''#66-!
 #  	%%''D++, 	s   BH ?Ic                   U R                   (       d  U R                  5         U R                  =(       d    U R                  n[        R	                  [
        SXR                  5        [        XR                  U R                  5        SU l	        g )Nr  T)
rr   rd   r(  r   r  r   r   r,   r   r  )r\   source_paths     r]   rh   PrefixReplaceLinkAction.executef  s[    ~~KKM,,E0E0E);8M8MNK!6!6G#' r`   )r  rr   r   r(  r	  r   )	r   r   r   r   r^   rd   rh   r   r   r   s   @r]   r   r     s    &:3j( (r`   r   c                  D   ^  \ rS rSr\S 5       rU 4S jrS rS rSr	U =r
$ )MakeMenuActionio  c                t  ^ ^^^ [         R                  =(       d    SVs/ s H  oUR                  5       PM     nn[         R                  (       ae  [         R                  (       a%  U(       aI  TR                  R                  5       U;   a+  [        U UUU4S jTR                  R                  5       5      $ gs  snf )Nrb   c              3     >#    U  HI  n[        [        R                  UR                  5      5      (       d  M2  T" TTTUR                  5      v   MK     g 7frU   )bool_MENU_REmatchr   )ry   r   r   rO   rV   rN   s     r]   r|   0MakeMenuAction.create_actions.<locals>.<genexpr>y  sC      8Csxx01 P'}chhOO8s
   1AA)r   shortcuts_onlylower	shortcutsr  r   r   r   )r   rN   rO   rV   r   r  shorcuts_lowers   ````   r]   create_actionsMakeMenuAction.create_actionsp  s     5<4J4J4PbR4P4**,4PR&&<#4#4#:#:#<#N '2288    Ss   B5c                <   > [         TU ]  UUS S UU5        SU l        g r  )r   r^   r  )r\   rN   rO   rV   r   r   s        r]   r^   MakeMenuAction.__init__  s.     		
 $) r`   c                    [         R                  [        SU R                  5        [        U R                  U R
                  SS9  SU l        g )Nzmaking menu for %sFremoveT)r  r   r   r/   rV   r   r  rc   s    r]   rh   MakeMenuAction.execute  s9    +T-B-BC$$$d&<&<UK#' r`   c                    U R                   (       aE  [        R                  [        SU R                  5        [	        U R
                  U R                  SS9  g g )Nzremoving menu for %sTrF  )r  r  r   r   r/   rV   r   rc   s    r]   rk   MakeMenuAction.reverse  s?    ##GGE143H3HId(($*@*@N $r`   )r  r   r   r   r   r%  rA  r^   rh   rk   r   r   r   s   @r]   r6  r6  o  s+      )(
O Or`   r6  c                  b    \ rS rSr\S 5       rS r\S 5       r\S 5       r	S r
S rS rS	 rS
rg)CompileMultiPycActioni  c                <  ^	^
 UR                   =(       a    UR                   R                  nUbn  UR                  [        R                  :X  aP  [
        R                  " S5      m	US   m
[        U	4S jU5       5      n[        U
4S jU5       5      nU " UUUUU5      4$ g)Nz&^site-packages[/\\][^\t\n\r\f\v]+\.py$target_python_versionc              3     >#    U  HF  n[        US 5      (       d  M  TR                  UR                  5      (       d  M8  UR                  v   MH     g7f)r   N)getattrr;  r   r   )ry   r   noarch_py_file_res     r]   r|   7CompileMultiPycAction.create_actions.<locals>.<genexpr>  sF      ,C3 34 & &++C,A,AB &%%,s   AAAc              3  <   >#    U  H  n[        UT5      v   M     g 7frU   )r   )ry   pfpy_vers     r]   r|   rS    s     FXrhr622Xs   rb   )r   r   r   r=   r   recompiler   )r   rN   rO   rV   r   r   r   py_files	pyc_filesrR  rV  s            @@r]   rA  $CompileMultiPycAction.create_actions  s     ..W<3P3P3W3W&++1B1B"B "

+T U()@AF , H FXFFI' !  r`   c                    Xl         X l        X0l        X@l        XPl        S U l        U R                  Vs/ s H  n[        U[        R                  S9PM     snU l	        SU l
        g s  snf Nr   F)rN   rO   rV   source_short_pathsr   r	  rC   r>   pyc_fileprefix_paths_datar  )r\   rN   rO   rV   r^  r   ps          r]   r^   CompileMultiPycAction.__init__  sv     $7 (*"4"4 $ ,,"

 -	 "++ -"
 $) "
s   "A%c                8   ^ ^ S mUU 4S jT R                   5       $ )Nc                :    U b  Uc  g [        U [        U5      5      $ rU   r   r   prefix
short_paths     r]   join_or_none=CompileMultiPycAction.target_full_paths.<locals>.join_or_none  !    ~!3FK
$;<<r`   c              3  J   >#    U  H  nT" TR                   U5      v   M     g 7frU   rV   ry   ra  ri  r\   s     r]   r|   :CompileMultiPycAction.target_full_paths.<locals>.<genexpr>  #     U=TT//33=T    #)r   r\   ri  s   `@r]   r   'CompileMultiPycAction.target_full_paths      	= VT=T=TUUr`   c                8   ^ ^ S mUU 4S jT R                   5       $ )Nc                :    U b  Uc  g [        U [        U5      5      $ rU   re  rf  s     r]   ri  =CompileMultiPycAction.source_full_paths.<locals>.join_or_none  rk  r`   c              3  J   >#    U  H  nT" TR                   U5      v   M     g 7frU   rm  rn  s     r]   r|   :CompileMultiPycAction.source_full_paths.<locals>.<genexpr>  rp  rq  )r^  rr  s   `@r]   source_full_paths'CompileMultiPycAction.source_full_paths  rt  r`   c                    SU l         g r   rq   rc   s    r]   rd   CompileMultiPycAction.verify  r   r`   c                    g rU   rb   rc   s    r]   rn   CompileMultiPycAction.cleanup  r   r`   c                `   [         R                  [        SSR                  U R                  5      5        U R                  S   n[        U5      n[        U R                  [        U5      5      n[        UU R                  U R                  U R                  U R                  S   5        SU l
        g )Nzcompiling %s rO  T)r  r   r   r   rN   r   rV   r   r)   rz  r  )r\   rO  python_short_pathpython_full_paths       r]   rh   CompileMultiPycAction.execute  s    
 	~sxx0F0F'GH $ 8 89P Q12GH 2 2K@Q4RS""""$$%<=	
 $( r`   c                    U R                   (       aS  [        R                  [        SSR                  U R                  5      5        U R                   H  n[        U5        M     g g )Nzreversing pyc creation %sr  )r  r  r   r   r   r2   )r\   r   s     r]   rk   CompileMultiPycAction.reverse  sO    ##GG2CHHT=S=S4T %)$:$: &' %;	 $r`   )	r  rr   rO   r	  r`  r^  rV   r   rN   N)r   r   r   r   r%  rA  r^   r   r   rz  rd   rn   rh   rk   r   rb   r`   r]   rM  rM    sY     >). V V V V($(r`   rM  c                  ,   ^  \ rS rSrSrU 4S jrSrU =r$ )AggregateCompileMultiPycActioni  zBunch up all of our compile actions, so that they all get carried out at once.
This avoids clobbering and is faster when we have several individual packages requiring
compilation.
c                ,  > US   R                   nUS   R                  nUS   R                  n[        5       n[        5       nU H9  nUR	                  UR
                  5        UR	                  UR                  5        M;     [        T	U ]!  UUUUU5        g )Nr   )	rN   rO   rV   setupdater^  r   r   r^   )
r\   individualskwrN   rO   rV   r^  r   
individualr   s
            r]   r^   'AggregateCompileMultiPycAction.__init__  s    )!n@@"1~22#A44 U U%J%%j&C&CD%%j&C&CD & 		
r`   rb   )r   r   r   r   r   r^   r   r   r   s   @r]   r  r    s    

 
r`   r  c                  D   ^  \ rS rSr\S 5       rU 4S jrS rS rSr	U =r
$ )CreatePythonEntryPointActioni!  c                t  ^ ^^^^^ TR                   =(       a    TR                   R                  nUb  UR                  [        R                  :X  ah  S m[        U UUUU4S jUR                  =(       d    S5       5      n[        (       a-  U[        UUUU4S jUR                  =(       d    S5       5      -  nU$ g)Nc                \    [        U 5      u  pn[         SU 3n[        (       a  US-  nXBU4$ )N/z
-script.py)r   r   r   )r   r  modulefuncr   s        r]   this_tripletACreatePythonEntryPointAction.create_actions.<locals>.this_triplet)  s=    (=o(N%'4oQwi$@!6%5%($66r`   c              3  F   >#    U  H  nT" TTT/T" U5      Q76 v   M     g 7frU   rb   )ry   ep_defr   rO   rV   r  rN   s     r]   r|   >CreatePythonEntryPointAction.create_actions.<locals>.<genexpr>0  s9       8F ' ! "&)	 8s   !rb   c              3  V   >#    U  H  n[         R                  TTTTU5      v   M      g 7frU   )r   r  )ry   r  rO   r   rV   rN   s     r]   r|   r  ;  s;      	! #< #OO+$%+  #<s   &))r   r   r   r=   r   r   entry_pointsr   )r   rN   rO   rV   r   r   actionsr  s   `````  @r]   rA  +CreatePythonEntryPointAction.create_actions"  s     ..W<3P3P3W3W&++1B1B"B7    %117R G v5 	! #)"5"5";	! 	 	 Nr`   c                   > [         TU ]  UUS S UU5        XPl        X`l        [        (       a  [
        R                  nO[
        R                  n[        U R                  US9U l
        SU l        g r]  )r   r^   r  r  r   r>   !windows_python_entry_point_scriptunix_python_entry_pointrC   r   r	  r  )	r\   rN   rO   rV   r   r  r  r   r   s	           r]   r^   %CreatePythonEntryPointAction.__init__J  sn     		
 	6 BBI 88I *((!

 $) r`   c                n   [         R                  [        SU R                  5        [        (       a  S nOPU R                  S   n[        U5      n[        [        R                  =(       d    U R                  [        U5      5      n[        U R                  XR                  U R                  5        SU l        g )Nzcreating python entry point %srO  T)r  r   r   r   rN   r   r   r   r.  rV   r   r-   r  r  r  )r\   r  rO  r  s       r]   rh   $CreatePythonEntryPointAction.executei  s    79N9NO6#$($<$<=T$U! 56K L#..D$2D2D-. 
 	"!!#3[[$))	
 $( r`   c                    U R                   (       a;  [        R                  [        SU R                  5        [	        U R                  5        g g )Nz(reversing python entry point creation %s)r  r  r   r   r2   rc   s    r]   rk   $CreatePythonEntryPointAction.reversez  s:    ##GGA4CXCX $''(	 $r`   )r  r  r  r	  rK  r   s   @r]   r  r  !  s*    % %N)>(") )r`   r  c                  D   ^  \ rS rSr\S 5       rU 4S jrS rS rSr	U =r
$ )CreatePrefixRecordActioni  c           	     V    UR                   nS[        U5       S3nU " UUUUUUU5      4$ )Nzconda-meta/z.json)r   r
   )	r   rN   rO   rV   r   requested_specall_link_path_actionsr   r   s	            r]   rA  'CreatePrefixRecordAction.create_actions  sM     !- B B)(3H*I)J%P#!#%

 
	
r`   c                t   > [         TU ]  UUS S UU5        XPl        X`l        [	        U5      U l        SU l        g r  )r   r^   r   r  listr  r  )	r\   rN   rO   rV   r   r   r  r  r   s	           r]   r^   !CreatePrefixRecordAction.__init__  sH     		
 $7 ,%)*?%@"#( r`   c                  ^^ [        U R                  R                  U R                  S9nU R                  R                  nU R                  R                  nS mS m[        [        R                  " U4S jU R                  5       5      5      n[        S[        R                  " U4S jU R                  5       5      S9n[        R                  " U R                  R                  U R                  R                  [        U R                  5      UUUU R                  R                   UUS9	U l        [$        R%                  [&        S	U R(                  5        [+        U R,                  5      R/                  U R"                  5        S
U l        g )N)sourcer   c                    [        U [        5      (       a  U R                  $ [        U [        5      (       a<  [	        U S5      (       a  U R
                  [        R                  :w  a  U R                  4$ S$ )Nr   rb   )	
isinstancerM  r   r   hasattrr   r<   r   r   link_path_actions    r]   files_from_action;CreatePrefixRecordAction.execute.<locals>.files_from_action  sm    *,ABB'::: ""24LMM#$4kBB+559K9KK	 &779 r`   c                    [        U [        5      (       a  U R                  $ [        U S5      (       a  U R                  c  gU R                  4$ )Nr	  rb   )r  rM  r`  r  r	  r  s    r]   paths_from_action;CreatePrefixRecordAction.execute.<locals>.paths_from_action  sL    *,ABB'999   02DEE'88@,==??r`   c              3  D   >#    U  H  o(       d  M  T" U5      v   M     g 7frU   rb   )ry   xr  s     r]   r|   3CreatePrefixRecordAction.execute.<locals>.<genexpr>  s#       .HA$!!$$.H   
  rF   c              3  D   >#    U  H  o(       d  M  T" U5      v   M     g 7frU   rb   )ry   r  r  s     r]   r|   r    s#      &.HA$!!$$.Hr  )paths_versionr   )r  r   fileslinkurlr   package_tarball_full_pathz!creating linked package record %sT)r@   rO   r   r   r  r  r   from_iterabler  rD   rE   r  r   r   r-  r  r  prefix_recordr  r   r   rL   rV   insertr  )r\   r  r   r  r  r   r  r  s         @@r]   rh    CreatePrefixRecordAction.execute  sR   $$::))
 !% 1 1 G G$($5$5$O$O!	
	@   .2.H.H  

 %% &.2.H.H& 

 *66--..t223!!!%%"7&?
 	:D<Q<QR4%%&--d.@.@A#' r`   c                    [         R                  [        SU R                  5        U R                  (       aC  [	        U R
                  5      R                  U R                  R                  R                  5        g g )Nz+reversing linked package record creation %s)
r  r   r   r  rL   rV   rG  rO   r   r  rc   s    r]   rk    CreatePrefixRecordAction.reverse  sZ    @$BWBW	
 ##t))*11!!1166 $r`   )r  r  r  r   r  rK  r   s   @r]   r  r    s,     
 
.).=(~ r`   r  c                  J   ^  \ rS rSr\S 5       rU 4S jrS rS rS r	Sr
U =r$ )UpdateHistoryActioni  c                6    [        SS5      nU " UUUUUU5      4$ )Nz
conda-metahistory)r   )r   rN   rV   rY   rZ   r[   r   s          r]   rA  "UpdateHistoryAction.create_actions  s5     !y9#!	
 		
r`   c                   > [         TU ]  US S S X#5        X@l        XPl        X`l        U R
                  [        -   U l        g rU   )r   r^   rY   rZ   r[   r   r   rP   )r\   rN   rV   r   rY   rZ   r[   r   s          r]   r^   UpdateHistoryAction.__init__  sD     	tT=	
 )(,..1EEr`   c                n   [         R                  [        SU R                  5        [        U R                  5      (       a   [	        U R                  U R
                  5        [        U R                  5      nUR                  5         UR                  U R                  U R                  U R                  5        g )Nzupdating environment history %s)r  r   r   r6   r*   rP   r:   rV   r  write_specsrY   rZ   r[   )r\   hs     r]   rh   UpdateHistoryAction.execute%  sy    8$:O:OP4(())&&7D&&'	
	d''):):D<O<OPr`   c                    [        U R                  5      (       aP  [        R                  [        SU R                  U R                  5        [        U R                  U R                  SS9  g g Nmoving %s => %sTr  r6   rP   r  r   r   r8   rc   s    r]   rk   UpdateHistoryAction.reverse/  I    4>>""GGE,dnnd>S>ST4>>4+@+@M #r`   c                .    [        U R                  5        g rU   r2   rP   rc   s    r]   rn   UpdateHistoryAction.cleanup4      dnnr`   )rP   r[   rY   rZ   r   r   r   r   r%  rA  r^   rh   rk   rn   r   r   r   s   @r]   r  r    s1    
 
(F$QN
 r`   r  c                  B    \ rS rSrS rS rS rS rS r\	S 5       r
Srg	)
!RegisterEnvironmentLocationActioni8  c                *    Xl         X l        SU l        g r  rN   rV   r  r\   rN   rV   s      r]   r^   *RegisterEnvironmentLocationAction.__init__9      #6 *#( r`   c                    [        5       n [        USSS9  SU l        g ! [         a    [        R                  SU5         g f = f)NT)mkdir	sudo_safezRUnable to create environments file. Path not writable.
  environment location: %s
)rG   r9   rr   r%   r  warning)r\   user_environments_txt_files     r]   rd   (RegisterEnvironmentLocationAction.verify?  sG    %C%E"	,DDI!DN 	KK/*	s     AAc                    [         R                  [        SU R                  5        [        U R                  5        SU l        g )Nz%registering environment in catalog %sT)r  r   rV   rH   r  rc   s    r]   rh   )RegisterEnvironmentLocationAction.executeK  s/    >@R@RST''(#' r`   c                    g rU   rb   rc   s    r]   rk   )RegisterEnvironmentLocationAction.reverseQ      r`   c                    g rU   rb   rc   s    r]   rn   )RegisterEnvironmentLocationAction.cleanupT  r  r`   c                    [        5       erU   r   rc   s    r]   r   2RegisterEnvironmentLocationAction.target_full_pathW  r   r`   r  rr   rV   rN   Nr   r   r   r   r^   rd   rh   rk   rn   r   r   r   rb   r`   r]   r  r  8  s/    )
( $ $r`   r  c                  .   ^  \ rS rSrU 4S jrS rSrU =r$ )RemoveFromPrefixPathActionia  c                2   > [         TU ]  XU5        X l        g rU   )r   r^   linked_package_datar\   rN   r  rV   r   r   s        r]   r^   #RemoveFromPrefixPathAction.__init__b  s     	,=NO#6 r`   c                    SU l         g r   rq   rc   s    r]   rd   !RemoveFromPrefixPathAction.verifyh  s     r`   )rr   r  )r   r   r   r   r^   rd   r   r   r   s   @r]   r  r  a  s    7 r`   r  c                  T   ^  \ rS rSr\R
                  4U 4S jjrS rS rS r	Sr
U =r$ )UnlinkPathActionin  c                   > [         TU ]  XX45        U R                  [        -   U l        U R
                  [        -   U l        XPl        g rU   )r   r^   r   r   holding_short_pathr   holding_full_pathr   )r\   rN   r  rV   r   r   r   s         r]   r^   UnlinkPathAction.__init__o  sF     	m	
 #'"8"8;O"O!%!6!69M!M"r`   c                    U R                   [        R                  :w  aP  [        R                  [        SU R
                  U R                  5        [        U R                  U R                  SS9  g g )Nzrenaming %s => %sTr  )
r   r<   r   r  r   r   r  r8   r   r  rc   s    r]   rh   UnlinkPathAction.execute~  sX    >>X///GG#&&''	 400$2H2HPTU 0r`   c                   U R                   [        R                  :w  ak  [        U R                  5      (       aP  [
        R                  [        SU R                  U R                  5        [        U R                  U R                  SS9  g g g )Nzreversing rename %s => %sTr  )r   r<   r   r6   r  r  r   r  r   r8   r   rc   s    r]   rk   UnlinkPathAction.reverse  sl    >>X///GD<R<R4S4SGG+''&&	 41143H3HPTU 5T/r`   c                b    [        U R                  5      (       d  [        U R                  SS9  g g )NTr"  )r   r  r2   rc   s    r]   rn   UnlinkPathAction.cleanup  s(    T++,,$((dC -r`   )r  r  r   )r   r   r   r   r<   r  r^   rh   rk   rn   r   r   r   s   @r]   r  r  n  s+     ###VVD Dr`   r  c                  J   ^  \ rS rSr\S 5       rU 4S jrS rS rS r	Sr
U =r$ )RemoveMenuActioni  c                L   ^ ^^^ [        U UUU4S jTR                  5       5      $ )Nc              3     >#    U  H5  n[        [        R                  U5      5      (       d  M(  T" TTTU5      v   M7     g 7frU   )r9  r:  r;  )ry   r   r   r  rV   rN   s     r]   r|   2RemoveMenuAction.create_actions.<locals>.<genexpr>  s<      
1HNN4() OC#%8-NN1s
   'A A )r   r  )r   rN   r  rV   s   ````r]   rA  RemoveMenuAction.create_actions  s#     
+11
 
 	
r`   c                &   > [         TU ]  XX45        g rU   r   r^   r  s        r]   r^   RemoveMenuAction.__init__       	m	
r`   c                    [         R                  [        SU R                  5        [        U R                  U R                  SS9  g )Nzremoving menu for %s TrF  r  r   rV   r/   r   rc   s    r]   rh   RemoveMenuAction.execute  s1    .0B0BC$$$d&<&<TJr`   c                    [         R                  [        SU R                  5        [        U R                  U R                  SS9  g )Nzre-creating menu for %s FrF  r  rc   s    r]   rk   RemoveMenuAction.reverse  s1    143E3EF$$$d&<&<UKr`   c                    g rU   rb   rc   s    r]   rn   RemoveMenuAction.cleanup  r  r`   rb   r  r   s   @r]   r  r    s0    
 

KL r`   r  c                  @   ^  \ rS rSrU 4S jrU 4S jrU 4S jrSrU =r$ )RemoveLinkedPackageRecordActioni  c                &   > [         TU ]  XX45        g rU   r  r  s        r]   r^   (RemoveLinkedPackageRecordAction.__init__  r  r`   c                   > [         TU ]  5         [        U R                  5      R	                  U R
                  R                  5        g rU   )r   rh   rL   rV   rG  r  r  r\   r   s    r]   rh   'RemoveLinkedPackageRecordAction.execute  s2    4%%&--d.F.F.K.KLr`   c                ~   > [         TU ]  5         [        U R                  5      R	                  U R
                  5        g rU   )r   rk   rL   rV   _load_single_recordr   r%  s    r]   rk   'RemoveLinkedPackageRecordAction.reverse  s,    4%%&::4;P;PQr`   rb   )	r   r   r   r   r^   rh   rk   r   r   r   s   @r]   r!  r!    s    
MR Rr`   r!  c                  B    \ rS rSrS rS rS rS rS r\	S 5       r
Srg	)
#UnregisterEnvironmentLocationActioni  c                *    Xl         X l        SU l        g r  r  r  s      r]   r^   ,UnregisterEnvironmentLocationAction.__init__  r  r`   c                    SU l         g r   rq   rc   s    r]   rd   *UnregisterEnvironmentLocationAction.verify  r   r`   c                    [         R                  [        SU R                  5        [        U R                  5        SU l        g )Nz'unregistering environment in catalog %sT)r  r   rV   rI   r  rc   s    r]   rh   +UnregisterEnvironmentLocationAction.execute  s/    @$BTBTUt))*#' r`   c                    g rU   rb   rc   s    r]   rk   +UnregisterEnvironmentLocationAction.reverse  r  r`   c                    g rU   rb   rc   s    r]   rn   +UnregisterEnvironmentLocationAction.cleanup  r  r`   c                    [        5       erU   r   rc   s    r]   r   4UnregisterEnvironmentLocationAction.target_full_path  r   r`   r  Nr  rb   r`   r]   r+  r+    s/    )( $ $r`   r+  c                  l    \ rS rSr   SS jrS rSS jr SS jrSS jrS r	S	 r
\S
 5       rS rSrg)CacheUrlActioni  Nc                |    Xl         X l        X0l        X@l        XPl        X`l        U R                  [        -   U l        g rU   )	r  target_pkgs_dirtarget_package_basenamer  sizemd5r   r   rP   )r\   r  r;  r<  r  r=  r>  s          r]   r^   CacheUrlAction.__init__  s7     .'>$	..1EEr`   c                6    SU R                   ;  d   eSU l        g )Nz::T)r  rr   rc   s    r]   rd   CacheUrlAction.verify  s    488###r`   c                   SSK Jn  U" U R                  5      n[        R                  [        SU R
                  U R                  5        [        U R                  5      (       a  [        U R                  5        [        U R                  5      (       ac  U R
                  R                  S5      (       a$  U R
                  [        U R                  5      :X  a  g [        U R                  U R                  SS9  U R
                  R                  S5      (       a(  [        U R
                  5      nU R                  XCU5        g U R                  X15        g )NrF   PackageCacheDatazcaching url %s => %szfile:/Tr  )package_cache_datarD  r;  r  r   r  r   r6   rP   r2   
startswithr!   r8   r   _execute_local_execute_channel)r\   progress_update_callbackrD  target_package_cacher3  s        r]   rh   CacheUrlAction.execute  s     	9/0D0DE-txx9N9NO4>>""$..!4(())xx""8,,[%%> 2 t44dnnDQ88x((%dhh/K3K !!"6Qr`   c                J   SSK Jn  [        U5      [        R                  ;   a  [        XR                  5        U" [        U5      5      nUR                  R                  U R                  5      nU(       a<  [        U[        R                  5      (       a  UR                  R                  U5        g g g [        US5      nU R                  4nUR                  XUS9n	U	(       a&  UR                  R                  U	R                   5      nOS n[#        UU R                  [$        R&                  [        R(                  S9  U(       a;  [        U[        R                  5      (       a  UR                  R                  U5        g UR                  R                  U R*                  5        g )NrF   rC  r>  )exclude_caches)r   r  )rE  rD  r   r   	pkgs_dirsr+   r   
_urls_dataget_urlr<  r    known_subdirsadd_urlr4   r;  tarball_file_in_cacher   r,   r<   r*   r  r  )
r\   r3  rJ  rI  rD  source_package_cache
origin_urlsource_md5sumrM  pc_entrys
             r]   rG  CacheUrlAction._execute_local  sT    	9;7#4#44$[2G2GH#3GK4H#I 
 .88@@,,J l:w7L7LMM$//77
C Nz (U;M"224N'==> > H 1<<DD22
 "
 %%"--mm	 l:w7L7LMM$//77
C$//77Ar`   c                R   0 nU R                   b  U R                   US'   U R                  (       a  U R                  US'   O U R                  (       a  U R                  US'   [        U R                  U R
                  4SU0UD6  UR                  R                  U R                  5        g )Nr=  r  r>  rI  )r=  r  r>  r(   r  r   rO  rR  )r\   rJ  rI  kwargss       r]   rH  CacheUrlAction._execute_channelO  s    99 !YYF6N;;#{{F8XX HHF5MHH!!	
 &>	
 		
 	''//9r`   c                    [        U R                  5      (       aP  [        R                  [        SU R                  U R                  5        [        U R                  U R                  SS9  g g r  r  rc   s    r]   rk   CacheUrlAction.reverse_  r  r`   c                .    [        U R                  5        g rU   r  rc   s    r]   rn   CacheUrlAction.cleanupd  r  r`   c                B    [        U R                  U R                  5      $ rU   )r   r;  r<  rc   s    r]   r   CacheUrlAction.target_full_pathg  s    D(($*F*FGGr`   c                @    SU R                   < SU R                  < S3$ )NzCacheUrlAction<url=, target_full_path=>)r  r   rc   s    r]   __str__CacheUrlAction.__str__k  s$    $TXXL0CDDYDYC\\]^^r`   )rr   rP   r>  r  r=  r<  r;  r  )NNNrU   )r   r   r   r   r^   rd   rh   rG  rH  rk   rn   r   r   re  r   rb   r`   r]   r9  r9    sX     F"R< KO6Bp: N
 H H_r`   r9  c                  L    \ rS rSrS rS rSS jrS rS r\	S 5       r
S	 rS
rg)ExtractPackageActionio  c                    Xl         X l        X0l        U R                  [        -   U l        X@l        XPl        X`l        Xpl	        g rU   )
r   r;  target_extracted_dirnamer   r   rP   record_or_specr  r=  r>  )r\   r   r;  rj  rk  r  r=  r>  s           r]   r^   ExtractPackageAction.__init__p  s>     !1.(@%..1EE,	r`   c                    SU l         g r   rq   rc   s    r]   rd   ExtractPackageAction.verify  r   r`   Nc           
     V   SSK Jn  [        R                  [        SU R                  U R
                  5        [        U R
                  5      (       a  [        U R
                  5        [        U R                  U R
                  US9   [        U R
                  5      n[!        U R"                  [$        5      (       Ga  U R"                  R'                  S5      nU(       d   e[)        U[*        R,                  5      (       a  [/        U5      O
[/        S 5      n[1        U5      nU R2                  =(       d    [5        U R                  S5      n[7        U R                  5      nU R8                  b!  XR8                  :X  d   XR8                  45       eU R:                  =(       d    [5        U R                  S	5      n	[<        R>                  " WUUUUUU	S
9n
O![<        R>                  " U R"                  W5      n
[A        U R
                  SS5      n[C        X5        U" U RD                  5      n[F        R>                  " U
U R                  U R
                  S9nURI                  U5        g ! [        [        [        4 a3    [        SU R                   S35        [        R                  " S5         GNf = f)NrF   rC  zextracting %s => %s)rI  z.ERROR: Encountered corrupt package tarball at zS. Conda has left it in place. Please report this to the maintainers of the package.r  r  r>  )r  channelfnr  r=  r>  infozrepodata_record.json)r  r   )%rE  rD  r  r   r   r   r6   r2   r.   r7   OSErrorr   FileNotFoundErrorprintsysexitr  rk  r?   get_raw_valuer    r   rQ  r;   r
   r  r4   r   r=  r>  rB   r  r   r1   r;  rA   r  )r\   rI  rD  raw_index_jsonr  rp  rq  r  r=  r>  r   repodata_record_pathrJ  package_cache_records                 r]   rh   ExtractPackageAction.execute  sI    	9($*?*?AVAV	
 4(())$''(!!!!%=	

	,T-B-BCN d))955%%33E:CJ3  W%:%:;; T] 
 #B[[PK0E0Ex$PF4001Dyy$yy(;4*;;(((Gk$*?*?GC+88O ,88##^O  $!!6+A 
 	2D/0D0DE1>>&*&;&;"&"7"7 

 	##$89c *;< 	 @AVAV@W X" "
 HHQK	s   I   AJ('J(c                .   [        U R                  5        [        U R                  5      (       af  [        R	                  [
        SU R                  U R                  5        [        U R                  5        [        U R                  U R                  5        g g )Nr  )r2   r   r6   rP   r  r   r8   rc   s    r]   rk   ExtractPackageAction.reverse  sc    d##$4>>""GGE,dnnd>S>ST$''(4>>4+@+@A #r`   c                .    [        U R                  5        g rU   r  rc   s    r]   rn   ExtractPackageAction.cleanup  r  r`   c                B    [        U R                  U R                  5      $ rU   )r   r;  rj  rc   s    r]   r   %ExtractPackageAction.target_full_path  s    D(($*G*GHHr`   c                @    SU R                   < SU R                  < S3$ )Nz&ExtractPackageAction<source_full_path=rc  rd  )r   r   rc   s    r]   re  ExtractPackageAction.__str__  s(    78M8M7PPcdhdydyc||}~~r`   )	rr   rP   r>  rk  r  r=  r   rj  r;  rU   )r   r   r   r   r^   rd   rh   rk   rn   r   r   re  r   rb   r`   r]   rh  rh  o  s:    &E:NB I Ir`   rh  )r   
__future__r   rW  rv  abcr   r   r   	itertoolsr   jsonr   loggingr	   os.pathr
   r   r   r   r   typingr   uuidr   r   r   
auxlib.ishr   base.constantsr   base.contextr   common.compatr   common.constantsr   common.pathr   r   r   r   r   r   r   r   
common.urlr    r!   deprecationsr"   
exceptionsr#   r$   r%   r&   r'   gateways.connection.downloadr(   gateways.disk.creater)   r*   r+   r,   r-   r.   r/   r0   r1   gateways.disk.deleter2   gateways.disk.permissionsr3   gateways.disk.readr4   r5   r6   r7   gateways.disk.updater8   r9   r  r:   models.channelr;   models.enumsr<   r=   r>   models.match_specr?   models.recordsr@   rA   rB   rC   rD   rE   envs_managerrG   rH   rI   portabilityrJ   rK   prefix_datarL   collections.abcrM   rt  	NameErrorIOErrorr   r  rX  
IGNORECASEr:  rx   rR   constantr   r   r   r   r   r   r6  rM  r  r  r  r  r  r  r  r  r!  r+  r9  rh  rb   r`   r]   <module>r     sX   Q " 	 
 9 9     ; ;      1 " " $	 	 	 3 %  4
 
 
 ) 5 N N 8  $ 9 9 )  W V 5 #(  ::("--8 UI UIp   


<$7 $$f $zW 0P/7 P>PG- PGfY(n Y(x'O- 'OTl(O l(^
%: 
2^)#; ^)Bx7 xv82 8v!$
 !$R
!1W 
&D1 &DR1 8R&6 R"$* $@H_Z H_Vm: mA)    s   )I II