
    <Bh*                        S r SSK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  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  SSKJr  SSKJr  SSKJ r   \" \!5      r" " S S\5      r# " S S\
5      r$S r%S r& " S S\	\$S9r'S r(g)z/(Legacy) Low-level implementation of a Channel.    N)	getLogger)
NamedTuple   )
CondaError)Entity
EntityTypeIntegerFieldStringField)CONDA_PACKAGE_EXTENSIONSDEFAULTS_CHANNEL_NAMEUNKNOWN_CHANNEL)context)ensure_text_type)NULL)has_platformis_urljoin_url   )Channel)PackageInfo)PackageRecordc                   R    \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   Srg	)
DistDetails   nameversionbuild_stringbuild_number	dist_namefmt N)__name__
__module____qualname____firstlineno__str__annotations____static_attributes__r!       1lib/python3.13/site-packages/conda/models/dist.pyr   r      s"    
ILN	Hr)   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )DistType$   c                 R  > [        U5      S:X  Ga  U(       Gd  US   nU[        R                  ;   a  [        R                  U   $ [        U[        5      (       a  UnGO%[        U[        5      (       a3  [        R                  UR                  UR                  R                  S9nO[        US5      (       a,  [        UR                  [        5      (       a  UR                  nO[        U[        5      (       a=  [        R                  UR                  R                  UR                  R                  S9nON[        U[        5      (       a$  [        R                  UR                  5       5      nO[        R                  U5      nU[        R                  U'   U$ [         TU ]D  " U0 UD6$ )Nr   r   )channel_overridedist)lenDist_cache_
isinstancer   from_stringfnchannelcanonical_namehasattrr0   r   repodata_recordr   from_urlurlsuper__call__)clsargskwargsvaluer0   	__class__s        r*   r>   DistType.__call__%   s<   t9>&GE$||E**E4((E=11''HHu}}/K/K (  ''Juzz4,H,HzzE;//'')),,%*]]%A%A (  E7++}}UYY[1''."&DLLK7#T4V44r)   r!   )r"   r#   r$   r%   r>   r(   __classcell__rC   s   @r*   r,   r,   $   s    5 5r)   r,   c                 n    [          H*  nU R                  U5      (       d  M  U S [        U5      *  n M,     U $ N)r   endswithr1   )original_distexts     r*   strip_extensionrL   A   s7    '!!#&&)+SXI6M ( r)   c                 6    [        U 5      nX[        U5      S  4$ rH   )rL   r1   )rJ   strippeds     r*   split_extensionrO   H   s     }-H3x=?333r)   c                     ^  \ rS rSr0 rSr\" SSSS9r\" SS9r\" SS9r	\" SS9r
\" SS9r\" SS9r\" SS9r\" SSSS9r\" SSSS9r        S%U 4S jjrS r\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       rS r\S 5       r\S 5       rS&S jrS rS r\\ 4S j5       r!\"S 5       r#\S 5       r$S r%S r&S r'S r(S r)S r*S r+S r,S r-S'S jr.S'S  jr/S! r0S" r1\S# 5       r2S$r3U =r4$ )(r2   M   TF)requirednullable	immutable)rT   c
                 0   > [         T
U ]  UUUUUUUUU	S9	  g )N)	r7   r   r   r   r   r   base_urlplatformr    )r=   __init__)selfr7   r   r   r   r   r   rV   rW   r    rC   s             r*   rX   Dist.__init__]   s2     	%% 	 
	
r)   c           	          [        U R                  U R                  U R                  U R                  U R
                  U R                  S9$ )N)r7   subdirr   r   buildr   )r   r7   rW   r   r   r   r   rY   s    r*   to_package_refDist.to_package_refu   s=    LL==LL##**
 	
r)   c                 "    U R                  5       $ rH   )__str__r^   s    r*   	full_nameDist.full_name   s    ||~r)   c                     U R                   $ rH   )r   r^   s    r*   r]   
Dist.build   s       r)   c                     U R                   $ rH   )rW   r^   s    r*   r\   Dist.subdir   s    }}r)   c                 L    U R                   =(       d    [        U R                  4$ rH   )r7   r   r   r^   s    r*   pair	Dist.pair   s    ||44dnnDDr)   c                     U R                   R                  SS5      SS/-   nUS   US   US   U R                  =(       d    [        4$ )N-r    r   r   )r   rsplitr7   r   )rY   partss     r*   quad	Dist.quad   sH     %%c1-R8Qxq58T\\-R=RRRr)   c                 r    U R                   (       a  U R                    SU R                   3$ U R                  $ N::r7   r   r^   s    r*   rb   Dist.__str__   s+    6:ll$,,r$..!12VVr)   c                 8    U R                   R                  S5      $ )N@)r   rI   r^   s    r*   is_feature_packageDist.is_feature_package   s    ~~&&s++r)   c                 R    [        U R                  =(       a    U R                  5      $ rH   )boolrV   rW   r^   s    r*   
is_channelDist.is_channel   s    DMM3dmm44r)   c                 n    U R                   (       a  U R                  $ U R                  U R                  -   $ rH   )rz   r   r    )rY   	extensions     r*   to_filenameDist.to_filename   s(    "">>!>>DHH,,r)   c                 >    SR                  U R                  S S 5      $ )N    )joinrq   r^   s    r*   to_matchspecDist.to_matchspec   s    xx		"1&&r)   c                     SSK Jn  SR                  U R                  S S 5      nU" U R                  (       a  U R                   SU 35      $ U5      $ )Nr   )	MatchSpec=r   ru   )
match_specr   r   rq   r7   )rY   r   bases      r*   to_match_specDist.to_match_spec   sE    )xx		"1&dllDLL>D62MMMMr)   c           
         [        U5      n[        U5      (       a  U[        :X  a  U R                  U5      $ UR	                  S5      (       a  U " SUSSSUS9$ Sn[
        R                  " X15      R                  5       u  pEn[        U5      u  pWU[        :w  a  UnU(       d  [        nU R                  U5      nU " UUR                  UR                  UR                  UR                  UUS9$ )Nry   rn   r   )r7   r   r   r   r   r   z8(?:([^\s\[\]]+)::)?([^\s\[\]]+)(?:\[([a-zA-Z0-9_-]+)\])?)r7   r   r   r   r   r   r    )r&   r   r   r;   rI   researchgroupsrO   r   parse_dist_namer   r   r   r   )	r?   stringr/   	REGEX_STRr7   rJ   w_f_dr    dist_detailss	            r*   r5   Dist.from_string   s    V&>>.$6<<''??3  ) 	
 )+		)(D(K(K(M%,];t#&G%G **=9"" ((%22%22#
 	
r)   c                    U n [        U 5      n [        U 5      u  p#SU;   a  UR                  SS5      S   nOUR                  SS5      S   nUR                  SS5      nUS   nUS   n[        U5      S:  a  US   OS	nS	R	                  [        S
 U(       a  UR                  S5      S   OS5      5      n	U	(       a  [        U	5      OSn
[        XgXXC5      $ !   [        SU 35      e= f)Nru   r   /rm   r   r   r   rn   c                 "    U R                  5       $ rH   )isdigit)xs    r*   <lambda>&Dist.parse_dist_name.<locals>.<lambda>   s
    aiikr)   _0z(dist_name is not a valid conda package: )	r   rO   ro   r1   r   filterintr   r   )r   original_stringno_fmt_stringr    r   rp   r   r   r   build_number_as_stringr   s              r*   r   Dist.parse_dist_name   s    	%f-F!0!8M }$)00q9"=	)00a8<	$$S!,E8DAhG'*5zQ58BL%'WW)5A\((-b1s&" ;Q356VWL|9 	:?:KL s   CC C'c                   ^ [        T5      (       d   T5       e[        U4S j[        5       5      (       d  ST;  a  [        ST S35      eU R	                  T5      nST;   aN  TR                  SS5      S   n[        R                  nUR                  S5      S   n[        [        U5      5      nOoTR                  SS5      S   n[        U[        R                  5      nU(       a  UR                  SS5      S   OUnU(       a  [        U5      R                  O[        nU " UUR                  UR                   UR"                  UR$                  UR&                  UUUR(                  S9	$ )	Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7frH   )rI   ).0rK   r<   s     r*   	<genexpr> Dist.from_url.<locals>.<genexpr>  s     J1I#CLL%%1Is   !ru   zurl 'z' is not a conda packager   r   r   )	r7   r   r   r   r   r   rV   rW   r    )r   anyr   r   r   ro   r   r\   splitr&   r   r   known_subdirsr8   r   r   r   r   r   r   r    )r?   r<   r   url_no_tarballrW   rV   r7   s    `     r*   r;   Dist.from_url   s?   c{{C{J1IJJJCuSE)ABCC**3/3; ZZa03N~~H%++D1!4H'(+,G ZZQ/2N#NG4I4IJH;C~,,S!4Q7H:Bgh'66G"" ((%22%22",,  

 
	
r)   c                     U R                   (       d  g U R                  U R                  -   nU R                  (       a!  [	        U R                   U R                  U5      $ [	        U R                   U5      $ rH   )rV   r   r    rW   r   )rY   filenames     r*   to_urlDist.to_url  sW    }}>>DHH, }} T]]DMM8<	
 $--2	
r)   c                 2    U R                   U R                  4$ rH   rv   r^   s    r*   __key__Dist.__key__(  s    ||T^^++r)   c                 |    [        XR                  5      (       d   eU R                  5       UR                  5       :  $ rH   r4   rC   r   rY   others     r*   __lt__Dist.__lt__+  .    %0000||~//r)   c                 |    [        XR                  5      (       d   eU R                  5       UR                  5       :  $ rH   r   r   s     r*   __gt__Dist.__gt__/  r   r)   c                 |    [        XR                  5      (       d   eU R                  5       UR                  5       :*  $ rH   r   r   s     r*   __le__Dist.__le__3  .    %0000||~00r)   c                 |    [        XR                  5      (       d   eU R                  5       UR                  5       :  $ rH   r   r   s     r*   __ge__Dist.__ge__7  r   r)   c                 L    [        U R                  5       U R                  45      $ rH   )hashr   r    r^   s    r*   __hash__Dist.__hash__;  s     T\\^TXX.//r)   c                 |    [        XR                  5      =(       a!    U R                  5       UR                  5       :H  $ rH   r   r   s     r*   __eq__Dist.__eq__@  s'    %0VT\\^u}}5VVr)   c                 .    U R                  U5      (       + $ rH   )r   r   s     r*   __ne__Dist.__ne__C  s    ;;u%%%r)   c                 ~    US:X  d   eU R                   (       a  U R                   U R                  /$ U R                  /$ rt   rv   )rY   sepmaxsplits      r*   r   
Dist.splitH  s3    d{{15dnn-SDNNCSSr)   c                     US:X  d   eUS:X  d   eU R                   (       a  U R                    SU R                  S    3OU R                  S   nX0R                  S   U R                  S   4$ )Nrm   r   ru   r   r   )r7   rq   )rY   r   r   r   s       r*   ro   Dist.rsplitL  sb    czz1}}48LL$,,r$))A,0diiPQlYYq\499Q<//r)   c                 8    U R                   R                  U5      $ rH   )r   
startswith)rY   matchs     r*   r   Dist.startswithR  s    ~~((//r)   c                 N    [        [        U5      5      nXR                  5       ;   $ rH   )rL   r   rb   )rY   items     r*   __contains__Dist.__contains__U  s!    /56||~%%r)   c                 "    U R                  5       $ rH   )r   r^   s    r*   r6   Dist.fnY  s    !!r)   r!   )NNNNNNNz.tar.bz2rH   )Nr   )5r"   r#   r$   r%   r3   _lazy_validater
   r7   r   r   r    r   r   r	   r   rV   rW   rX   r_   propertyrc   r]   r\   rj   rq   rb   rz   r~   r   r   r   classmethodr   r5   staticmethodr   r;   r   r   r   r   r   r   r   r   r   r   ro   r   r   r6   r(   rE   rF   s   @r*   r2   r2   M   s   GN544HGd+I&D

%CD)G.L$/LEDDIHEDDIH
 
0
   ! !   E E S S
W , , 5 5-'N 26 (
 (
T    D 
 
@
,00110
W&
T00& " "r)   r2   )	metaclassc                     [        U 5      n SU ;   a  U R                  SS5      u  pO[        nU R                  SS5      u  p#nX#XA4$ )Nru   r   rm   r   )rL   r   r   ro   )dist_strchannel_strr   r   r]   s        r*   dist_str_to_quadr   ^  sN    x(Hx (tQ 7X%#??32D5%,,r)   ))__doc__r   loggingr   typingr   rn   r   auxlib.entityr   r   r	   r
   base.constantsr   r   r   base.contextr   common.compatr   common.constantsr   
common.urlr   r   r   r7   r   package_infor   recordsr   r"   logr   r,   rL   rO   r2   r   r!   r)   r*   <module>r      s    6 	    I I 
 # , # 7 7  % "* 5z 5:4
N"6X N"b-r)   