+
    kz=j9                       ^ RI H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 ^ RIHt ^ RIHt ^ RIt^ RIHt ^ R	IHtHtHt ^ R
IHt ^ RIHt ^ RIHtHt ^ RIH t  ^ RI!H"t"H#t# ^ RI$H%t% ]'       d   ^ RI&H't' ^ RIH(t( ^ RIH)t) ^RI*H+t+ ]! R], 24      t-R R lt.R R lt/ ! R R]	4      t0R R lt1R R lt2R R  lt3R! R" lt4R+R# R$ llt5R% R& lt6R,R' R( llt7 ! R) R*4      t8R# )-    )annotationsN)suppress)Enum)	getLogger)dedent)TYPE_CHECKING)__version__)KNOWN_SUBDIRSREPODATA_FNUNKNOWN_CHANNEL)context)paths_equal)InvalidMatchSpecPackagesNotFoundError)	MatchSpec)PackageRecordPrefixRecord)VersionOrder)Iterable)Any)PathType)RattlerIndexHelperzconda.c                    V ^8  d   QhRRRR/# )   bytes_or_strzbytes | str | Nonereturnz
None | str )formats   ":lib/python3.14/site-packages/conda_rattler_solver/utils.py__annotate__r    "   s        1  j      c                    V '       g   R # \        V \        4      '       d   V P                  4       # V P                  4       # N)
isinstancebyteshexlower)r   s   &r   _hash_to_strr(   "   s3    ,&&!!r!   c                    V ^8  d   QhRRRR/# )r   recordzrattler.PackageRecordr   r   r   )r   s   "r   r    r    *   s     5 5+@ 5] 5r!   c           	        V P                   ;p'       d"   \        VP                  4       R ,          4      pM^ pV P                  P                  '       d   RpMVV P                  P                  '       d   RpM7V P                  P
                  '       d   RpM\        RV P                   24      hV P                  '       dr   V P                  P                  R.\        O54      '       d   V P                  pM=V P                  '       d   V P                   RV P                   2pMV P                  pMRp\        R/ RV P                  P                  bR	\        V P                  4      bR
V P                   bRV P"                  bRVbRV P                  bRV P$                  bR\'        V P(                  4      bR\'        V P*                  4      bRV P,                  bRV P.                  bR\'        V P0                  4      bRV P2                  bR\        V P4                  ;'       g    R4      ;'       g    RbRV P6                  ;'       g    RbRV P8                  ;'       g    RbRV P:                  ;'       g    RbRV P<                  ;'       g    RbRVbRV P>                  bRV P@                  bRVbRV PB                  ;'       g    ^ bRV PD                  b # ) i  NpythongenericzUnknown noarch type: noarch/ nameversionbuildbuild_numberchannelsubdirfnmd5legacy_bz2_md5legacy_bz2_sizeurlsha256archplatformdepends
constrainstrack_featuresfeatureslicenselicense_family	timestampsizepython_site_packages_pathr   )#rE   intr.   noner,   r-   
ValueErrorr5   endswithr
   r6   r   r1   sourcestrr2   r3   r4   	file_namer(   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rF   rG   )r*   rE   r.   channel_urls   &   r   rattler_record_to_conda_recordrP   *   s   $$$y$	++-45		}}								0@AA~~~>>""H#=}#=>> ..K]]]#^^,Afmm_=K ..K [[FNN# ll ((	
  }}  $ $F$9$9: .. JJ FMM* [[ V__**+33t $$"  $$**!" ,,22#$ &&B%& '* +, ,,-0 14 [[A56 #)"B"B7 r!   c                  &    ] tR t^btRtRtRtRtRtR# )FakeRattlerLinkTypehardlinksoftlinkcopy	directoryr   N)	__name__
__module____qualname____firstlineno__rS   rT   rU   rV   __static_attributes__r   r!   r   rR   rR   b   s     HHDIr!   rR   c                    V ^8  d   QhRRRR/# )r   r*   r   r   zrattler.PrefixRecordr   )r   s   "r   r    r    k   s      @ @@@r!   c                   V P                  R 4      ;p'       d   VP                  pV P                  R4      ;p'       d!   \        P                  ! VP                  4      p\        P                  ! R#/ RV P
                  bRV P                  bRV P                  bRV P                  bRV P                  bRV P                  R4      bR VbRVbRV P                  R4      bR	V P                  R	4      bR
\        P                  V P                  R
4      ;'       g    R4      ;'       g    RbR\        P                  V P                  RR4      ;'       g    R4      ;'       g    RbRV P                  R4      bRV P                  R4      ;'       g    RbR\        P                  V P                  RR4      ;'       g    R4      ;'       g    RbRV P                  R^ 4      bRV P                  R4      bRV P                  R4      bRV P                  R4      b p\        P                  ! VV P                  V P                  V P                  P                   R7      p\        P"                  ! 4       pV P                  R4      ;p'       Ed#   . pVP$                   EF	  p\'        VP(                  4      p	RVP*                  R\        P,                  ! V	4      R\/        VRR4      R
\        P                  \/        VR
R4      4      ;'       g    RR\        P                  \/        VRR4      4      ;'       g    RR\/        VRR4      /p
\'        \/        VRR4      4      ;p'       g   K  \        P0                  ! V4      V
R&   VP3                  \        P4                  ! R#/ V
B 4       EK  	  Wun        V P                  R4      ;p'       dB   \7        \'        VP8                  4      4      p\        P:                  ! VP<                  VR7      pMRp\        P>                  ! VVVV P                  R4      V P                  R 4      V P                  R!4      V P@                  R"7      # )$r>   r.   r1   r2   r3   r4   r6   r=   r?   r@   r<   r0   Nr8   rF   rB   r9   r:   rC   rD   rG   )package_recordrN   r;   r5   
paths_datarelative_path	path_typeprefix_placeholdersha256_in_prefixsize_in_bytes	file_modelink)pathtypepackage_tarball_full_pathextracted_package_dirrequested_spec)repodata_recordr_   rf   ri   rj   rk   filesr   )!getvaluerattler
NoArchTyper   r1   r2   r3   r4   r6   r%   fromhexRepoDataRecordr7   r;   r5   base_urlPrefixPathspathsrM   ra   rg   PrefixPathTypegetattrFileModeappendPrefixPathsEntryrR   rh   LinkrL   r   rm   )r*   r>   r.   r^   rl   r_   conda_paths_datapath_entriesrg   ra   kwargsre   
conda_link	link_typerf   s   &              r   ,conda_prefix_record_to_rattler_prefix_recordr   k   s    ::j))x)>>H%%v%##FLL1** [[ ll ((	
 }} ZZ   

9% ::l+ }}VZZ177R8@@D MM&**UB/5526>>$ ZZ J'//4 }}VZZ0@"%E%K%KLTTPT  

#4a8!" 

9%#$ zz"23%& #)**-H"I'N* ,,%))JJ''	O $$&J!::l333$**DDNN+IW33I>$gd4H$&O%--h(CDLL"EMM'$@RTV2W$X$`$`\`!EF  k2 >??y??&-&6&6y&A{###G$<$<$Fv$FG + (ZZ''z''JOO(<=	||!2!2C'"(**-H"I$jj)@Azz"23ll r!   c                    V ^8  d   QhRRRR/# )r   specr   r   zrattler.MatchSpecr   )r   s   "r   r    r       s       ?P r!   c                   \        V 4      p\        P                  VP                  9   g   R VP                  9   d   \	        VR4      h\
        P                   ! \        V4      P                  R4      P                  RR4      RRR7      # )r/   zCannot contain slashes.=z=[[T)conditionalsextras)	r   ossepr1   r   rp   rM   rstripreplace)r   
match_specs   & r   &conda_match_spec_to_rattler_match_specr      sl    4J	vv C:??$:z+DEEJs#++D#6 r!   c                    V ^8  d   QhRRRR/# )r   r6   rM   r   zdict[str, Any]r   )r   s   "r   r    r       s       ~ r!   c                h    R VP                  R4      '       d   ^M^RRV RR/ //VCR/ R/ RR/ R	/ R
/ //# )repodata_versionrt   infor6   repodata_revisionsv3packageszpackages.condaztar.bz2condawhl)rn   )r6   info_kwargss   &,r   empty_repodata_dictr      sh    !<!<A!f b#
 
 	B"rR2
 r!   c                   V ^8  d   QhRR/# )r   r   rM   r   )r   s   "r   r    r       s      # r!   c                   R p\         P                  ! 4       P                  4        F2  pVP                  4        F  w  r4VR8X  g   K  V'       g   K  Rp K0  	  K4  	  V R8X  d)   V'       g!   \        P                  R\        4       \        # V # )Frepodata_fnsTzcurrent_repodata.jsonz>Ignoring repodata_fn='current_repodata.json', defaulting to %s)r   collect_allvaluesitemslogdebugr   )repodata_fnis_repodata_fn_setconfigkeyro   s   &    r   maybe_ignore_current_repodatar      sy    %%'..0 ,,.JCn$%)" ) 1
 --6H		L	
 r!   c               (    V ^8  d   QhRRRRRRRR/# )	r   prefixzPathType | NoneindexzRattlerIndexHelper | Nonefinal_statezIterable[PackageRecord] | Noner   Noner   )r   s   "r   r    r       s6     Y
 Y
Y
$Y
 0Y
 
	Y
r!   c                  a V f   Vf   Vf   R# \         P                  '       d   \         P                  '       d   R# Rp\        P                  P                  \         P                  R4      p\        \        \        4      ;_uu_ 4        \        P                  P                  V4      '       d   \        P                  ! V4       F  pVP                  4       '       g   K  VP                  P                  R4      '       g   K>  VP                  P                  R^4      ^ ,          R8X  g   Kh  \!        VP                  4      ;_uu_ 4       p\#        R/ \$        P&                  ! VP)                  4       4      B pRRR4        M	  RRR4       V'       g   R# VP*                  P,                  pV\.        RRR39   d   R	pVP0                   Uu0 uF  p\3        VR
V4      kK  	  p	pWy9  d   R# V R\4         2p
\7        V
4      o\9        V \         P                  4      '       dC   \:        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   R# \=        VP?                  V
4      4      pV'       dM   \A        VR R7      p\C        \E        R\4         RVPF                   RV R24      \H        PJ                  R7       R# R#   + '       g   i     ELd; i  + '       g   i     ELl; iu upi )a{  
We are overriding the base class implementation, which gets called in
Solver.solve_for_diff() once 'link_precs' is available. However, we
are going to call it before (in .solve_final_state(), right after the solve).
That way we can reuse the IndexHelper and SolverOutputState instances we have
around, which contains the channel and env information we need, before losing them.
Nz
conda-metaz.json-r   @z	<develop>pypidefaultscanonical_namez::conda>c              3  F   <"   T F  pSP                  V4      x  K  	  R # 5ir#   )match).0r*   conda_newer_specs   & r   	<genexpr>(notify_conda_outdated.<locals>.<genexpr>  s      HK&%%f--Ks   !TFc                ,    \        V P                  4      # r#   )r   r2   )xs   &r   <lambda>'notify_conda_outdated.<locals>.<lambda>'  s    QYY8Or!   )r   zq

                    ==> WARNING: A newer version of conda exists. <==
                        current version: z)
                        latest version: zh

                    Please update conda by running

                        $ conda update -n base -c z conda

                    )filer   )&r   notify_outdated_condaquietr   rg   joinconda_prefixr   OSErrorrJ   lexistsscandiris_filer1   rK   rsplitopenr   jsonloadsreadr5   r   r   channelsrx   _conda_versionr   r   anylistsearchmaxprintr   r2   sysstderr)r   r   r   current_conda_prefix_recconda_meta_prefix_directoryentryfchannel_namechnindex_channelsconda_newer_strconda_newer_recordsnewestr   s   &&&          @r   notify_conda_outdatedr      sQ    ~%-K,? 	(((GMMM  $"$'',,w/C/C\"R	':	&	&77??677$?@MMOO

++G44

))#q1!4?ejj))Q3?3W$**QVVXBV3W0 * A 
' $ 	+33BBLk6BB! FK^^T^cgc#3S9^NT) &h~.>?O 1
 67//003HKH333HKHHH u||O<= (.OP* +9)9 :))/(8 93 4@. A
 	
 C *)) 
'	&	&, Us=   
AK(!K(%K(.K(.K9K(K<K%	K((K9	c                    V ^8  d   QhRRRR/# )r   r   r   r   r   )r   s   "r   r    r    :  s      I ) r!   c                   V P                   '       d   \        P                  ! R4      p\        V P                   4      p\        P                  ! W4      '       dh   V P                  4       P                  4       pVP                  R4      ^8:  d   VR,           V^&   MVR,           V^&   \        RP                  V4      4      # V # )zFix taken from mambabuildz	^[\d\.]+$.z.** )
r2   recompilerM   r   conda_build_formsplitcountr   r   )r   only_dot_or_digit_reversion_strspec_fieldss   &   r   !fix_version_field_for_conda_buildr   :  s    |||!zz,7$,,'88(66//1779K  %*!,t!3A!,s!2ASXXk233Kr!   c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   specszIterable[MatchSpec]raise_not_foundboolr   r   )r   s   "r   r    r    I  s,     " ""&9"LP"	"r!   c                4   \        V4      ^8  g   \        R4      hRpV Fk  p\        V P                  V4      4      pV'       g,   V'       d!   \	        V.V P
                  4      pRVn        Vh R# Vf   TpKX  W5,          pV'       d   Kj   R# 	  \        V4      # )a  
Assess whether the given specs are compatible with each other.
This is done by querying the index for each spec and taking the
intersection of the results. If the intersection is empty, the
specs are incompatible.

If raise_not_found is True, a PackagesNotFoundError will be raised
when one of the specs is not found. Otherwise, False will be returned
because the intersection will be empty.
zMust specify at least two specsNF)lenrJ   setr   r   r   allow_retryr   )r   r   r   matchedr   resultsexcs   &&&    r   compatible_specsr   I  s     u:?:;;Gell4()+TFENNC"'	?Gw " =r!   c                  J    ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRt	R# )EnumAsBoolsin  ad  
Allows an Enum to be bool-evaluated with attribute access.

>>> update_modifier = UpdateModifier("update_deps")
>>> update_modifier_as_bools = EnumAsBools(update_modifier)
>>> update_modifier == UpdateModifier.UPDATE_DEPS  # from this
    True
>>> update_modidier_as_bools.UPDATE_DEPS  # to this
    True
>>> update_modifier_as_bools.UPDATE_ALL
    False
c                   V ^8  d   QhRR/# )r   enumr   r   )r   s   "r   r    EnumAsBools.__annotate__|  s     R RT Rr!   c                	    Wn         V P                   P                  P                  P                  4        Uu0 uF  q"P                  kK  	  upV n        R # u upi r#   )_enum	__class____members__r   r1   _names)selfr   vs   && r   __init__EnumAsBools.__init__|  s=    
'+zz';';'G'G'N'N'PQ'P!vv'PQQs   Ac                    V ^8  d   QhRRRR/# )r   r1   rM   r   r   r   )r   s   "r   r    r     s     b b b br!   c                	    VR9   d   \        V P                  V4      # WP                  9   d   V P                  P                  V8H  # \	        RV RV P                  P
                  P                   24      h)r1   'z' is not a valid name for )r1   ro   )rx   r   r  r1   AttributeErrorr   rW   r  r1   s   &&r   __getattr__EnumAsBools.__getattr__  sc    $$4::t,,;;::??d**q&@AUAUA^A^@_`aar!   c                    V ^8  d   QhRRRR/# )r   objobjectr   r   r   )r   s   "r   r    r     s     & && &T &r!   c                	8    V P                   P                  V4      # r#   )r   __eq__)r  r  s   &&r   r  EnumAsBools.__eq__  s    zz  %%r!   c                   V ^8  d   QhRR/# )r   r   zdict[str, bool]r   )r   s   "r   r    r     s     G G Gr!   c                	r    V P                    Uu/ uF  qV P                  P                  V8H  bK  	  up# u upi r#   )r  r   r1   r  s   & r   _dictEnumAsBools._dict  s.    :>++F+$djjoo--+FFFs   "4)r   r  N)
rW   rX   rY   rZ   __doc__r  r  r  r  r[   r   r!   r   r   r   n  s$    Rb&G Gr!   r   )NNN)T)9
__future__r   r   r   r   r   
contextlibr   r   r   loggingr   textwrapr   typingr   rp   r   r	   r   conda.base.constantsr
   r   r   conda.base.contextr   conda.common.pathr   conda.exceptionsr   r   conda.models.match_specr   conda.models.recordsr   r   conda.models.versionr   collections.abcr   r   r   r   r   rW   r   r(   rP   rR   r   r   r   r   r   r   r   r   r   r!   r   <module>r&     s    "  	 	 
        / L L & ) D - < -(*)&
#$ 5p$ @F* Y
x"JG Gr!   