+
    :1j'"                         R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	 ^ RI
HtHtHtHtHtHtHt R R ltR tR R ltR	 tR
 t]P.                  ! R]P0                  4      tR tR tRR ltRR ltR tR tR# )zdCLI implementation for `conda package`.

Provides some low-level tools for creating conda packages.
N)ArgumentParser	Namespace_SubParsersAction)abspathbasenamedirnameisdirisfileislinkjoinc                0    V ^8  d   QhR\         R\        /# )   sub_parsersreturn)r   r   )formats   "6lib/python3.14/site-packages/conda/cli/main_package.py__annotate__r      s     7 7"3 7. 7    c           	         ^RI Hp RpTpRpV P                  ! R!RVRVRV/VB pV! V4       VP                  RRR	R
RRR7       VP                  RRRRR7       VP                  RRRRR7       VP                  RRRRR7       VP                  RRRRR7       VP                  RR^ RR7       VP	                  RR 7       V# )"   )add_parser_prefixz/Create low-level conda packages. (EXPERIMENTAL) helpdescriptionepilogz-wz--whichPATH+storezEGiven some file's PATH, print which conda package the file came from.)metavarnargsactionr   z-rz--reset
store_truez$Remove all untracked files and exit.)r    r   z-uz--untrackedz%Display all untracked files and exit.z
--pkg-nameunknownz4Designate package name of the package being created.)r    defaultr   z--pkg-version0.0z7Designate package version of the package being created.z--pkg-buildz<Designate package build number of the package being created.zconda.cli.main_package.execute)func)package)helpersr   
add_parseradd_argumentset_defaults)r   kwargsr   summaryr   r   ps   &,     r   configure_parserr.      s(   *?GKF 		  	 		
 	A aNNT   NN3	   NN4	   NNC	   NNF	   NNK	   NN8N9Hr   c                &   \        4       pV F>  p\        W4      pVP                  \        V4      4       \        P
                  ! V4       K@  	  \        V\        RR7       F  p \        P                  ! V4       K  	  R#   \         d     K.  i ; i)z Remove files for a given prefix.T)keyreverseN)
setr   addr   osunlinksortedlenrmdirOSError)prefixfilesdst_dirsfdstpaths   &&    r   remover@   K   sp    uH6oWS\"
		# 
 xS$7	HHTN 8  		s   %BBBc                <    V ^8  d   QhR\         R\        R\        /# )r   argsparserr   )r   r   int)r   s   "r   r   r   Z   s!      ) ^  r   c                 |   ^RI Hp ^RIHp VP                  pV P
                  '       dI   V P
                   F6  p\        V4       F$  p\        V:R RVP                  4       : 24       K&  	  K8  	  ^ # \        RV4       V P                  '       d   \        WC! V4      4       ^ # V P                  '       dC   \        V! V4      4      p\        R\        V4      ,          4       V F  p\        V4       K  	  ^ # \        VV P                  P                  4       V P                   \#        V P$                  4      R7       ^ # )r   context	untracked50z  z	# prefix:z# untracked files: %d)nameversionbuild_number)base.contextrG   miscrI   target_prefixwhichwhich_packageprintdist_strresetr@   r6   r7   make_tarbz2pkg_namelowerpkg_versionrD   	pkg_build)	rB   rC   rG   rI   r:   r?   precr;   fns	   &&       r   executer]   Z   s    & ""FzzzJJD%d+T4==?;< ,  	+vzzzvy()~~~y()%E
23B"I ]]  "  (	 r   c                     ^RI Hp V! V 4      P                  4        F%  pVR,          V8X  g   K  \        VR,          4      u # 	  R# )r   
PrefixDatarK   rL   N)core.prefix_datar`   iter_recordsstr)r:   rK   r`   infos   &&  r   get_installed_versionre   |   s=    -6"//1<4tI'' 2 r   c           
         ^RI Hp \        V VVP                  VP                  \        V4      \        V4      . R7      pV'       d:   RV,          VR,          ,           VR&   VR,          P                  RV,          4       V# )r   rF   )rK   rL   platformarchrM   builddependszpy%d%d_ri   rj   zpython %d.%d*)rN   rG   dictrg   	arch_namerD   rc   append)rK   rL   rM   requires_pyrG   ds   &&&&  r   create_inforp      sr    &!!&,	A +-7;'
	)Ok9:Hr   z^#!.+$c                 b   ^RI Hp \        VR4      P                  ^4      R8w  d   R# \        V4      ;_uu_ 4       pVP                  4       pRRR4       \        P                  X4      pV'       d   RVP                  4       9   g   R# \        P                  RV R2V^R7      p\        V \        V4      4      p\        VR	4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! V\        R
^4      4       R#   + '       g   i     L; i  + '       g   i     LF; i)r   )PREFIX_PLACEHOLDERrbz#!FNpythonz/bin/python)countw755T)base.constantsrr   openreadshebang_patmatchgroupsubr   r   writer4   chmodrD   )tmp_dirr?   rr   fidatamtmp_pathfos   &&      r   fix_shebangr      s    3D$Q4'	drwwy 
$A(aggi'??R 23;?Q?ODGXd^,H	h		
 
HHXs5!}% 
 
	s   DDD	D.	c                    ^RI Hp \        VR4      p\        P                  ! V4       \        \        VR4      R4      ;_uu_ 4       pV F  pVP                  VR,           4       K  	  RRR4       \        \        VR4      R4      ;_uu_ 4       pVP                  WGRR	7       RRR4       V'       dI   \        \        VR
4      R4      ;_uu_ 4       pV F  pVP                  VR,           4       K  	  RRR4       \        P                  ! V4       F%  p	V P                  \        Wi4      RV	,           4       K'  	  R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lw; i)r   )jsonrd   r;   rv   
Nz
index.jsonT)	sort_keys
has_prefixzinfo/)
common.serializer   r   r4   mkdirry   r   dumplistdirr3   )
tr   r;   r   rd   r   info_dirr   r=   r\   s
   &&&&&     r   _add_info_dirr      s    'GV$HHHX	d8W%s	+	+rAHHQX  
, 
d8\*C	0	0B		$d	+ 
1 $x.44T"   5 jj"	d8 'B,/ # 
,	+ 
1	0 54s$   "D<E"E"<E	E	"E2	c                8   ^RI Hp \        V4      p. p. p\        P                  ! 4       p\
        P                  ! VR4      p	\        P                  ! R4      p
V EF  pVP                  R4      '       g&   VP                  R4      '       g   RV9   g   VR8X  d   \        RV R24      h\        W4      pVP                  R	4      '       d8   \        W4      '       d'   \        V\        V4      4      pVP                  V4       V	P!                  W4       V
P#                  VP%                  R
4      4       V
P#                  R4       \'        V4      '       d   \(        P*                  ! V4      p\-        V\.        4      '       d   V
P#                  \1        VR
4      4       MV
P#                  V4       VP                  R4      '       d   VP                  RV RV 24       EK  EK  \3        V4      '       g   EK  V
P#                  \        VR4      P5                  4       4       VP                  R4      '       g   EK  VP                  RV 24       EK  	  V
P7                  4       VR&   V'       d	   V! V4       \9        WWV4       V	P;                  4        V! V4       V# )z5Create a conda package and return a list of warnings.)rmtreezw:bz2sha1/\r   zInvalid file path: zF. Must be not empty. Cannot start or end with '/'. Cannot contain '\'.zbin/zutf-8    z found symlink to absolute path: z -> rs   z	.egg-linkzfound egg link: 	file_hash)gateways.disk.deleter   r6   tempfilemkdtemptarfilery   hashlibnew
startswithendswith
ValueErrorr   r   r   rm   r3   updateencoder
   r4   readlink
isinstancerc   bytesr	   rz   	hexdigestr   close)r:   r;   rd   tar_pathupdate_infor   warningsr   r   r   hr=   r?   links   &&&&&         r   create_conda_pkgr      s   -5MEHJ GXw'AFA<<

3419R%aS )X X  F<<K$>$>$0Da 	d	'"#	$<<;;t$D$$$tW-.s##"B1#T$ PQ $D\\HHT$%**,-}}[))"21# 671 4 DD!e6GGI
7OOr   c                    ^RI Hp ^RIHp Vf	   V! V 4      p\	        R\        V4      ,          4       \        V4      ^ 8X  d   \	        R4       R# \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       du   \        V R	4      pVf   \        R
4      h\        ;QJ d*    . R VR,          P                  R4       4       F  NK  	  5M#! R VR,          P                  R4       4       4      pMRp\        WW84      p	RP                  ! R/ V	B V,           p
\        WW4       \	        R4       \	        V
4       V
# )r   )CONDA_PACKAGE_EXTENSION_V1rH   Nz# files: %dz# failed: nothing to doc              3   ,   "   T F
  pR V9   x  K  	  R# 5i)z/site-packages/N ).0r=   s   & r   	<genexpr>make_tarbz2.<locals>.<genexpr>   s     
15a!5s   TFrt   z*Python must be installed in target prefix.c              3   8   "   T F  p\        V4      x  K  	  R # 5iN)rD   )r   xs   & r   r   r      s     J,IqCFF,Is   :N   N.z{name}-{version}-{build}z	# successr   )rx   r   rO   rI   rS   r7   anyre   r   tuplesplitrp   r   r   )r:   rK   rL   rM   r;   r   rI   python_versionrn   rd   	tarbz2_fns   &&&&&      r   rV   rV      s   ; }&!	-#e*
$%
5zQ'(
s
15
1sss
15
111.vx@!IJJeJN2,>,D,DS,IJeeJN2,>,D,DS,IJJtl@D+22:T:>XXIVD4	+	)r   c              #    a aa"   ^RI Ho ^RIHp \	        S 4      o \        S 4      oSf   ^RIHp V! RS  24      hV! S4      P                  4        Fo  p\        ;QJ d2    V VV3R lVR,          ;'       g    R
 4       F  '       g   K   RM'	  R	M#! V VV3R lVR,          ;'       g    R
 4       4      '       g   Kk  Vx  Kq  	  R# 5i)zReturn the package containing the path.

Provided the path of a (presumably) conda installed file, iterate over
the conda packages the file came from. Usually the iteration yields
only one package.
)paths_equalr_   N)CondaVerificationErrorz'could not determine conda prefix from: c              3   J   <"   T F  pS! \        SV4      S4      x  K  	  R # 5ir   )r   )r   r=   r?   r   r:   s   & r   r    which_package.<locals>.<genexpr>  s#     O;Na{4?D11;Ns    #r;   TFr   )
common.pathr   ra   r`   r   which_prefix
exceptionsr   rb   r   )r?   r`   r   r[   r   r:   s   f   @@r   rR   rR     s      *-4=D$F~7$'Ntf%UVV6"//13O4=;N;NB;NO333O4=;N;NB;NOOOJ 2s   A3C9CC*C>
Cc                    \        V 4      p \        \        VR4      4      '       d   V# V\        V4      8X  d   R# \        V4      pK=  )zReturn the prefix for the provided path.

Provided the path of a (presumably) conda installed file, return the
environment prefix in which the file in located.
z
conda-metaN)r   r   r   r   )r?   r:   s   & r   r   r   !  s?     T]F
fl+,,MWV_$r   r   )r"   r$       N) __doc__r   r4   rer   r   argparser   r   r   os.pathr   r   r   r   r	   r
   r   r.   r@   r]   re   rp   compileMr{   r   r   r   rV   rR   r   r   r   r   <module>r      sz   
  	 	   A A K K K7tD$ jjBDD)(0**Z6,!r   