
    \Zi                    b   S r SSKJr  SSKrSSKrSSKJr  SSKJrJ	r	  SSK
Jr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJrJrJrJr  SSKJr  SSKJrJr  SSK J!r!J"r"  SSK#J$r%  SSK#J&r&  SSK'J(r(J)r)  SSK*J+r+J,r,J-r-J.r.J/r/  SSK0J1r1  SSK2J3r3  SSK4J5r5  SSK6J7r7  SSK8J9r9  SSK:J;r;  SSK<J=r=  SSK>J?r?  SSK@JArAJBrB  SSKCJDrDJErE  SS KFJGrG  SS!KHJIrI   SS"KJJJrJ  \(       a  SS#KMJNrNJOrO  SS$KPJQrQ  \	" \R5      rS " S% S&5      rT " S' S(5      rUS,S) jrVS*\4     S-S+ jjrWg! \K a	    SS"KLJJrJ   NSf = f).z"The classic solver implementation.    )annotationsN)chain)DEBUG	getLogger)dedent)TYPE_CHECKING   )
CondaError)__version__)memoizedproperty)dals)REPODATA_FNUNKNOWN_CHANNELDepsModifierUpdateModifier)context)NULLTRACE)dashlisttime_recorder)groupby_to_dict)unique)get_major_minor_versionpaths_equal)NoChannelsConfiguredErrorPackagesNotFoundInChannelsErrorPackagesNotFoundInPrefixErrorSpecsConfigurationConflictErrorUnsatisfiableError)HistoryChannel)
NoarchType	MatchSpec)PrefixGraph)VersionOrder)get_spinner)Resolve   )IndexReducedIndex)PrefixSetupUnlinkLinkTransaction)
PrefixData)
SubdirData)
frozendict)IterableSequence)PackageRecordc                  >   \ rS rSr% SrS\S'   S\S'   SSSS\\4           SS	 jjr\\\\\\S
4 SS jjr	\\\\\\S
4 SS jjr
\\\\\S
4 S S jjrS rS rS r\" \ S9S 5       rS r\" \ S9S 5       rS rS rS r\" \ S9S 5       rS rS rS!S jrSrg)"Solver:   z
A high-level API to conda's solving logic. Three public methods are provided to access a
solution in various forms.

  * :meth:`solve_final_state`
  * :meth:`solve_for_diff`
  * :meth:`solve_for_transaction`
zReducedIndex | None_indexzResolve | None_rN c                0   Xl         U=(       d    [        R                  U l        [	        [        S U R                   5       5      5      U l        [	        U=(       d    [        R                  5      U l        [        [        R                  " S U 5       5      5      U l
        [        S U R                   5       5      U l        [        [        R                  " S U 5       5      5      U l        [        S U 5       5      U l        [        S U 5       5      U l        SU l        Xpl        [#        U R                  5      [        R$                  -
  =n(       a   ['        S[)        [+        U5      5       35      eX`l        S	U l        S	U l        S
U l        0 U l        g	)a  
Args:
    prefix (str):
        The conda prefix / environment location for which the :class:`Solver`
        is being instantiated.
    channels (Sequence[:class:`Channel`]):
        A prioritized list of channels to use for the solution.
    subdirs (Sequence[str]):
        A prioritized list of subdirs to use for the solution.
    specs_to_add (set[:class:`MatchSpec`]):
        The set of package specs to add to the prefix.
    specs_to_remove (set[:class:`MatchSpec`]):
        The set of package specs to remove from the prefix.

c              3  8   #    U  H  n[        U5      v   M     g 7fNr!   ).0cs     0lib/python3.13/site-packages/conda/core/solve.py	<genexpr>"Solver.__init__.<locals>.<genexpr>b   s     $HAWQZZ   c              3  $   #    U  H  ov   M     g 7fr=   r:   r>   ss     r@   rA   rB   d   s     5NAa   c              3  8   #    U  H  oR                   v   M     g 7fr=   namer>   _s     r@   rA   rB   e   s     +N<MqFF<MrC   c              3  $   #    U  H  ov   M     g 7fr=   r:   rE   s     r@   rA   rB   f   s     8TOqOrG   c              3  8   #    U  H  n[        U5      v   M     g 7fr=   r$   rE   s     r@   rA   rB   g   s     .R\y||\rC   c              3  8   #    U  H  n[        U5      v   M     g 7fr=   r$   rE   s     r@   rA   rB   h   s     1X1)A,,rC   r:   zUnknown subdir(s):NF)prefixr   channels	_channelstupler   subdirs	frozensetr%   mergespecs_to_addspecs_to_add_namesspecs_to_removeunmerged_specs_to_addunmerged_specs_to_removeneutered_specs_commandsetknown_subdirs
ValueErrorr   sorted_repodata_fnr8   r9   	_prepared_pool_cache)	selfrP   rQ   rT   rW   rY   repodata_fncommandunknown_subdirss	            r@   __init__Solver.__init__G   s/   2 !5W%5%5f$H$HHIW78%ioo5N5N&NO"++ND<M<M+N"N(8TO8T)TU%..R\.R%R"(11X1X(X% !$,,/'2G2GGG?G1(6/;R2S1TUVV'    Fc           
        U R                   (       aj  U R                  (       a  [        U R                  5      S:X  a@  [        U R                    Vs/ s H!  oR                  (       d  M  UR                  PM#     snS9eU R
                  [        R                  :X  a  [        R                  (       a
  [        5       e[        R                  R                  U R                  U R                  5        U R                  UUUUUUU5      u  p[        R                  R                  U R                   U	U
5        U R#                  U
5        [%        ['        U R
                  U	U
U R                  U R                  U R(                  5      5      $ s  snf )a  Return an UnlinkLinkTransaction instance that can be used to execute the solution
on an environment.

Args:
    deps_modifier (DepsModifier):
        See :meth:`solve_final_state`.
    prune (bool):
        See :meth:`solve_final_state`.
    ignore_pinned (bool):
        See :meth:`solve_final_state`.
    force_remove (bool):
        See :meth:`solve_final_state`.
    force_reinstall (bool):
        See :meth:`solve_for_diff`.
    should_retry_solve (bool):
        See :meth:`solve_final_state`.

Returns:
    UnlinkLinkTransaction:

r   packages)rW   rQ   lenr   rJ   rP   r   root_prefixenable_private_envsNotImplementedErrorplugin_managerinvoke_pre_solvesrZ   r[   solve_for_diffinvoke_post_solvesrb   _notify_conda_outdatedr.   r-   r\   )re   update_modifierdeps_modifierpruneignore_pinnedforce_removeforce_reinstallshould_retry_solvespecunlink_precs
link_precss              r@   solve_for_transactionSolver.solve_for_transactiont   sF   > dmms4==7IQ7N+040A0AO0AYY)$))0AO  ;;'---'2M2M &'' 	00&&))	

 $(#6#6$
  	11	
 	##J/$--**##	
 		
G Ps   F'Fc                    U R                  UUUUUU5      n[        U R                  XR                  U5      u  p[	        S U	5      R                  S5      nU(       a  [        S[        S U 5       5       35      eX4$ )an  Gives the package references to remove from an environment, followed by
the package references to add to an environment.

Args:
    deps_modifier (DepsModifier):
        See :meth:`solve_final_state`.
    prune (bool):
        See :meth:`solve_final_state`.
    ignore_pinned (bool):
        See :meth:`solve_final_state`.
    force_remove (bool):
        See :meth:`solve_final_state`.
    force_reinstall (bool):
        For requested specs_to_add that are already satisfied in the environment,
            instructs the solver to remove the package and spec from the environment,
            and then add it back--possibly with the exact package instance modified,
            depending on the spec exactness.
    should_retry_solve (bool):
        See :meth:`solve_final_state`.

Returns:
    tuple[PackageRef], tuple[PackageRef]:
        A two-tuple of PackageRef sequences.  The first is the group of packages to
        remove from the environment, in sorted dependency order from leaves to roots.
        The second is the group of packages to add to the environment, in sorted
        dependency order from roots to leaves.

c                    U R                   $ r=   )is_unmanageable)precs    r@   <lambda>'Solver.solve_for_diff.<locals>.<lambda>   s
    D,@,@rk   Tz$Cannot unlink unmanageable packages:c              3  @   #    U  H  oR                  5       v   M     g 7fr=   )	record_idr>   r   s     r@   rA   (Solver.solve_for_diff.<locals>.<genexpr>   s     ?j]iUY@P@P]i   )solve_final_statediff_for_unlink_link_precsrP   rW   groupbygetRuntimeErrorr   )re   rx   ry   rz   r{   r|   r}   r~   final_precsr   r   unmanageables               r@   ru   Solver.solve_for_diff   s    L ,,
 $>KK&7&7$
 
 @,OSS
 6x?j]i?j7j6kl  ''rk   c           	     v  ^  T R                   (       aj  T R                  (       a  [        T R                  5      S:X  a@  [        T R                    Vs/ s H!  owR                  (       d  M  UR                  PM#     snS9eU(       a  U[
        R                  :X  a  [        nU[        L a  [        R                  nO"[        [        U5      R                  5       5      nU[        L a  [        R                  nO"[        [        U5      R                  5       5      nU[        L a  [        R                  OUnU[        L a  [        R                  OUn[         R#                  ST R$                  T R&                  T R                   U5        [)        T S5      nU(       d#  [+        T R$                  UUUUUU5      n	U	T l        OT R,                  n	Xl	        X)l        Xil        T R&                  (       a_  U(       aX  T R                   (       a
  [1        5       e[3        U 4S jU	R4                   5       5      n
[3        [7        U
5      R8                  5      $ U[
        R:                  :X  a  T R&                  (       dn  U(       dg  T R                    H/  n[=        U	R>                  RA                  U5      S5      (       a  M/    O*   [3        [7        U	R4                  5      R8                  5      $ U	RB                  (       d3  [E        ST RF                   S35         T RI                  U	5      n	SSS5        U(       a  U[
        R                  :X  a  S	nO'T RF                  [J        :w  a  S
T RF                   S3nOSn[E        SUS9   T RM                  U	5      n	T RO                  U	5      n	[P        RP                  " U	R4                  5      nT RS                  U	R4                  U	RT                  5      nT RW                  U	5      n	T RY                  U	5      n	T RS                  U	R4                  U	RT                  5      nU	R                  [
        RZ                  :X  a]  T R]                  XU	R^                  Ra                  5       5      n[        U5      S:  a$  U H  nT Rc                  XyR4                  5        M      U	Rd                  (       a  [g        U5      [g        U	R4                  5      -
  [g        U	Rd                  5      -
  nU	R4                   Vs/ s H  nUR                  PM     nnU	R4                  Ri                  U Vs/ s H3  nUR                  U	RT                  ;  d  M  UR                  U;  d  M1  UPM5     sn5        T Rk                  U	5      n	SSS5        [l        Rn                  " 5         [3        [7        U	R4                  5      R8                  5      U	l        [         R#                  ST R$                  SRq                  S U	R4                   5       5      5        U	R4                  $ s  snf ! , (       d  f       GN= fs  snf s  snf ! , (       d  f       N= f)a  Gives the final, solved state of the environment.

Args:
    update_modifier (UpdateModifier):
        An optional flag directing how updates are handled regarding packages already
        existing in the environment.

    deps_modifier (DepsModifier):
        An optional flag indicating special solver handling for dependencies. The
        default solver behavior is to be as conservative as possible with dependency
        updates (in the case the dependency already exists in the environment), while
        still ensuring all dependencies are satisfied.  Options include
        * NO_DEPS
        * ONLY_DEPS
        * UPDATE_DEPS
        * UPDATE_DEPS_ONLY_DEPS
        * FREEZE_INSTALLED
    prune (bool):
        If ``True``, the solution will not contain packages that were
        previously brought into the environment as dependencies but are no longer
        required as dependencies and are not user-requested.
    ignore_pinned (bool):
        If ``True``, the solution will ignore pinned package configuration
        for the prefix.
    force_remove (bool):
        Forces removal of a package without removing packages that depend on it.
    should_retry_solve (bool):
        Indicates whether this solve will be retried. This allows us to control
        whether to call find_conflicts (slow) in ssc.r.solve

Returns:
    tuple[PackageRecord, ...]:
        In sorted dependency order from roots to leaves, the package references for
        the solved state of the environment.

r   rm   zFsolving prefix %s
  specs_to_remove: %s
  specs_to_add: %s
  prune: %ssscc              3  v   >^#    U  H-  m[        U4S  jTR                   5       5      (       a  M)  Tv   M/     g7f)c              3  D   >#    U  H  oR                  T5      v   M     g 7fr=   match)r>   r   r   s     r@   rA   5Solver.solve_final_state.<locals>.<genexpr>.<genexpr>d  s     M8L::d++8Ls    N)anyrY   )r>   r   re   s    @r@   rA   +Solver.solve_final_state.<locals>.<genexpr>a  s.      .DM8L8LMM .s   (9	9NzCollecting package metadata ()zOunsuccessful initial attempt using frozen solve. Retrying with flexible solve.
z)unsuccessful attempt using repodata from z&, retrying with next repodata source.
zfailed
zSolving environment)fail_messagez/solved prefix %s
  solved_linked_dists:
    %s
z
    c              3  @   #    U  H  oR                  5       v   M     g 7fr=   )dist_strr   s     r@   rA   r     s     I6Hd--//6Hr   )9rW   rQ   ro   r   rJ   r   FREEZE_INSTALLEDr   r   rx   strlowerry   r   r{   r|   logdebugrP   rY   hasattrSolverStateContainerr   r~   rr   rS   solution_precsr&   graphSPECS_SATISFIED_SKIP_SOLVEnextprefix_dataqueryrr(   rb   _collect_all_metadatar   _remove_specs
_add_specscopyget_request_package_in_solution	specs_map_find_inconsistent_packages_run_satUPDATE_SPECSget_constrained_packagesindexkeysdetermine_constricting_specsadd_back_mapr^   extend_post_sat_handlingr   
log_totalsjoin)re   rx   ry   rz   r{   r|   r~   r   retryingr   solutionr   r   pre_packagespost_packagesconstrainedorphan_precsrL   solution_prec_namess   `                  r@   r   Solver.solve_final_state   s   \ dmms4==7IQ7N+040A0AO0AYY)$))0AO  _(G(GG"Od"%55O,S-A-G-G-IJOD #11M(]);)A)A)CDM%2d%:G!! 	 0<t/Cw++		WKK  	
 4'&"C DH((C"1 -%7" L  )++ .. H
 X.4455 ~HHH(())COO11$7>> * [););<BBCCuu<T=N=N<OqQR005 S /^5T5T"T*  +-;D<M<M;N O0 0 
 &L.\J$$S)C//#&C!YYs'9'9:N??""CMML 2237C--$C @@""CMMM ""n&A&AA";; 1A {#a' +99$@R@RS !, '#,,-.#**+, 
 8;7I7I&J7I!qvv7I#&J"")) ".!-A666  FF*== !- ))#.CQ KT 	  "";s/A/A#B#H#HI		@KKMMIc6H6HII	
 !!!U PN SR\ 'KA KJsO   X	(X	X-FX*/X X* X%
X%
X%
X*
X 
X**
X8c                h  ^ U Vs/ s H3  o3R                   TR                   :X  d  M  [        UR                  5      PM5     snS   n/ nU GHQ  n[        U4S jUR                   5       5      (       d  M*  UR                   GH  n[        U5      nUR                   TR                   :X  d  M+  UR                  c  M:  UR                  R                  (       d  SUR                  R                  ;   d  Mq  SUR                  R                  ;   an  UR                  UR                  R                   V	s/ s H;  n	SU	R                  ;   d  M  UR                   [        UR                    SU	 35      4PM=     sn	5        M  UR                  UR                   U45        GM     GMT     U V
s/ s H#  oS   R                  R                  U::  d  M!  U
PM%     nn
[        U5      S:X  a  g [        STR                    S35        U H  n[        US    S	US    35        M     [        S
5        U$ s  snf s  sn	f s  sn
f )Nr   c              3  L   >#    U  H  nTR                   U;   d  M  Uv   M     g 7fr=   rI   )r>   jr   s     r@   rA   6Solver.determine_constricting_specs.<locals>.<genexpr>  s     =ldii1n11l   $	$<, r*   z

Updating z is constricted by 
z -> requires z
If you are sure you want an update of your package either try `conda update --all` or install a specific version of the package you want using `conda install <pkg>=<version>`
)rJ   r'   versionr   dependsr%   exact_valuer   r   tupappend
matcher_voro   print)re   r   r   sphighest_versionconstrictingr   depm_depvihard_constrictingconsts    `           r@   r   #Solver.determine_constricting_specs  s   /=
/=DIIAU$L$~

 "D=dll===<<C%cNE

dii/!MM5"]]66#ASAS:S%--"4"44(// .3]]->->!"->'*aff} %PTYY	UZZL!:M0N$O->!" )//E0BC! ( #* $
#!t||'>'>/'QA| 	 
  !Q&dii[(=>?&EU1XJmE!H:67 'G	

 ! M
!"
s"   H%H%.H**H*$ H/H/c                   0 nU R                    H  nUR                  nU Vs/ s HE  nUR                  U:X  d  M  UR                  c  M$  UR                  [        UR                  5      4PMG     snX5'   X5   R	                  UR                  5        VVs/ s H<  u  pxXu:X  d  M  UR                  c  M  UR                  [        UR                  5      4PM>     snn5        M     U$ s  snf s  snnf r=   )rW   rJ   r   r   r   items)	re   r   r   requested_packagespkgupdate_pkg_requestr   kr   s	            r@   r   &Solver.get_request_package_in_solution  s    $$C!$ (6'A66// )45II )QYY('62
 299 !* 1 1. -3499 -QVVS^, 1 %  "!6s"   C$C$	%C$C)"C)1%C)c                R  ^ [        5       nS nU" U5      (       d  U" U5      (       a  U$ U R                   Hl  mTR                  R                  S5      (       a  M%  [	        S UTR                      5       5      nU[	        U4S jU 5       5      :X  a  M_  X!:X  d  Mf  UT1-  nMn     U$ )Nc                X    U R                  5        H  u  p[        U5      S:X  d  M    g   g)Nr   TF)r   ro   )r   r   r   s      r@   empty_package_list;Solver.get_constrained_packages.<locals>.empty_package_list  s'    		q6Q; $ rk   __c              3  *   #    U  H	  oS    v   M     g7f)r*   Nr:   )r>   r   s     r@   rA   2Solver.get_constrained_packages.<locals>.<genexpr>  s     !G0F1A$0Fs   c              3  r   >#    U  H,  oR                   TR                   :X  d  M  UR                  v   M.     g 7fr=   rJ   r   )r>   r   r   s     r@   rA   r   	  s'      &#-a3881C			:s   77)r^   rW   rJ   
startswithmax)re   r   r   
index_keysupdate_constrainedr   current_versionr   s          @r@   r   Solver.get_constrained_packages  s     U	 l++/A-/P/P%%$$Cxx""4((!!GSXX0F!GGO# &#-& #   0);se)C& % "!rk   )module_namec                6   UR                   (       a  1 U R                  kU R                  knGOUR                  R	                  UR
                  5        S HO  nX1R                  ;  d  M  UR                  R                  US 5      (       d  M7  [        U5      UR                  U'   MQ     [        5       R                  nUR                  5        Vs/ s H  oUR                  PM     nnU H,  nXqR                  ;  d  M  [        U5      UR                  U'   M.     UR                  R                  5        H  nUR
                  (       a9  [        UR                  5      [        R                  ;   d  UR                   S:X  d  MM  UR                  R	                  UR                  [        UR                  5      05        M     1 U R                  kU R                  kUR
                  R#                  5       knU R%                  U5      u  pUR'                  X5        U$ s  snf )N)anacondacondazconda-buildz
python.appconsole_shortcutpowershell_shortcutpypi)rz   rY   rW   r   updatespecs_from_history_mapr   r   r%   r+   system_packagesr   rJ   iter_recordsr   aggressive_update_packagessubdirvalues_prepareset_repository_metadata)re   r   prepared_specspkg_namevirtual_pkg_indexpvirtual_pkgsvirtual_pkgs_namer   r   r   s              r@   r   Solver._collect_all_metadata  s   99Ht33Hd6G6GHN MM  !;!;<
 ==0S__5H5Hd6 6 /8.ACMM(+ !& 7 7,=,B,B,DE,DqFF,DLE%1!$MM97@AR7SCMM"34 &2 446 22 +w/Q/QQ{{f,MM(($))Ytyy5I)JK! 7$%%"" ++224N ==0##E-
? Fs   Hc           	       ^ U R                   (       GaC  S U R                    5       n[        [        R                  " S U 5       5      5      n[	        UR
                  UR                  R                  5       5      n/ m/ nU R                    HZ  n[        R                  [        SU5        UR                  U5      nU(       a  TR                  U5        MI  UR                  U5        M\     [        U4S jU 5       5      nU(       a-  [        [        [        S U 5       5      5      U R                   S9eT GH  n	[        U	R"                  =(       d    S5      U-  n
U
(       a  U	R$                  UR&                  ;   a  UR                  R)                  U	R$                  [+        U	R$                  5      5      n[-        UR.                  R1                  5        VVs0 s H  u  pUS:w  d  M  X_M     snn5      Ul        XaR                  UR$                  '   M  UR                  R3                  U	R$                  S 5        GM     [        UR4                  5      Ul        U$ s  snnf )	Nc              3  6   #    U  H  nS U;   d  M  Uv   M     g7ftrack_featuresNr:   r>   r   s     r@   rA   'Solver._remove_specs.<locals>.<genexpr>U  s       !59IT9Q!5s   
	c              3  B   #    U  H  oR                  S 5      v   M     g7fr  )get_raw_valuer  s     r@   rA   r  Y  s!      $EUT&&'788EUs   z*using PrefixGraph to remove records for %sc              3  b   >^#    U  H#  m[        U4S  jT 5       5      (       a  M  Tv   M%     g7f)c              3  F   >#    U  H  nTR                  U5      v   M     g 7fr=   r   r>   recr   s     r@   rA   1Solver._remove_specs.<locals>.<genexpr>.<genexpr>p  s     J6Is4::c??6I   !N)r   )r>   r   all_removed_recordss    @r@   rA   r  m  s)      .4DJ6IJJ 4s   /	/c              3  8   #    U  H  n[        U5      v   M     g 7fr=   r   rE   s     r@   rA   r  t  s      K1JAQ1JrC   )rP   r:   features)rY   r^   r   from_iterabler&   r   r   r  r   r   remove_specr   r   rS   r   ra   rP   r#  rJ   r  r   r%   r1   _match_componentsr   popr   )re   r   _track_fts_specsfeature_namesr   no_removed_records_specsr   removed_recordsunmatched_specs_to_remover  rec_has_a_featurekeyvaluer   s                @r@   r   Solver._remove_specsN  s    !%!5!5   ## $EU$ M
   2 2CMM4H4H4JKE"$')$,, KTR"'"3"3D"9"'..?,33D9 - ). .4. )%
 )3& K1J KKL;; 
 + %((:$;m$K!$S5O5O)O==,,SXXy7JKD-7 /3.D.D.J.J.L.L
"j0 'CJ.L.D* 04MM$)),MM%%chh5 +" "'u{{!3C
s   I%Ic                  ^^ TR                   R                  TR                  S5      u  nmT(       aM  [        U4S jTR                   5       5      Tl        TR                   R                  TR                  S5      u  nm[        R                  [        5      (       a(  [        R                  ST(       a  [        T5      OS5        T(       Ga  [        [        S5      [        R                  S9  [        [        T5      [        R                  S9  T H  nTR                  R                  UR                  S 5      nX44TR                   UR                  '   [#        UR                  UR%                  5       S9TR                  UR                  '   UR                  S:X  d  M  U(       d  M  UTR                  S'   M     [        U4S	 jTR                   5       5      Tl        T$ )
Nr:   c              3  Z   >#    U  H   nTR                   R                  X5      v   M"     g 7fr=   )r   r   )r>   r   r   s     r@   rA   5Solver._find_inconsistent_packages.<locals>.<genexpr>  s#     &WDVqsyy}}Q':':DVs   (+zinconsistent precs: %sNonez
            The environment is inconsistent, please check the package plan carefully
            The following packages are causing the inconsistency:filetargetpythonc              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7fr=   r:   )r>   r   inconsistent_precss     r@   rA   r3    s      '!3CU7U!3s   		)r   bad_installedr   rS   r   isEnabledForr   r   r   r   r   sysstderrr   r'  rJ   r   r%   r   )re   r   rL   r   r   r;  s    `   @r@   r   "Solver._find_inconsistent_packages  sv   
 !$ 3 3C4F4F K "'&WCDVDV&W!WC$'EE$7$78J8JB$O!A!E""II(0B+, E
 ZZ (-.SZZ@*}}((D9/3l  + ,5TYYt}}+Wdii( 99(TT.2CMM(+ + "' '!$!3!3' "C 
rk   c                   UR                  UR                  5      nSnU(       a  US   nUR                  R                  R                  UR                  / 5       H[  nUR                  UR                  :  a  Sn  O>UR                  UR                  :X  d  M=  UR
                  UR
                  :  d  MY  Sn  O   U(       a)  [        UR                  WR                  UR
                  S9$ U$ )NFr   T)r   build_number)r   rJ   r   groupsr   rB  r%   )re   r   r   installed_poolinstalled_prec
has_updater   s          r@   _package_has_updatesSolver._package_has_updates  s    '++DII6
+A.N((B7<<."8"88!%JLLN$:$::))N,G,GG!%J 8  diiDDUDUV	
 	
rk   c                    UR                   (       d  gUR                  [        R                  :w  a  gUR                  nXc;  =(       a    Xd;  =(       d    X$U   ;   nU$ )NF)r  rx   r   r   rJ   )re   r   target_precconflict_specsexplicit_poolrD  r  no_conflicts           r@   _should_freezeSolver._should_freeze  s_     ))."A"AA ##4 
)S[(<S-S 	 rk   c                  ^ ^^^^^ [        S TR                  R                  5       5      mTR                  R	                  T R
                  5      nTR                  (       a  SnO7TR                  R                  5        Vs/ s H  oDR                  5       PM     nnTR                  R                  UT R
                  5      =(       d
    [        5       nU Vs1 s H  ofR                  iM     nnTR                  R                  5        GHu  u  nm[        U4S jTR                   5       5      nU(       d  M/  [        U5      S:w  a)  [        [!        S5      UT[#        S U 5       SS94-  5      eUS	   n	U	R$                  (       a  U	R                  5       TR                  U'   M  ['        U5      [(        R*                  ;   a  ['        U5      TR                  U'   M  T R-                  TXUT5      (       a   U	R                  5       TR                  U'   GM  UTR.                  ;   a5  ['        TR.                  U   U	R1                  5       S
9TR                  U'   GMQ  ['        XyR1                  5       S
9TR                  U'   GMx     [3        5       mTR4                   GH
  n
U
R                  U;   d  M  U
R                  T R6                  ;  a4  TR8                  (       d#  ['        U
SS9TR                  U
R                  '   Md  X*R                     TR                  R	                  U
/5      R;                  U
R                  [3        5       5      -  (       a>  ['        U
SS9TR                  U
R                  '   TR=                  U
R                  5        M  [>        RA                  SU
5        GM     TRB                  [D        RF                  :X  a  TR                  R                  5        Vs/ s H   oR                  TR                  ;  d  M  UPM"     nnU Hv  nUR                  U;  a)  UR                  5       TR                  UR                  '   M<  ['        UR                  UR                  5       SS9TR                  UR                  '   Mx     [>        RI                  STR                  5        TRB                  [D        RJ                  :X  Ga.  TR.                  (       a  [M        U4S jTR.                   5       5      Tl        TR                  R                  5        HO  nURN                  S:X  d  M  TR                  RQ                  UR                  ['        UR                  5      05        MQ     GOTR                  R                  5        Vs0 s H]  nUR                  UR                  S TR4                   5       ;  a  ['        UR                  5      OTR                  UR                     _M_     snTl        GO-TRB                  [D        RR                  :X  Ga  UU4S jm[        UU UU4S jT R
                   5       5      nTR                  R                  [        S TR                  RU                  5        5       5      U5      nU=(       d    S H  nUR                  TR                  ;   d  M  ['        USS9TR4                  ;  d  TR8                  (       d  MJ  UR                  TR.                  ;  d  Mf  ['        UR                  5      TR                  UR                  '   M     [W        S TR                   5       5      n[W        S T R
                   5       5      nU(       Ga  U(       Gdw  TR                  R;                  S5      nTRB                  [D        RF                  :H  nSU;  a&  U(       a  UR                  5       TR                  S'   GOTR                  R;                  S['        S5      5      nUR;                  S5      (       d"  [Y        URZ                  5      S-   n['        UUS9nU4[        T R
                  5      -   nTR                  R                  UT R
                  5      (       ac  T R\                  S:w  d,  T R^                  [`        :X  a4  TRb                  (       a  U(       d  TR                  Re                  U5        O[g        0 5      eUTR                  S'   [(        Rh                  (       dL  [(        R*                   H8  mTR                  TR                  ;   d  M  TTR                  TR                  '   M:     TR                  RQ                  U4S jT R
                   5       5        STR                  ;   a  [k        T Rl                  [(        Rn                  5      (       a  TR                  R;                  S5      nU(       a  S URZ                   3n[W        S! T R
                   5       5      nTR                  S   nTR                  R;                  S0 5      R;                  S5      nU(       d
  ['        UUS9n[(        Rp                  (       a  U(       d  ['        SUS S"9nUTR                  S'   T$ s  snf s  snf s  snf s  snf )#Nc                    U R                   $ r=   rI   xs    r@   r   #Solver._add_specs.<locals>.<lambda>  s    166rk   r:   c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr=   r   )r>   r   r   s     r@   rA   $Solver._add_specs.<locals>.<genexpr>  s"      %!3tzz$7G!3   *	*r*   a  
                    Conda encountered an error with your environment.  Please report an issue
                    at https://github.com/conda/conda/issues.  In your report, please include
                    the output of 'conda info' and 'conda list' for the active environment, along
                    with the command you invoked that resulted in this error.
                      pkg_name: %s
                      spec: %s
                      matches_for_spec: %s
                    c              3  8   #    U  H  n[        U5      v   M     g 7fr=   r"  rE   s     r@   rA   rV    s     %G6Fc!ff6FrC      )indentr   r7  FoptionalzFpinned spec %s conflicts with explicit specs.  Overriding pinned spec.T)r8  r\  zspecs_map with targets: %sc              3     >#    U  Hs  n[        U5      R                  S  TR                   5       ;  a  U[        U5      4O6[        U5      R                  TR                  [        U5      R                     4v   Mu     g7f)c              3  8   #    U  H  oR                   v   M     g 7fr=   rI   rK   s     r@   rA   .Solver._add_specs.<locals>.<genexpr>.<genexpr>[  s     3UDTqFFDTrC   N)r%   rJ   pinned_specsr   )r>   r   r   s     r@   rA   rV  Y  sp      % !; !++3UCDTDT3UU 9T?+#D/..io>R>R0STU !;s   A;A>r  c              3  8   #    U  H  oR                   v   M     g 7fr=   rI   rK   s     r@   rA   rV  g  s     ,N=MVV=MrC   c                   >^  T R                   T;  =(       a7    [        U 4S jTR                   5       5      =(       a    TR                  (       + =(       d    T R                   TR                  ;   $ )Nc              3  V   >#    U  H  nTR                   UR                   :H  v   M      g 7fr=   rI   )r>   rL   rS  s     r@   rA   6Solver._add_specs.<locals>.<lambda>.<locals>.<genexpr>t  s      G6FAFFaff,6Fs   &))rJ   r   r`  r{   r  )rS  pin_overridesr   s   `r@   r   rT  q  sW    FF-/ .Gc6F6FGG.---8
 66S7778rk   c              3  h   >#    U  H'  nT" U5      (       a  M  TR                  TUT5      v   M)     g 7fr=   )rG  )r>   rL   rD  re   skipr   s     r@   rA   rV  z  s4      !*AAw B))#q.AA*s   22c              3  8   #    U  H  n[        U5      v   M     g 7fr=   r$   rK   s     r@   rA   rV    s     C,Bqill,BrC   c              3  >   #    U  H  oR                   S :H  v   M     g7fr9  NrI   rK   s     r@   rA   rV    s     J7I!66X-7I   c              3  >   #    U  H  oR                   S :H  v   M     g7frj  rI   rE   s     r@   rA   rV    s     %TBSQff&8BSrk  r9  r   .*r   installc              3  b   >#    U  H$  oR                   T;  d  M  UR                   U4v   M&     g 7fr=   rI   )r>   rF   re  s     r@   rA   rV    s(      
!2AffM6QKQVVQK!2s   //r   z>=c              3  >   #    U  H  oR                   S :H  v   M     g7f)r   NrI   rE   s     r@   rA   rV    s      1/@!FFg%/@rk  )r   r8  )9r   r   r  r   _get_package_poolrW   rz   to_match_specget_conflicting_specsrS   rJ   r   r   r   ro   r
   r   r   r   r%   r   r  rN  r  r   r^   r`  rX   r{   r   addr   warningrx   r   r   r   
UPDATE_ALLdictr  r  r   r  r   r   r   r]   rb   r   r~   find_conflictsr   offliner   rP   conda_prefixauto_update_conda) re   r   rL  installed_specsrecordrK  r   r  matches_for_specrJ  rF   rL   precsr   rW   	conflictsconflictpy_in_prefixpy_requested_explicitlypython_prefix_recfreeze_installedpython_specpinned_versionspec_setconda_prefix_recversion_reqconda_requested_explicitly
conda_specconda_in_specs_to_add_versionrD  re  rg  s    ``    `                      @@@r@   r   Solver._add_specs  sU    !!13??3O3O3QR //0A0AB99 O 69__5Q5Q5S5S6$$&5S  
 EE''9J9JKVuw 	 1??))?!mm113NHd$ %!$!3!3%    '(A-$
 % $%G6F%GPQR $ /q1...9.G.G.ICMM(+x(G,N,NN.7.ACMM(+((m^  /:.G.G.ICMM(+!;!;;.7228<*335/CMM(+
 /8 )=)=)?/CMM(+O 4V !!Avv&66!8!88ARAR,5a%,HCMM!&&)"66*SUU-D-DaS-I-M-MFFCE.  -6a%,HCMM!&&)!%%aff-KK2 ", ."A"AA??7799aVV3===X9   99N2/3/A/A/CCMM$)),/8		$*<*<*>0CMM$)),	  			.> .";";; )) $ % !$ : :	% !  OO88:D{{f,,,dii4999M-NO ; !$ < < >! !? II99,NS=M=M,NN "$)), ]]49956
 !?!   N$?$??D ! !**! L 33CCMM,@,@,BCC\I &OO MMS]]2 "(T:#BRBRR,,, S-G-GG3<X]]3KCMM(--0 , Js7I7IJJ"%%T$BSBS%T"T 7 # 3 3H ="22n6U6UU~-2B*;*I*I*Kh' "mm//)H:MN"y11/0A0I0IJTQ # #,K"PK'>E$2C2C,DD55..x9J9JKK}}	1))[8!$!7!7?O ,,X6044*5h' ::99-/3CMM$)), ; 	 
!%!2!2
 	
 cmm#DKKAUAU(V(V"227; "#3#;#;"<=-0 1/3/@/@1 .* !]]73
030A0A'20N0R0R1- 5!*:{!KJ,,5O!*7KPT!UJ)3g&
q @JB!s   i8i=!jjA$jc           
     	  ^^ [         R                  / TR                  R                  5       QTR                  Q75      nTR                  R                  5        Vs/ s H'  nTR
                  R                  U5      (       a  M%  UPM)     nnU(       a  [        U[        R                  5      e[        TR
                  R                  [        U5      U R                  5      =(       d    / 5      nU(       Ga9  Sn[        R                  [         5      (       a&  [        R#                  S[%        S U 5       5      5        [        TR                  R                  5       5      m['        U4S jU5      n['        U4S jU5      nUR)                  S5      (       a  UR)                  SS5      n	UR)                  SS5      n
[        U	5      [        U R                  5      -  [        U
5      -
  n[+        [-        S U 5       5      [-        S	 U
 Vs1 s H  o3iM     sn 5       5      U R.                  5      eU H  nUR0                  (       d  M  UR2                  (       a  M)  SnUR5                  US 5        UR)                  S
5      (       a  [7        UR8                  UR:                  S9nO[7        UR8                  5      nUR=                  U5        UTR                  UR8                  '   M     U(       a9  [        TR
                  R                  [        U5      U R                  5      5      nOO
U(       a  GM9  [        R                  [         5      (       a/  [        R#                  S[%        [-        S U 5       5      5      5        U(       a  [        R>                  (       aI  TR
                  RA                  [        U5      U R                  TRB                  TRD                  S9Tl#        O[I        0 5      e[        U4S jTR                  RK                  5        5       5      U l&        TRN                  (       a  TRN                  RK                  5        Hq  u  nu  pU(       a  M  TRF                   Vs/ s H  nUR8                  U:w  d  M  UPM     snTl#        TRF                  RQ                  U5        UR=                  U5        Ms     [        U5      Tl)        T$ s  snf s  snf s  snf )NFzconflicting specs: %sc              3  J   #    U  H  oR                   =(       d    Uv   M     g 7fr=   r7  rE   s     r@   rA   "Solver._run_sat.<locals>.<genexpr>  s     F4EqXX]]4Es   !#c                   > U T;   $ r=   r:   )rF   specs_map_sets    r@   r   !Solver._run_sat.<locals>.<lambda>  s
    a=.@rk   c                2   > [        U SS9TR                  ;   $ )NTr[  )r%   r`  )rF   r   s    r@   r   r    s    )A59I9IIrk   Tr:   c              3  @   #    U  H  oR                  5       v   M     g 7fr=   __str__rE   s     r@   rA   r    s     M0L199;;0Lr   c              3  @   #    U  H  oR                  5       v   M     g 7fr=   r  rE   s     r@   rA   r    s     N0M199;;0Mr   r   rn  zfinal specs to add: %sc              3  8   #    U  H  n[        U5      v   M     g 7fr=   r"  rE   s     r@   rA   r  +  s     H0G1A0GrC   )rW   history_specsr~   c              3     >#    U  HD  u  pUTR                   ;   d  M  UR                  TR                   U   R                  :  d  M@  Uv   MF     g 7fr=   )r  
strictness)r>   r   r   r   s      r@   rA   r  ;  sN      $
-C...  s99!<GGG A-s   A%A	A)*rx  fromkeysr   r  track_features_specsr   find_matchesr   r   rQ   r^   rt  rS   rW   r   r=  r   r   r   r   r   r   ra   rP   r8  r\  r'  r%   rJ   r   
setdefaultunsatisfiable_hintssolver  r~   r   r   r   r\   r   r   final_environment_specs)re   r   r  rF   absent_specsconflicting_specsspecs_modifiedgrouped_specsconflicting_pinned_specsin_specs_mappinned_conflictsin_specs_map_or_specs_to_addr   neutered_specrJ   r   rL   r  s    `               @r@   r   Solver._run_sat  s   "&--%%'))#
 $'==#7#7#9W#9aASASTUAV#9W1,@P@PQQ  EE''-.0A0A  	
  "N&&		+F4EFF   4 4 67M#$@BSTM
 (/I!($
 (++D11,00r:#;#?#?b#I %D,=,=(>>()0*, 6M0LMMN<L0M<Lq<L0MNNKK 
 *;;;t}}}%)N+//d;xx	**(1$))T\\(R(1$))(<+66}E/<CMM$)), * $'EE//568I8I%! g  l E""II(H0GHHI !G$?$?!$-.!..!88#&#9#9	 "- "C %R((# $
++-$
 
 &)&6&6&<&<&>"lt t $'#5#5*#5a4#5*C& &&--d3+66t< '? ',,C&D#
o Xj 1Nv*s   $SSS'S?Sc           	     0
  ^^^ TR                   nTR                  [        R                  :X  Ga  [	        TR
                  R                  5       5      n[        U5      nU R                   VVs1 s H'  nU  H  nUR                  U5      (       d  M  UiM     M)     nnnXG-  nU R                   VVs1 s H1  nTR                    H  nUR                  U5      (       d  M  UiM     M3     nnnU Vs1 s H  ofR                  iM     snm[        U4S jU 5       5      nXH-  n[	        [        U5      R                  5      Tl        GO`TR                  [        R                  :X  Ga[  TR                   ["        R$                  :w  Ga<  [        TR                  U R                  5      n	U	R'                  5       n
[        U R                  5      U l
        U
 HX  nUR(                   HE  n[+        U5      nUR                  TR,                  ;  d  M*  U R                  R/                  U5        MG     MZ     [1        U R                  5      U l
        U R                   Vs1 s H  oUR                  iM     snm[	        UU4S jU
 5       5      n[	        [        / U	R                  Q[3        S U5      Q75      R                  5      Tl        GOTR                   ["        R$                  :X  Ga  [        TR                  5      n	[        5       nU R                   HE  nU	R5                  UR                  5      nUR7                  S U	R9                  U5       5       5        MG     U Vs0 s H  o[+        U5      _M     nnTR:                   H  nUR=                  UR                  S 5        M!     SU;   aX  TR
                  R?                  S5      nSRA                  URB                  RE                  S5      S S 5      S-   n[+        SUS9US'   UR7                  U R                   Vs0 s H  oUR                  U_M     sn5        [	        URG                  5       5      nUU l
        U RI                  ["        RJ                  TR                  TRL                  TRN                  TRP                  S	9Tl        S
Tl&        TRL                  (       a@  [        TR                  U5      n	U	RM                  5         [	        U	R                  5      Tl        T$ s  snnf s  snnf s  snf s  snf s  snf s  snf )Nc              3  L   >#    U  H  nUR                   T;  d  M  Uv   M     g 7fr=   rI   )r>   r   remove_before_adding_backs     r@   rA   ,Solver._post_sat_handling.<locals>.<genexpr>o  s'      $-D99$== -r   c              3     >#    U  H=  nUR                   T;  d  M  TR                  R                  UR                   S 5      v   M?     g 7fr=   )rJ   r   r   )r>   nodespecs_to_remove_namesr   s     r@   rA   r    s?      )D99$99 5##DIIt44)s
   A-Ac              3  8   #    U  H  oR                   v   M     g 7fr=   rI   )r>   
ancest_recs     r@   rA   r    s      $6O
OO6OrC   r9  .r	   rm  r   )rx   ry   rz   r{   r|   F))r  ry   r   NO_DEPSrS   r   r  r^   rY   r   rW   r   rJ   r&   r   	ONLY_DEPSrx   r   UPDATE_DEPS+remove_youngest_descendant_nodes_with_specsr   r%   r   ru  rU   filterget_node_by_namer  all_ancestorsr`  r'  r   r   r   splitr  r   r   rz   r{   r|   )re   r   r  starting_records_no_deps_solutionr   r   only_remove_theseonly_add_theser   removed_nodesr   add_backupdate_namesr  rJ   r   
python_recpy_vernew_specs_to_addr  r  s    `                  @@r@   r   Solver._post_sat_handlingT  sc   "%"="= 4 44  %S__%A%A%CD #$4 5 !00!0D,D::d# , 0  ! 2 !---D..D::d# . -   @N(N~t~(N% # $-$ !
 /!&{3D'E'K'K!LC
 !7!77##~'A'AA   2 2D4E4EFE!MMOM #D$5$5 6D%<<C#C.Cxxs}}4))--c2 ( & !*$*;*; <D <@;O;O$P;O4YY;O$P! ) H
 "'CekkCF4,BCDJJ"C   N$>$>>   2 23E5L))--dii8## $6;6I6I$6O$  *
 <HH<4y.<IH ((dii. )9$ __00:
*"4"4":":3"?"CDtK&/Xv&N	(#$:K:KL:K$iio:KLM$Y%5%5%78 !1D!%!7!7 . ; ;!//ii!// -- "8 "C CI99 2 24KLEKKM!&u{{!3C
[! )OJ %Q: I Ms0   , S8
S80*S>
S>/TT	TTc                  ^ [         R                  (       a  [         R                  (       a  g [        [         R                  5      R                  SS 5      nU(       Ga  UR                  R                  nU[        :X  a  Sn[        U S[         35      m[        U R                  [         R                  5      (       a  [        U4S jU 5       5      (       a  g [        [        R                   " TU R"                  U R$                  U R&                  S9S S9nU(       aB  US   R(                  n[+        [-        S	[         S
U SU SU S3	5      [.        R0                  S9  g g g )Nr   defaultsz::conda>c              3  F   >#    U  H  nTR                  U5      v   M     g 7fr=   r   )r>   r   conda_newer_specs     r@   rA   0Solver._notify_conda_outdated.<locals>.<genexpr>  s      K
'--d33
r  )rf   c                ,    [        U R                  5      $ r=   )r'   r   rR  s    r@   r   /Solver._notify_conda_outdated.<locals>.<lambda>  s    l1995rk   r.  zg

                ==> WARNING: A newer version of conda exists. <==
                  current version: z#
                  latest version: z`

                Please update conda by running

                    $ conda update -n base -c z conda

                Or to minimize the number of packages updated during conda update use

                     conda install conda=z

                r5  )r   notify_outdated_condaquietr/   r{  r   channelcanonical_namer   r%   CONDA_VERSIONr   rP   r   ra   r0   	query_allrQ   rT   rb   r   r   r   r>  r?  )re   r   current_conda_prefix_recchannel_nameconda_newer_precslatest_versionr  s         @r@   rw   Solver._notify_conda_outdated  sD   ,,#-g.B.B#C#G#GQU#V #3;;JJL.)  )L>-)QR4;;(<(<==K
KKK &$$$MMLL $ 1 1	 6
! !!22!6!>!> $ %2? 3##1"2 3/ 0<n =* +9)9 :" %	 !/ $rk   c                   U R                   (       a'  XR                  :X  a  U R                  U R                  4$ [	        U S5      (       a;  U R                  (       a*  Xl        [        U R                  U R                  S9U l        O0 nU R                   HH  nUR                  S5      nU(       d  M  X@R                  ;  d  M.  UR                  [        U5      5        MJ     / U R                  QUQ7U l        Xl        [        UU R                  SU R                  SSU R                  U R                  SS9	=U l        n[        XPR                  S9U l        SU l         U R                  U R                  4$ )Nr8   )rQ   r  FT)rQ   prependrT   	use_local	use_cacherP   rf   
use_system)rc   _prepared_specsr8   r9   r   r)   rQ   rW   get_exact_valuer  r"   r,   rT   rP   rb   )re   r  additional_channelsr   r  reduced_indexs         r@   r	  Solver._prepare  s,    >>n0D0DD;;''4""t{{#1 dkkDMMBDG #%))..y97wmm;'22773CD	 * CdmmB.ABDM#1 *6{{ --
+ 
DK- mmmDDG{{DGG##rk   )rR   r]   r8   rd   rc   r  r9   rb   rQ   r\   rP   rW   rX   rY   r   rT   rZ   r[   )rP   r   rQ   zIterable[Channel] | NonerT   zIterable[str]rW   Iterable[MatchSpec]rY   r  rf   r   )returnr.   )r  ;tuple[tuple[PackageRecord, ...], tuple[PackageRecord, ...]])r  ztuple[PackageRecord, ...])r  ztuple[ReducedIndex, Resolve])__name__
__module____qualname____firstlineno____doc____annotations__r   r   ri   r   ru   r   r   r   r   r   r   r   r   rG  rN  r   r   r   rw   r	  __static_attributes__r:   rk   r@   r6   r6   :   si     
 .2!#,./1&++ ++ 	+
 *+ -+ +^  M
 
M
b  ;( 
E;(~  z" 
#z"x'!R"("2 x(9 )9v<| x(+ )+Z
.$l\ x(@ )@Dyv2h)$rk   r6   c                  l    \ rS rSrS r\S 5       r\S 5       r\S 5       r\S 5       r	S r
S rS	 rS
rg)r   i/  c                    X l         X0l        X@l        XPl        X`l        Xpl        Xl        S U l        S U l        0 U l	        S U l
        U R                  5         0 U l        S U l        g r=   )rx   ry   rz   r{   r|   r~   rP   r   r   r   r   _init_solution_precsr   r  )re   rP   rx   ry   rz   r{   r|   r~   s           r@   ri   SolverStateContainer.__init__3  sk    $  /*
*("4  
 "!!#'+$rk   c                ,    [        U R                  5      $ r=   )r/   rP   re   s    r@   r    SolverStateContainer.prefix_data^  s    $++&&rk   c                H    [        U R                  5      R                  5       $ r=   )r    rP   get_requested_specs_mapr  s    r@   r  +SolverStateContainer.specs_from_history_mapb  s    t{{#;;==rk   c                B    [        S [        R                   5       5      $ )Nc              3  >   #    U  H  n[        US -   5      v   M     g7f)@Nr$   )r>   rS  s     r@   rA   <SolverStateContainer.track_features_specs.<locals>.<genexpr>h  s     H1GAYq3w''1Grk  )rS   r   r  r  s    r@   r  )SolverStateContainer.track_features_specsf  s    H1G1GHHHrk   c                R    U R                   (       a  S$ [        U R                  5      $ )Nr:   )r{   get_pinned_specsrP   r  s    r@   r`  !SolverStateContainer.pinned_specsj  s    ''rJ-=dkk-JJrk   c                     XsU l         U l        g r=   )r   r   )re   r   r   s      r@   r
  ,SolverStateContainer.set_repository_metadatan  s    "
DFrk   c                    U R                   (       a  [        5       U l        g [        U R                  R	                  5       5      U l        g r=   )rz   rS   r   r   r  r  s    r@   r  )SolverStateContainer._init_solution_precsq  s/    ::"''D"'(8(8(E(E(G"HDrk   c                N    0 U l         U R                  5         0 U l        S U l        g r=   )r   r  r   r  r  s    r@   working_state_reset(SolverStateContainer.working_state_resetx  s%    !!#'+$rk   )r   ry   r  r|   r{   r   rP   rz   r   r~   r   r   rx   N)r  r  r  r  ri   r   r   r  r  r`  r
  r  r  r  r:   rk   r@   r   r   /  sl    ),V ' ' > > I I K K&I,rk   r   c                x    [        S [        R                   5       5      n[        U S9nXR	                  5       -   $ )z<Find pinned specs from file and return a tuple of MatchSpec.c              3  6   #    U  H  n[        US S9v   M     g7f)Tr[  Nr$   r  s     r@   rA   #get_pinned_specs.<locals>.<genexpr>  s      $3J4	$&3Js   )prefix_path)rS   r   pinned_packagesr/   r  )rP   context_pinned_packagesr   s      r@   r  r    s>    # $3:3J3J$  0K"%A%A%CCCrk   r:   c           	       ^^^^^^^ [        T5      n[        [        [        U 5      R	                  5       5      R
                  5      m[        T5      nU[        L a  [        R                  OUnXT-
  mXE-
  mUUUU4S jnU(       a<  U H6  m[        U4S jT 5       S 5      mT(       d  [        ST 35      eU" T5        M8     [        S5      m[        U4S jT 5       S 5      n[        U4S jT 5       S 5      n[        n	U(       aG  U(       a@  U	" UR                  5      U	" UR                  5      :w  a  S T 5       n
U
 H  mU" T5        M     [        [        [        TU4S jS	95      5      m[        [        TU4S
 jS	95      mTT4$ )Nc                X   > TR                  U 5        TT;   a  TR                  U 5        g g r=   )ru  )r  r   r   previous_recordsr   s    r@   _add_to_unlink_and_link;diff_for_unlink_link_precs.<locals>._add_to_unlink_and_link  s+    s##S! $rk   c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr=   r   r  s     r@   rA   -diff_for_unlink_link_precs.<locals>.<genexpr>  s     Gtzz#rW  zCould not find record for spec r9  c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr=   r   r>   r  r  s     r@   rA   r    s"     C(K,=,=c,B(rW  c              3  X   >#    U  H  nTR                  U5      (       d  M  Uv   M!     g 7fr=   r   r  s     r@   rA   r    s      M{k6G6G6L{rW  c              3  d   #    U  H&  oR                   [        R                  :X  d  M"  Uv   M(     g 7fr=   )noarchr#   r9  )r>   r  s     r@   rA   r    s!     W+QZEVEV9Vqq+s   !0	0c                &   > TR                  U 5      $ r=   r   )rS  r  s    r@   r   ,diff_for_unlink_link_precs.<locals>.<lambda>  s    4D4J4J14Mrk   r  c                &   > TR                  U 5      $ r=   r!  )rS  r   s    r@   r   r"    s    8I8I!8Lrk   )r^   rS   r&   r/   r  r   r   r   r}   r   r   r%   r   r   reversedra   )rP   r   rW   r}   final_precs_setprevious_records_setr  prev_pythoncurr_pythongmmnoarch_python_precsr   r   r  r  r   r   s    `         @@@@@@r@   r   r     sg    +&O[F);)H)H)JKQQR/0#2d#:  (<'ML%4%KJ" "  DGGND"%DTF#KLL#D)	 ! H%KC(CTK M{MtTK
!C##$K,?,?(@@W+W'D#D) ( *MNOL vj.LMNJ##rk   )rP   r   r  ztuple[MatchSpec])r   zSequence[PackageRecord]rW   r  r  r  )Xr  
__future__r   r   r>  	itertoolsr   loggingr   r   textwrapr   typingr    r
   r   r  auxlib.decoratorsr   
auxlib.ishr   base.constantsr   r   r   r   base.contextr   common.constantsr   r   	common.ior   r   common.iteratorsr   r   r   common.pathr   r   
exceptionsr   r   r   r   r   historyr    models.channelr"   models.enumsr#   models.match_specr%   models.prefix_graphr&   models.versionr'   	reportersr(   resolver)   r   r+   r,   linkr-   r.   r   r/   subdir_datar0   r1   ImportErrorauxlib.collectioncollections.abcr2   r3   models.recordsr4   r  r   r6   r   r  r   r:   rk   r@   <module>rH     s    ) "  
  $     + 0  W W " * / 9 % >   $ % ) - ) #  & 4 # #/% 2.r$ r$j'M, M,`D )+	5$(5$ &5$
 A5$s*  /./s   D D.-D.