
    wBf	                         d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZ dd
lmZ ddlmZmZ d Zd Zd Zy)zConda-flavored installer.    Nbasename)
IndexedSet   )UpdateModifier)context)NULL)Environment)UnsatisfiableError)Channelprioritize_channelsc                 Z   |j                   D cg c]
  }|dk7  s	| }}d|j                   vr|j                  t        j                          t        |      }t	        d |D              }	t	        d |D              }
t        j
                  j                         } || |	|
|      }|S c c}w )zSolve the environment
nodefaultsc              3   2   K   | ]  }t        |        y wN)r   .0urls     :lib/python3.12/site-packages/conda/env/installers/conda.py	<genexpr>z_solve.<locals>.<genexpr>   s     H3'#,H   c              3   2   K   | ]  }t        |        y wr   r   r   s     r   r   z_solve.<locals>.<genexpr>   s     H3#Hr   )specs_to_add)channelsextendr   r   r   plugin_managerget_cached_solver_backend)prefixspecsargsenv_kwargschanchannel_urls_channel_priority_mapr   subdirssolver_backendsolvers                r   _solver*      s     &)\\JTT\5IDJLJ3<<'G,,-/=H2GHHHH2GHHG++EEGNFHgEJFM Ks
   
B(B(c           	          t        t        j                         | ||g|i |}|j                         }t	        |j
                  |D cg c]  }t        |       c}|j                        }|S c c}w )z%Do a dry run of the environment solve)namedependenciesr   )r*   tempfilemkdtempsolve_final_stater
   r,   strr   )	r   r    r!   r"   r#   r)   pkgsp
solved_envs	            r   dry_runr5   $   sh    H$$&tSG1GGF##%DXXT$:SV$:S\\J  %;s   	A0
c                 n   t        | |||g|i |}	 |j                  t        |dd      t        j                        }|j                  ry|j                          |j                          |j                         d   S # t
        t        f$ r% |j                  t        |dd      t              }Y sw xY w)z$Install packages into an environmentpruneF)r7   update_modifierNr   )r*   solve_for_transactiongetattrr   FREEZE_INSTALLEDr   
SystemExitr	   nothing_to_dodownload_and_extractexecute_make_legacy_action_groups)r   r   r    r!   r"   r#   r)   unlink_link_transactions           r   installrB   .   s    FE4;q;F;F
"(">">$/*;; #? #
 ,,002##%"==?BB 
+ 
"(">">$/ #? #

s   ,B   1B43B4)__doc__r.   os.pathr   boltons.setutilsr   base.constantsr   base.contextr   common.constantsr	   env.envr
   
exceptionsr   models.channelr   r   r*   r5   rB        r   <module>rN      s5        ' , # $ " , :$CrM   