+
    Cj                       R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH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  ^ RI!H"t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t( ^ RI)H*t*H+t+H,t, ^ RI-H.t. ^ RI/H0t0 ^ RI1H2t2 ^ RI3H4t4 ^ RI5H6t6 ^ RI7H8t8H9t9 ^ RI:H(t; ^ RI<H0t= ^ RI<H>t> ^R	I?Ht ^RI@HAtA ^RIBHCtC ^RIDHEtEHFtFHGtGHHtH ^RIIHJtJHKtK ]'       d9   ^ RILHMtMHNtNHOtO ^ RIPHQtQ ^ R IRHStS ^ R!IHTtTHUtU ^ R"I!HVtV ^ R#IWHXtX ^ R$I:HYtYHZtZ ^ R%I<H[t[ ]P                  ! R&]] 24      t^ ! R' R(](4      t_R# ))zU
This module defines the conda.core.solve.Solver interface and its immediate helpers
)annotationsN)defaultdict)cache)stack)chain)dedent)TYPE_CHECKING)__version__)REPODATA_FNUNKNOWN_CHANNELChannelPriority)context)NULL)time_recorder)paths_equal)percent_decode)
PrefixData)Solver)CondaValueErrorPackagesNotFoundErrorUnsatisfiableError)Channel)	MatchSpec)PackageRecord)VersionOrder)get_spinner)RequestSolution)
NoArchType)LibMambaUnsatisfiableError)LibMambaIndexHelper)init_libmamba_contextmamba_versionproblems_format_autoproblems_format_nocolor)SolverInputStateSolverOutputState)IterableMappingSequence)
IndexedSet)_Null)DepsModifierUpdateModifier)PathType)BuildRepodataSubset)Database
UnSolvable)PackageInfozconda.c                  6  a  ] tR t^Pt^
tRt]]R R l4       4       tRBRBRB]	]
3RR/R V 3R llllt]
]
]
]
]
R3R R	 lltRCR
 R lltR R ltRDR R llt]! ] R7      R R l4       tR R lt]! ] R7      R R l4       tRER R lltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& lt]R' R( l4       tRDR) R* lltR+ R, ltRDR- R. llt R/ R0 lt!R1 R2 lt"R3 R4 lt#R5 R6 lt$]R7 R8 l4       t%]R9 R: l4       t&R; R< lt'RER= R> llt(RFR? R@ llt)RAt*V ;t+# )GLibMambaSolverFc                   V ^8  d   QhRR/#    returnstr )formats   "M/root/miniconda3/lib/python3.14/site-packages/conda_libmamba_solver/solver.py__annotate__LibMambaSolver.__annotate__V   s     S S S    c                 *    R\          R\        4        2# )zL
Expose this identifier to allow conda to extend its user agent if required
zconda-libmamba-solver/z libmambapy/)r	   r"   r:   r?   r<   
user_agentLibMambaSolver.user_agentT   s     (}L@QRRr?   build_repodata_subsetNc               8    V ^8  d   QhRRRRRRRRR	RR
RRRRR/# )r7   prefixr.   channelsIterable[Channel | str]subdirsIterable[str]specs_to_addzIterable[MatchSpec | str]specs_to_removerepodata_fnr9   commandzstr | _NullrC   zBuildRepodataSubset | Noner:   )r;   s   "r<   r=   r>   \   sZ     ,
 ,
,
 *,
 	,

 0,
 3,
 ,
 ,
  :,
r?   c          
     	  < V'       d   V'       d   \        R 4      hV'       d   V\        J d   Rp\        S	V `  \        P
                  ! V4      VVVVVVR7       V P                  \        J g   V P                  '       g   \        P                  V n        RV P                  9  d   . V P                  ORN5V n        V P                  4       V n	        Wn
        \        \        ;QJ d    . R V P                   4       F  NK  	  5M! R V P                   4       4      \        R V P                   4       4      \        V P                   4      R7      V n        R# )zEOnly one of `specs_to_add` and `specs_to_remove` can be set at a timeremove)rH   rJ   rK   rL   rM   noarchc              3  8   "   T F  qP                   x  K  	  R # 5iN)canonical_name).0cs   & r<   	<genexpr>*LibMambaSolver.__init__.<locals>.<genexpr>   s     C]++]s   c              3  6   "   T F  qR 8w  g   K  Vx  K  	  R# 5irP   Nr:   rT   ss   & r<   rV   rW      s     C\(]!!\   
)rF   platformtarget_prefixN)
ValueErrorr   super__init__osfspathrH   r   _maybe_ignore_current_repodata_repodata_fn_build_repodata_subsetr!   tuplerF   nextr9   rE   _libmamba_context)
selfrE   rF   rH   rJ   rK   rL   rM   rC   	__class__s
   &&&&&&&&$r<   ra   LibMambaSolver.__init__\   s    OW  w$GIIf%+# 	 	
 <<4t|||"??DL4<<' 5T\\484DL ??A&;#!6UCT]]CUUCT]]CCCT\\CCdkk*"
r?   c               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r7   update_modifierzUpdateModifier | _Nulldeps_modifierzDepsModifier | _Nullprunezbool | _Nullignore_pinnedforce_removeshould_retry_solveboolr8   IndexedSet[PackageRecord]r:   )r;   s   "r<   r=   r>      sP     6 6/6 ,6 	6
 $6 #6 !6 
#6r?   c                	T   V P                  4        \        V P                  V P                  ;'       g    V P                  VVVVVV P
                  R 7      p\        VR7      pVP                  4       p	V	e   V	# V P                  V4      p
V P                  \        V
4      R7      p\        V P                  W4      4      ;_uu_ 4        V P                  V
VV P                  VR7      pVP                  V4       RRR4       \        V P!                  4       4      ;_uu_ 4        V P#                  WxX4      p\%        VP&                  P)                  4       4      V n        VP,                  pRRR4       V P/                  RXX4       V#   + '       g   i     L; i  + '       g   i     L8; i))rE   	requestedrn   ro   rp   rq   rr   rM   )solver_input_stateN)seen)rF   conda_build_channelsrH   in_state)	_log_infor%   rE   rJ   rK   _commandr&   
early_exit_collect_channel_list*_collect_channels_subdirs_from_conda_buildsetr   %_collect_all_metadata_spinner_message_collect_all_metadatarH   check_for_pin_conflicts_solving_loop_spinner_message_solving_looprg   neuteredvaluesneutered_specscurrent_solution_notify_conda_outdated)rj   rn   ro   rp   rq   rr   rs   r{   	out_statemaybe_final_staterF   rz   indexsolutions   &&&&&&&       r<   solve_final_state LibMambaSolver.solve_final_state   s    	#;;''??4+?+?+''%MM	
 &B	 &002($$--h7#NNTWX`TaNb66xV
 
 ..!%9!	 / E --e4
 ..0
 

 **8FI"'	(:(:(A(A(C"DD 11H
 	##D%:3
 

 
s   1F AFF	F'	c               $    V ^8  d   QhRRRRRR/# )r7   rF   Iterable[Channel]rz   rG   r8   r9   r:   )r;   s   "r<   r=   r>      s(     
 
#
 6
 
	
r?   c           
     	"   V P                  4       '       dj   R pV'       d^   \        \        P                  V Uu. uF  p\	        V4      P
                  NK  	  up4      4      pVRRP                  V4       R2,          pV# \        \        P                  V Uu. uF  qDP
                  NK  	  up4      4      pRP                  V4      pRV R\        R V P                   4       \        P                  4       RV P                   R2# u upi u upi )	zReloading output folderz (z, )z
 - zChannels:
 - z
Platform: c              3  6   "   T F  qR 8w  g   K  Vx  K  	  R# 5irY   r:   rZ   s   & r<   rV   GLibMambaSolver._collect_all_metadata_spinner_message.<locals>.<genexpr>   s     H,Qx-qq,r\   z
Collecting package metadata ()_called_from_conda_buildlistdictfromkeysr   rS   joinrh   rH   r   subdirre   )rj   rF   rz   msgrU   namescanonical_namescanonical_names_dasheds   &&&     r<   r   4LibMambaSolver._collect_all_metadata_spinner_message   s    
 ((**+C#MMFZ"[FZ71:#<#<FZ"[\ DIIe,-Q//Jt}}-Q1.>.>-QRS!(o!>() *H$,,H'..YZ [,,0,=,=+>aA	
 #\
 .Rs   DDc                    V ^8  d   QhRRRR/# )r7   r{   r%   r8   list[Channel]r:   )r;   s   "r<   r=   r>      s     & &.> &= &r?   c                	   / p\        V P                  VP                  4       VP                  4       4       F  p\	        VR R4      ;p'       dw   W@P
                  9  d#   \        P                  RVVV P
                  4       \        R/ VP                  4       P                  4        UUu/ uF  w  rVVR 8w  g   K  WVbK  	  uppB pRW#&   K  	  \        V4      # u uppi )r]   Nz^Channel %s defines platform %s which is not part of subdirs=%s. Ignoring platform attribute...r:   )r   rF   channels_from_specsmaybe_free_channelgetattrrH   loginfor   dumpitemsr   )rj   r{   deduped_channelschannelchannel_platformkvs   &&     r<   r   $LibMambaSolver._collect_channel_list   s    MM87798;V;V;X
G $+7J#EEE#<<7HH9( "aglln6J6J6L$`6LdaPQU_P_TQT6L$`a(,%
  $%% %as   (C8Cc                    V ^8  d   QhRRRR/# )r7   ry   zset[Channel] | Noner8   r   r:   )r;   s   "r<   r=   r>      s      ! 
r?   c                	   V P                  4       '       d   T;'       g    \        4       p/ pV P                  ;'       g    /  F  pVP                  P                  R 8X  g   K   \        R/ VP                  P                  4       P                  4        UUu/ uF  w  rEVR8w  g   K  WEbK  	  uppB pWa9  g   Kv  VP                  V4       K  	  \        V4      # . # u uppi )filer]   r:   )
r   r   _indexr   schemer   r   r   
setdefaultr   )rj   ry   rz   recordr   r   r   s   &&     r<   r   9LibMambaSolver._collect_channels_subdirs_from_conda_build   s     ((**==35D $& +++++>>((F2 & ,2NN,?,?,A,G,G,I],IDAQR\_414,I]G *,77@ , ,--	 ^s   C%C)module_namec          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r7   rF   r   rz   rH   rI   r{   zSolverInputState | Noner8   r    r:   )r;   s   "r<   r=   r>     s<      # 0 	
 * 
r?   c           
     	D   \        . VOVOTV P                  . VP                  P                  4       OVP                  P                  4       O5\
        P                  '       d   \
        P                  MRVV P                  R 7      pV F  pVP                  V4       K  	  V# ))rF   rH   rL   installed_records	pkgs_dirsr{   rC   r:   )
r    re   	installedr   virtualr   offliner   rf   reload_channel)rj   rF   rz   rH   r{   r   r   s   &&&&&  r<   r   $LibMambaSolver._collect_all_metadata  s     $7+7h7))##**,!!((* ,3???g''"&"="=
 ,G  ) ,r?   c                   V ^8  d   QhRR/# r6   r:   )r;   s   "r<   r=   r>   #  s     
% 
%s 
%r?   c                    \         P                  P                  V P                  4      pV P	                  4       '       d7   RV9   d.   RP                  VP                  R4      R,          4      pRV R2# R# R# )z<This shouldn't be our responsibility, but the CLI / app's..._env_:N   NzSolving environment (r   zGetting pinned dependencieszSolving environment)rb   pathbasenamerE   r   r   split)rj   prefix_nameenv_names   &  r<   r   ,LibMambaSolver._solving_loop_spinner_message#  sf    gg&&t{{3((**$88K$5$5c$:2$>?.xj:: 5$r?   c               (    V ^8  d   QhRRRRRRRR/# )	r7   r{   r%   r   r&   r   r    r8   ru   r:   )r;   s   "r<   r=   r>   0  s2     - -"- %- #	-
 
#-r?   c                	   \        ^V P                  V4      ^,           4       F  p V P                  WW4R7      w  rVV'       d    Mu \        V\	        VP
                  4      \	        VP                  4      \	        VP                  4      \	        VP                  4      \	        VP                  4      R7      pK  	  X'       g   \        P                  R4       VP                  P                  VP                  P!                  4        UUu/ uF)  w  rxVP"                  '       d   K  WxP%                  4       bK+  	  upp4       V P                  WVX^,           R7      w  rVV'       g1   V P'                  WcP(                  V4      p	\+        V	4      p
RV
n        V
hV P/                  W2X4       VP1                  V R7       V#   \        \        3 d	    Rp  EK  i ; iu uppi )   )attempt)rx   recordsfor_historyr   	conflictspinsFz2Last attempt: reporting all installed as conflicts)solver)range_max_attempts_solve_attemptr&   r   r   r   r   r   r   r   r   r   debugupdater   r   is_unmanageableto_match_spec_prepare_problems_messagedbr   allow_retry_export_solution
post_solve)rj   r{   r   r   r   solvedoutcomenamer   messageexcs   &&&&       r<   r   LibMambaSolver._solving_loop/  s    Q 2 28 <q @AG"&"5"5h5"5"b  .'/ !2!23 $Y%:%: ;!)"4"45"9#6#67inn-	 B" IIJK&& )1(:(:(@(@(B(B!11 1D..00(B #11(uV]`aVa1bOF88((IV09"'	 	e8 	D)E '(=> s   F<
G
%G
<GGc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r7   r{   r%   r   r&   r   r    r   intr8   z"tuple[bool, Solution | UnSolvable]r:   )r;   s   "r<   r=   r>   _  s<      " % #	
  
,r?   c                	   \         P                  R V4       \         P                  RVP                  4       V P	                  V4      pV P                  W4      p\        WeR7      p\        4       pVP                  VP                  V4      p	\        V	\        4      '       d   VP                  P                  4        RV	3# VP                  P                  4       p
V P                  WW*4      p\         P                  \         P"                  4      '       d=   V	P%                  VP                  4      p\         P                  RV\'        V4      V4       VP                  P)                  V4       RV	3# )zSolver attempt: #%dz-Current conflicts (including learnt ones): %r)jobsflagsTz'Attempt %d failed with %s conflicts:
%sF)r   r   r   r   _solver_flags_specs_to_request_jobsr   LibsolvSolversolver   
isinstancer   clearcopy_maybe_raise_for_problemsisEnabledForloggingDEBUGproblems_to_strlenr   )rj   r{   r   r   r   r   r   requestr   r   old_conflictsnew_conflictsproblems_as_strs   &&&&&        r<   r   LibMambaSolver._solve_attempt_  s"    	&0		A9CVCVW""8,**8?t1,,uxx1gx((%%'= !++00266wy`GMM**%55ehh?OII:M"	 	""=1g~r?   c                    V ^8  d   QhRRRR/# )r7   r{   r%   r8   zRequest.Flagsr:   )r;   s   "r<   r=   r>   }  s     & &&6 &= &r?   c                	f   R VP                   '       * RRRVP                  RRRRRRR\        P                  \        P
                  J /p\        P                  \        P                  4      '       d-   \        P                  R\        P                  ! V^R	7      4       \        P                  ! R
/ VB # )allow_downgradeallow_uninstallTforce_reinstallkeep_dependencieskeep_user_specsorder_requeststrict_repo_priorityzUsing solver flags:
%sindentr:   )is_updatingr  r   channel_priorityr   STRICTr   r   r   r   r   jsondumpsr   Flags)rj   r{   r   s   && r<   r   LibMambaSolver._solver_flags}  s    8#7#77 tx77t T"G$<$<@V@V$V
 GMM**II/E!1LM}}%u%%r?   c               $    V ^8  d   QhRRRRRR/# )r7   r{   r%   r   r&   r8   zlist[Request.Job]r:   )r;   s   "r<   r=   r>     s(      " % 
	r?   c                	B   VP                   '       d   V P                  W4      pM9V P                  4       '       d   V P                  W4      pMV P	                  W4      p. p/ pVP                  4        F  w  rg\        V^4       F  w  rV P                  V	4      p
VP                  V! V
4      4       \        P                  \        P                  4      '       d5   VP                  VP                  . 4      P                  \        V	4      4       V\         P"                  8X  g   K  \%        V	4      p	WP&                  RV 2&   K  	  K  	  \        P                  \        P                  4      '       d/   \(        P*                  ! V^R7      p\        P-                  RV4       V# )r   zpin-r  z)The solver will handle these requests:
%s)is_removing_specs_to_request_jobs_remover   "_specs_to_request_jobs_conda_build_specs_to_request_jobs_addr   	enumerate_conda_spec_to_libmamba_specappendr   r   r   INFOr   __name__r9   r   Pinr   r   r  r  r   )rj   r{   r   r   request_jobsjson_friendlyJobTypespecsidx
conda_speclibmamba_specjson_strs   &&&         r<   r   %LibMambaSolver._specs_to_request_jobs  s?   
 55hJD**,,::8OD228GD"jjlNG#,UA#6 $ A A* M##GM$:;##GLL11!,,W-=-=rBII#j/Zgkk)!*:!6J3=NNT#<0 $7 + GLL))zz-:HHHA8Lr?   c               $    V ^8  d   QhRRRRRR/# r7   r{   r%   r   r&   r8   z$dict[Request, list[MatchSpec | str]]r:   )r;   s   "r<   r=   r>     s-     D D"D %D 
.	Dr?   c                	   \        \        4      p. VP                  OVP                  OVP                  OVP
                  O Uu0 uF  pWAP                  9   g   K  VkK  	  ppR pVP                  P                  R4      pVP                  P                  R4      pV'       d   V'       d   VP                  V4      '       * pVP                   EF  p	VP                  P                  V	4      p
V
'       d!   V P                  V
P                  4       4      pMRpV P                  VP                  P                  V	4      4      pV P                  VP                  P                  V	4      4      pV P                  VP                  P                  V	4      4      pV P                  VP                  P                  V	4      4      pW9   dA   VP                  '       g/   V'       g'   V\        P                   ,          P#                  V4       V'       d9   VP$                  '       g'   V\        P&                  ,          P#                  V4       V'       d   VP$                  '       d   V'       d   VP$                  '       g   TpMTpV
'       dv   V\        P(                  ,          P#                  V4       V	R V\        P                   ,           4       9  d*   V\        P                   ,          P#                  V	4       EK*  EK-  V\        P*                  ,          P#                  V4       EKV  WP,                  9   d*   V\        P(                  ,          P#                  V	4       EK  VP                  '       d   EK  V	R8X  do   V
'       dg   V'       g_   RP/                  V
P0                  P3                  R4      R,          4      pV\        P&                  ,          P#                  RV R24       EK  V'       d   V'       d   VP4                  ^8X  d   \7        VP0                  ;'       g    R4      pVP9                  R	4      '       d   V	 R
VR,           2pM2VP9                  R4      '       d	   V	 R
V 2pMV'       d
   V	 R
V R2pMT	pV\        P*                  ,          P#                  V4       EK  V\        P*                  ,          P#                  V4       EK  V
'       g   EK  V'       d   EK  VP:                  P<                  pV'       d   VP$                  '       d   RpV'       d@   V
P>                  f2   V
P@                   F!  p\C        V4      PD                  R9   g   K  R p M	  V'       g   EK  V\        PF                  ,          P#                  V4       EK  	  / p\        P&                  \        P*                  \        P(                  \        P                   \        PF                  3 F  pVV9   g   K  VV,          VV&   K  	  V# u upi )FpythonNc              3  L   "   T F  p\        V4      P                  x  K  	  R # 5irR   )r   r   )rT   specs   & r<   rV   <LibMambaSolver._specs_to_request_jobs_add.<locals>.<genexpr>  s     #YEXTIdO$8$8EXs   "$.:Nr7   Nzpython .* == :r7   NNT)z!=><)r,  
python_abi)$r   r   historyaggressive_updatespinneddo_not_remover   getr#  match_check_spec_compatr   rw   r   rp   r   Keepr  is_name_only_specr  UpdateInstallalways_updater   versionr   
strictnessr9   
startswithrn   FREEZE_INSTALLEDrP   dependsr   r   Freeze)rj   r{   r   taskspkguser_installedpython_version_might_changeinstalled_pythonto_be_installed_pythonr   r   installed_specrw   r8  r:  conflictingr.  pyverrD  spec_strlockdepreturned_tasks	task_types   &&&                     r<   r  )LibMambaSolver._specs_to_request_jobs_add  s   
 D!!!,,  ''		
 ((( C 	 	
" ',##--11(;!*!4!4X!> 6.D.J.JK[.\*\'OOD'/'9'9'='=d'CI!%!8!89P9P9R!S!%#'#:#:8;M;M;Q;QRV;W#XI!%!8!89I9I9M9Md9S!TG $ 7 78K8KD8Q RF%)%<%<Y=P=P=T=TUY=Z%[K%hnnn[gll#**>: f666 gkk"))&1 ...6&BZBZBZ "D$D'..)006#YU7<<EX#YYgll+2248 Z '//*11$7///gnn%,,T2 !i!2!2!8!8!=b!ABgkk"))GE7"*=>7#5#5#: "'//"7"7R8G))$//&*V1WR[M#: ++,<==&*V1WI#6 &*V1WIR#8#''//*11(;'//*11':  $33DDD&":":":#2y7G7G7O#,#4#4C(~226NN', % $5 tgnn-44^Da $p KKOONNLLNN
I E!,1),<y)
 s	
s   XXc               $    V ^8  d   QhRRRRRR/# r*  r:   )r;   s   "r<   r=   r>   2  s$      (5F	-r?   c                	   \        \        4      pVP                  P                  4        Fk  w  rEWAP                  9   g   WAP
                  9   g   K'  VP                  4       P                  4       pV\        P                  ,          P                  V4       Km  	  VP                  P                  4        FE  w  rFV P                  V4      pV\        P                  ,          P                  \        V4      4       KG  	  \        V4      # rR   )r   r   r   r   r8  r9  r   conda_build_formr   r?  r  rw   r>  Remover9   r   )rj   r{   r   rJ  r   r   r.  s   &&&    r<   r  ,LibMambaSolver._specs_to_request_jobs_remove2  s    
 D! &--335LD'''43N3N+N ++->>@gll#**40 6 #,,224JD**40D'..!((T3 5 E{r?   c               $    V ^8  d   QhRRRRRR/# r*  r:   )r;   s   "r<   r=   r>   L  s$      (5F	-r?   c                	Z   \        \        4      pVP                  P                  4        Ft  w  rEVP	                  R 4      '       d   K  V P                  V4      pV P                  V4      pV\        P                  ,          P                  VP                  4       4       Kv  	  \        V4      # )__)r   r   rw   r   rF  r>  "_fix_version_field_for_conda_buildr   rB  r  r[  r   )rj   r{   r   rJ  r   r.  s   &&&   r<   r  1LibMambaSolver._specs_to_request_jobs_conda_buildL  s     D!",,224JDt$$**40D::4@D'//"))$*?*?*AB 5 E{r?   c               (    V ^8  d   QhRRRRRRRR/# )r7   r   r    r   r&   r   r   r8   r:   )r;   s   "r<   r=   r>   ^  s2      " % 	
 
r?   c                	   VP                    F  p\        VR R4      p\        VRR4      pV'       dO   VP                  P                  R4      '       d   KH  V P	                  WQ4      pWrP
                  VP                  &   Ks  V'       g   K}  VP                  P                  R4      '       d   K  V P	                  Wa4      pVP
                  P                  VP                  R4       K  	  V# )installNrO   r`  )actionsr   r   rF  _package_info_to_package_recordr   pop)rj   r   r   r   actionrecord_to_installrecord_to_remover   s   &&&&    r<   r   LibMambaSolver._export_solution^  s     &&F-4VY-M,3FHd,K $))44T::==>OW17!!&++.!!#((33D99==>NV!!%%fkk48 ' r?   c               $    V ^8  d   QhRRRRRR/# )r7   rK  r2   r   r    r8   r   r:   )r;   s   "r<   r=   r>   s  s(     8
 8
8
 #8
 
	8
r?   c           
     	   VP                   \        P                  8X  d   R pM$VP                   \        P                  8X  d   RpMRpVP                   F`  pVP
                  P                  VP                  4      '       g   K0  VP
                  P                  VP                  VP                  4      p M	  VP
                  p\        V4      p\        VP                  4      pVP                  '       gY   \        VP                  VP                  VP                   VP"                  VP$                  VP&                  VP(                  R7      p\+        R/ RVP$                  bRVP,                  bRVP.                  bRVP0                  bRVbR	VbR
VP&                  bRVP2                  bRVP4                  bR\7        VRR4      ;'       g    RbRVP8                  bRVP:                  bRVP<                  bRVP>                  bRVP@                  bRVPB                  bRVPD                  bRVbRVPF                  bRVPH                  b # )r,  genericN)r   authlocationtokenr   r]   package_filenamer   rD  buildbuild_numberr   urlr   fnlicensepython_site_packages_pathr2  md5sha256
signaturestrack_featuresrH  
constrainsdefaulted_keysrP   size	timestampr:   )%rP   r   PythonGenericrepospackage_urlrF  url_no_credreplace
url_w_credr   r   r   r   r   rp  rq  rr  r   r]   rs  r   rD  build_stringru  filenamerx  r   rz  r{  r|  r}  dependenciesr~  r  r  r  )rj   rK  r   rP   	repo_inforv  r   s   &&&    r<   rg  .LibMambaSolver._package_info_to_package_records  s&   
 ::***FZZ:---FFI)))*?*?@@oo--i.C.CYEYEYZ %
 //CS! #++&~~~ ~~\\ ))mm\\!(!9!9G  

KK
 ""
 ))	

 
 
 <<
 ||
 KK
 '.c3NPR&S&[&[W[
 
 ::
 ~~
 --
 $$
  ~~!
" --#
$ %
& '
( mm)
 	
r?   c               $    V ^8  d   QhRRRRRR/# )r7   
unsolvabler1   r   r0   r8   Mapping[str, MatchSpec]r:   )r;   s   "r<   r=   r>     s'     K
 K
 K
 K
F] K
r?   c           	     l   . p. p. pRpVP                  V4       F  pVR8X  d   RpK  VP                  V4       K!  	  V'       d   VP                  R4        VP                  V\        4      pV EF  p
V
P                  4       pRV
9   d   V^ ,          R	8w  g   V^,          R
8w  d   \        RV
 24      hVP                  V P                  V^,          4      4       VP                  R4      pVP                  V P                  V^V 4      4       K  RV
9   d   RRr\        V4       F#  w  ppVR8X  d   TpK  VR8X  g   K  V^,           pK%  	  Ve(   VP                  V P                  VR,          4      4       VP                  V P                  WV 4      4       EK.  RV
9   d2   RV
9   d+   VP                  V P                  VR,          4      4       EKf  RV
9   d   RV
9   dx   V^,          P                  R^4      ^ ,          pV^,          P                  R^4      ^ ,          pVP                  \        V4      4       VP                  \        V4      4       EK  RV
9   d+   VP                  V P                  V^,          4      4       EK  V
R8X  d   VP                  4        Fz  pVP                  R4      P!                  4       pVP                  4       pRV9   g   K;  RV9  g   KD  VP                  R4      pVP                  V P                  VRV 4      4        EK  	  EK  \
        P                  RV
4       EK  	  RV Uu/ uF  pVP"                  VbK  	  upRV Uu/ uF  pVP"                  VbK  	  up/#   \         d%   p	\
        P                  RT	R7       Rp Rp	?	EL7Rp	?	ii ; iu upi u upi )u:  
Problems can signal either unsatisfiability or unavailability.
First will raise LibmambaUnsatisfiableError.
Second will raise PackagesNotFoundError.

Libmamba can return spec strings in two formats:
- With dashes, e.g. package-1.2.3-h5487548_0
- à la conda-build, e.g. package 1.2.* *
- just names, e.g. package
Fzunsupported requestTzCannot explain problemsexc_infor2  Nz&none of the providers can be installedpackagerequireszUnknown message: butznothing providesneededprovideszhas constraintzconflicting withzcannot install both pin-zand pin--#is excluded by strict repo priorityu   │├└─ zdoes not existwhichdoesz!! Problem line not recognized: %sr   	not_found)problemsr  explain_problemsr$   	Exceptionr   r   r   r_   _matchspec_from_error_strr   r  rsplitr   
splitlineslstripstripr   )clsr  r   r   r  r  has_unsupportedproblemexplained_problemsr   linewordsendstartmarkeriwordpin_apin_bexplained_lineexplained_wordsr[   s   &&&                   r<   _parse_problemsLibMambaSolver._parse_problems  sV    		!**2.G//"&(	 /
 OO12	$!+!<!<RAX!Y DJJLE74?8y(E!H
,B$'8%?@@  !>!>uQx!HIkk%(  !>!>uQs|!LM#t+ $dv(/GAtx'!"+ !A	  0
 %$$S%B%B59%MN  !>!>u6?R!ST!T).@D.H   !>!>uRy!IJ+t3
d8JaQ/2aQ/2  5!12  5!126$>  !>!>uQx!HI.. '9&C&C&EN%3%:%:?%K%Q%Q%SN&4&:&:&<O'>9g^>[-33F;!(()F)FW[X[G\)]^ 'F 		=tDU Z Y7Y!&&!)Y7Y7Y!&&!)Y7
 	
_  	$II/#I>!#	$` 87s$   M: N, N1
:N)N$$N)c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r7   r  r1   r   r    r   r&   previous_conflictsr  r8   Noner:   )r;   s   "r<   r=   r>      s<     - -- #- %	-
 4- 
-r?   c                	   V P                  WP                  4      pV P                  / VR ,          CVR,          CV P                  WP                  V4      R7       VR ,          pVR,          pV'       g   V'       d   \        P                  \        P                  4      '       dM   \        P                  R\        VP                  4       4      VP                  VP                  \        4      4       \        \        VP                  4       4      \        VP                  4      4      pRVn        VhT;'       g    / p	\#        V	P                  4       4      p
\#        VP                  4       4      pVP%                  V
4      p\'        V4      ^8  d   RV9   d   VP)                  R4       V	'       d   W8X  g   \'        V4      ^
8  d1   V P                  WP                  V4      p\+        V4      pRVn        VhV# )r   r  )r   z4Inferred PackagesNotFoundError %s from conflicts:
%sFr,  )r  r   _maybe_raise_for_conda_buildr   r   r   r   r   r   rg   keysr  r$   r   r   rF   r   r   
differencer   rh  r   )rj   r  r   r   r  parsed_problemsunsatisfiabler  r   previousprevious_setcurrent_setdiffr   s   &&&&&         r<   r   (LibMambaSolver._maybe_raise_for_problems   s    ..z88D))L{+L{/KL22:xxS 	* 	

 (4#K0	..		K)..*+//:QR (i.>.>.@(A5CXYC#COI%++8??,--..01%%l3t9q=X6 h',53t9?44Z9UG,W5C#COIr?   c               (    V ^8  d   QhRRRRRRRR/# )	r7   r  r1   r   r0   r   r&   r8   r9   r:   )r;   s   "r<   r=   r>   /  s,      $*2?P	r?   c                	   VP                  V4      pR pRV9  d   RpRpMRV9   d   \        P                  R4       RpV'       d(    VP                  V\        4      pVRV,           ,          pVP                  '       dF   R
V9   d?   RpVP                  P                  4        F  w  rVRV
 R2,          pK  	  VRV 2,          pV#   \
         d"   p\        P                  RTR7        R	p?LR	p?ii ; i)Tz - z Failed with empty error message.Fr  z=Skipping error explanation. Excluded by strict repo priority.
zFailed to explain problemsr  Nzpin on zBPins seem to be involved in the conflict. Currently pinned specs:
z

)	r   r   r   r  r#   r  warningr   r   )rj   r  r   r   r   explainexplained_errorsr   pin_messager   r.  s   &&&&       r<   r   (LibMambaSolver._prepare_problems_message/  s     ,,R08GG2g=HHTUGH#-#>#>rCW#X 4"222 >>>i72_K$>>//1TF"~- 2k]++G  H83GGHs   &C C2C--C2c               $    V ^8  d   QhRRRRRR/# )r7   conflicting_specsr  r   r9   r8   r  r:   )r;   s   "r<   r=   r>   J  s(      2  
	r?   c                	    V P                  4       '       g   R # V'       g   R # ^RIHp \        R V P                   4       \
        P                  4      pV! \        VP                  4       4      \        VP                  4       4      VVR7      pVh)N)%ExplainedDependencyNeedsBuildingErrorc              3  6   "   T F  qR 8w  g   K  Vx  K  	  R# 5irY   r:   )rT   r   s   & r<   rV   >LibMambaSolver._maybe_raise_for_conda_build.<locals>.<genexpr>\  s     OL&h<NvvLr\   )packages
matchspecsr   explanation)
r   conda_build_exceptionsr  rh   rH   r   r   r   r  r   )rj   r  r   r  r   r   s   &&&   r<   r  +LibMambaSolver._maybe_raise_for_conda_buildJ  sy     ,,.. Q ODLLOQXQ_Q_`3+0023-4467	
 	r?   c                   V ^8  d   QhRR/# )r7   r8   r  r:   )r;   s   "r<   r=   r>   j  s     * *4 *r?   c                	2   \         P                  R \        4       \         P                  R\        4       \         P                  R\	        4       4       \         P                  RV P
                  4       \         P                  R\        P                  4       R# )zconda version: %sz!conda-libmamba-solver version: %szlibmambapy version: %szTarget prefix: %rzCommand: %sN)r   r   _conda_versionr	   r"   rE   sysargv)rj   s   &r<   r|   LibMambaSolver._log_infoj  sV    $n54kB)=?;$dkk2)r?   c                   V ^8  d   QhRR/# )r7   r8   rt   r:   )r;   s   "r<   r=   r>   q  s     
 
$ 
r?   c                    \        V RR4      ;'       dA    R\        P                  9   ;'       d&    RR0\        4        Uu0 uF  q^,          kK  	  up8*  # u upi )a  
conda build calls the solver via `conda.plan.install_actions`, which
overrides Solver._index (populated in the classic solver, but empty for us)
with a custom index. We can use this to detect whether conda build is in use
and apply some compatibility fixes.
r   Nconda_buildinstall_actionsget_install_actions)r   r  modulesr   )rj   frames   & r<   r   'LibMambaSolver._called_from_conda_buildq  sh     D(D) ^ ^,^ ^ #$9:UZU\>]U\EQxxU\>]]	
 ?^s    Ac                    V ^8  d   QhRRRR/# )r7   r.  zMatchSpec | Noner8   r:   )r;   s   "r<   r=   r>     s     ( ('7 (<L (r?   c                	,   Vf   R # / pVP                    Fr  pVP                  V4      pV'       g   K  VR8X  dJ   \        V4      R8X  d   K7  \        VRR4      '       g%   \        VRR4      '       d   VP                  VR&   Kn  WBV&   Kt  	  \        R/ VB # )Nr   z	<unknown>r   r2  r]   r   r:   )FIELD_NAMESget_raw_valuer9   r   r]   r   )rj   r.  spec_fieldsfieldvalues   &&   r<   r>  !LibMambaSolver._check_spec_compat  s    <%%E&&u-EuI%5z[0 "5&"55 #5*b9949NNK1 %*E" & ';''r?   c                    V ^8  d   QhRRRR/# )r7   r.  r   r8   LibmambaMatchSpecr:   )r;   s   "r<   r=   r>     s     2 2 2?P 2r?   c                	@    \         P                  ! \        V4      4      # rR   )r  parser9   )rj   r.  s   &&r<   r  +LibMambaSolver._conda_spec_to_libmamba_spec  s     &&s4y11r?   c                    V ^8  d   QhRRRR/# )r7   r.  r   r8   r:   )r;   s   "r<   r=   r>     s       y 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\.]+$r0  r1  *r4  )
rD  recompiler9   r=  r[  r   countr   r   )r.  only_dot_or_digit_reversion_strr  s   &   r<   ra  1LibMambaSolver._fix_version_field_for_conda_build  s     <<<#%::l#; dll+Kxx,::"335;;=$$S)Q.%04%7KN%03%6KN +!677r?   c                    V ^8  d   QhRRRR/# )r7   r.  zstr | Sequence[str]r8   r   r:   )r;   s   "r<   r=   r>     s     G G(; G	 Gr?   c                	    \        V \        4      '       d#   V P                  R ^4      w  rp\        WVR7      # RV ^ ,          P	                  R4      /p\        V 4      ^8  d   V ^,          R8w  d   V ^,          P                  R4      '       g   V ^,          P                  R4      '       g   V ^,          P	                  R4      VR&   M)V ^,          R,          P	                  R4      R	,           VR&   \        V 4      ^8X  d*   V ^,          R
8w  d   V ^,          P	                  R4      VR&   \        R/ VB #   \         d   p\        RT  24      ThRp?ii ; i)r  )r   rD  rt  r   ,z=*r3  =rD  :r   NNr1  r  rt  zCould not parse spec: Nr:   )	r   r9   r  r   rstripr   rF  r  r_   )r.  r   rD  rt  kwargsr   s   &     r<   r  (LibMambaSolver._matchspec_from_error_str  s%   	G$$$'+{{3':$u d5II $q'.."56t9>d1goAw))$//tAw7I7I#7N7N,0GNN3,?y),0GBK,>,>s,Cd,Jy)t9>d1gn&*1gnnS&9F7O *6** 	G5dV<=3F	Gs*   7D7 AD7 D7 .BD7 7EEEc                   V ^8  d   QhRR/# r6   r:   )r;   s   "r<   r=   r>     s     ! ! !r?   c                	B   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 P                  R8X  d)   V'       g!   \
        P                  R\        4       \        # V P                  # )Frepodata_fnsTzcurrent_repodata.jsonz>Ignoring repodata_fn='current_repodata.json', defaulting to %s)r   collect_allr   r   re   r   r   r
   )rj   is_repodata_fn_setconfigkeyr  s   &    r<   rd   -LibMambaSolver._maybe_ignore_current_repodata  s    "))+224F$lln
.(UU)-& - 5
  77@RIIP    r?   c               $    V ^8  d   QhRRRRRR/# )r7   r{   r%   defaultr   r8   r:   )r;   s   "r<   r=   r>     s"      &6  S r?   c                	   \         P                  P                  R 4      p\        VP                  4      pV'       dD    \        V4      pT^8  d   \        RT R24      hYT8  d   \        P                  RTT4       T# T# VP                  P                  '       d   V'       d   \        V P                  V4      # V#   \         d    \        RT R24      hi ; i)"CONDA_LIBMAMBA_SOLVER_MAX_ATTEMPTSz$CONDA_LIBMAMBA_SOLVER_MAX_ATTEMPTS='z'. Must be int.z'. Must be >=1.zuCONDA_LIBMAMBA_SOLVER_MAX_ATTEMPTS='%s' is higher than the number of installed packages (%s). Using that one instead.)rb   environr<  r   r   r   r_   r   r   r  rn   rG  minMAX_SOLVER_ATTEMPTS_CAP)rj   r{   r  from_env_varinstalled_countmax_attempts_from_envs   &&&   r<   r   LibMambaSolver._max_attempts  s    zz~~&JKh001(+L(9%
 %q(%:;P:QQ`a  '8G)#	 '&,,%%666? t33_EEN1  %:<.X s   B< <Cc               (    V ^8  d   QhRRRRRRRR/# )	r7   
link_precszIterable[PackageRecord]r   zLibMambaIndexHelper | Nonefinal_statezIterable[PackageRecord] | Noner8   r  r:   )r;   s   "r<   r=   r>     s8     U U+U *U 4	U
 
Ur?   c                  a Vf   Vf   R# \         P                  '       d   \         P                  '       d   R# \        \         P                  4      pVP                  RR4      pV'       g   R# VP                  P                  pV\        RRR39   d   RpVP                   Uu0 uF  p\        VRV4      kK  	  ppWh9  d   R# V R\         2p	\        V	4      o\        V P                  \         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      p
V
'       d   \%        V
R R7      pRV R2pVP'                  4       '       d%   VP                  RR4      '       d   RpM	VR,          p\)        \+        R\         RVP,                   RV R24      \.        P0                  R7       R# R# 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.
Nconda@z	<develop>pypidefaultsrS   z::conda>c              3  F   <"   T F  pSP                  V4      x  K  	  R # 5irR   )r=  )rT   r   conda_newer_specs   & r<   rV   8LibMambaSolver._notify_conda_outdated.<locals>.<genexpr>#  s      Lf#))&11s   !TFc                ,    \        V P                  4      # rR   )r   rD  )xs   &r<   <lambda>7LibMambaSolver._notify_conda_outdated.<locals>.<lambda>+  s    L<Sr?   )r
  zconda update -n base -c z condaz
conda-selfzconda self updatez --override-frozenzq

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

                    Please update conda by running

                        $ z

                    )r   )r   notify_outdated_condaquietr   root_prefixr<  r   rS   r   rF   r   r  r   r   rE   conda_prefixanysearchmax	is_frozenprintr   rD  r  stderr)rj   r  r   r  prefix_datacurrent_conda_prefix_recchannel_namechnindex_channelsconda_newer_strconda_newer_recordsnewestconda_update_messager   s   &&&&         @r<   r   %LibMambaSolver._notify_conda_outdated  s    =[0 ,,, !4!45#.??7D#A ' /77FFOS+vFF%L JOX#'#'7=X- *N(>2BC$_5
 t{{G$8$899sLLsssLLLL $ll?; ,2STF%=l^6#R $$&&??<66+>((,@@(* +9)9 :))/(8 9 00 1
 ZZ ' Ys   $G-)rf   ri   re   r   rH   r:   )r:   rR   )r   )NN),r  
__module____qualname____firstlineno__r  	_uses_sscstaticmethodr   rA   r
   r   ra   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   rg  classmethodr  r   r   r  r|   r   r>  r  ra  r  rd   r   r   __static_attributes____classcell__)rk   s   @r<   r4   r4   P   sZ    I
S  S "$2457&#,
 =A,
 ,
` 37.2"&*%)#(6v
.&** x( )8
% x(- )-^<&&8DL4$*8
~ K
 K
Z-^6@*
(((2   G G$!@U Ur?   r4   )`__doc__
__future__r   r  r   rb   r  r  collectionsr   	functoolsr   inspectr   	itertoolsr   textwrapr   typingr   r  r	   r  conda.base.constantsr
   r   r   conda.base.contextr   conda.common.constantsr   conda.common.ior   conda.common.pathr   conda.common.urlr   conda.core.prefix_datar   conda.core.solver   conda.exceptionsr   r   r   conda.models.channelr   conda.models.match_specr   conda.models.recordsr   conda.models.versionr   conda.reportersr   libmambapy.solverr   r   libmambapy.solver.libsolvr   libmambapy.specsr  r   r2  
exceptionsr   r   r    mamba_utilsr!   r"   r#   r$   stater%   r&   collections.abcr'   r(   r)   boltons.setutilsr*   conda.auxlibr+   r,   r-   r.   conda.gateways.shardsr/   r0   r1   r2   	getLoggerr  r   r4   r:   r?   r<   <module>rc     s    #   	 	 
 #       / 
 ' ' ) ) + - # 
 ) - . - ' / = ; '  2 &  7;;+" +9>,&
+,rV rr?   