ó
l‚z]c           @` s  d  d l  m Z m Z m Z m Z d  d l m Z d  d l Z d  d l m	 Z	 m
 Z
 m Z m Z m Z 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 m Z d d l m Z m Z d d l m Z d d l m Z d d l  m! Z! m" Z" d d l# m$ Z$ m% Z% d d l& m' Z' d d l( m) Z) m* Z* d d l+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: d d l; m< Z< d d l= m> Z> m? Z? d d l@ mA ZA mB ZB mC ZC d d lD mE ZE d d lF mG ZG d d lH mI ZI e eJ ƒ ZK e d ƒ ZL eM d „ ZN eM eM d d „ ZP d „  ZQ eM d „ ZR d d  „ ZS eM d! „ ZT d S("   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literals(   t	   getLoggerN(   t   abspatht   basenamet   existst   isdirt   isfilet   joini   (   t   common(   t   check_non_admini   (   t
   CondaError(   t   dals(   t   ROOT_ENV_NAMEt   UpdateModifiert   REPODATA_FN(   t   contextt   locate_prefix_by_name(   t	   text_type(   t   NULL(   t   paths_equalt   is_package_file(   t   calculate_channel_urlst	   get_index(   t
   PrefixData(   t   DepsModifiert   Solver(   t   CondaExitZerot   CondaImportErrort   CondaOSErrort   CondaSystemExitt   CondaValueErrort"   DirectoryNotACondaEnvironmentErrort   DirectoryNotFoundErrort
   DryRunExitt   EnvironmentLocationNotFoundt   NoBaseEnvironmentErrort   PackageNotInstalledErrort   PackagesNotFoundErrort   TooManyArgumentsErrort   UnsatisfiableErrort   SpecsConfigurationConflictError(   t   mkdir_p(   t   delete_trasht   path_is_clean(   t	   clone_envt   explicitt   touch_nonadmin(   t	   MatchSpec(   t   revert_actions(   t   ResolvePackageNotFoundu   conda.stderrc         C` s¥   t  |  ƒ } d  } | t k r+ d | } n  t |  ƒ ri t |  ƒ r\ d t j |  ƒ k r\ d  Sd |  } n  | r t | | ƒ ‚ n  d |  k r¡ t j	 d |  ƒ n  d  S(   Nu#   '%s' is a reserved environment nameu
   conda-metau   prefix already exists: %su    us   WARNING: A space was detected in your requested environment path
'%s'
Spaces in paths can sometimes be problematic.(
   R   t   NoneR   R   R   t   ost   listdirR!   t	   stderrlogt   warning(   t   prefixt   jsont   namet   error(    (    s0   lib/python2.7/site-packages/conda/cli/install.pyt   check_prefix'   s    !	c      	   C` så   t  j |  k r9 t |  ƒ } t | ƒ sc t |  ƒ ‚ qc n* t j j d  k	 sQ t	 ‚ t
 t j j ƒ } | sˆ t d | ƒ t d | ƒ n  t | | d | d | d | ƒ\ } } | rá t j d | d t | ƒ d | d	 | ƒ n  d  S(
   Nu   Source:      %su   Destination: %st   verboset   quiett
   index_argst   actionst   untracked_filest
   src_prefixt
   dst_prefix(   R6   t   sepR   R   R#   R   t   _argparse_argst   cloneR5   t   AssertionErrorR   t   printR/   R   t   stdout_json_successt   list(   t   src_argRE   R;   R@   RA   RD   RB   RC   (    (    s0   lib/python2.7/site-packages/conda/cli/install.pyRH   :   s&    	c         C` s5   t  j r1 t  j r1 t d ƒ |  } t | ƒ n  d  S(   NuÓ   
        #
        # To activate this environment, use
        #
        #     $ conda activate %s
        #
        # To deactivate an active environment, use
        #
        #     $ conda deactivate
        (   R   R@   R;   R   RJ   (   t   env_name_or_prefixt   message(    (    s0   lib/python2.7/site-packages/conda/cli/install.pyt   print_activateU   s    	c         C` s9   y t  |  ƒ SWn$ t k
 r4 t d |  | ƒ ‚ n Xd  S(   Nu#   expected revision number, not: '%s'(   t   intt
   ValueErrorR!   (   t   argR;   (    (    s0   lib/python2.7/site-packages/conda/cli/install.pyt   get_revisiond   s    u   installc         C` s	  t  j ƒ  t ƒ  t  j r& d3 |  _ n  t | d k ƒ } t | d k ƒ } t | d k ƒ } t | d k ƒ } | r‡ t j |  | ƒ n  t  j } | r¬ t	 | d t  j
 ƒn  t  j rÓ | t  j k rÓ t d ƒ ‚ n  | r|  j pú |  j pú t  j t j k rt d | ƒ ‚ n  | sÙt | ƒ r„t | ƒ t t | d	 d
 ƒ ƒ sÖt | t  j ƒ rct ƒ  ‚ qt | ƒ st | ƒ ‚ qqÖqÙ|  j rÊy t | ƒ WqÖt k
 rÆ} t d | d | ƒ‚ qÖXqÙt  | ƒ ‚ n  g  |  j D] }	 |	 j! d ƒ ^ qã}
 | r˜|  j" r˜g  |
 D]( } | j# d d ƒ j$ d d ƒ d ^ q} xR t  j% D]D } | j# d d ƒ j$ d d ƒ d } | | k rM|
 j& | ƒ qMqMWn  i |  j' d 6t  j( d 6|  j) d 6|  j* d 6|  j+ d 6} t, d „  |
 Dƒ ƒ } | r)| t- |
 ƒ k rt. |
 | d t  j/ ƒd St d ƒ ‚ n  g  } |  j r¿xT |  j D]I } y# | j0 t j1 | d t  j
 ƒƒ WqBt2 k
 rŠt3 d ƒ ‚ qBXqBWd | k r¿t. | | d t  j/ d | ƒd Sn  | j0 t j4 |
 d t  j
 ƒƒ | r|  j5 rt6 |  j5 d t  j
 ƒn% | r+|  j p|
 r+t d ƒ ‚ n  | rµt  j t j k rµt7 | ƒ } xc | D]X } t8 | ƒ } | j9 s„t3 d | ƒ ‚ n  | j: | j; d ƒ sVt= | | j; ƒ ‚ qVqVWn  | rI|  j> rI|  j r÷t? d t- |  j ƒ t@ |  j ƒ d  ƒ ‚ n  t> |  j> | d t  j
 d! t  j/ d | ƒtA | ƒ tB |  j; r>|  j; n | ƒ d S|  j } | sdt  j } n  tC | k r€| j& tC ƒ n  tD |  d" ƒ o›|  j tE k } | sÀ|  j t jF t jG f k oÄ| } x | D]} y@| rQ|  j5 rQtH d# | d d$ | d d% d d& | d d' | d d( | d d) | d* | ƒ } tI | t6 |  j5 ƒ | ƒ } nÁ tJ | t  j( t  jK d+ | d* | d, |  jL ƒ} t  j } | s“| r®|  j tE k r®t jF } n  t  jM } | rÒt  jM pÌtN jG } n  | jO d- | d. | d/ t  jP pöt  jQ d0 | p| | d1 k ƒ } PWqÎtR tS f k
 rŸ} | | d1 k rætT | tS ƒ rT| ‚ qœtU tV d# | d d$ | d d% d d& | d ƒ ƒ } tS | jW | ƒ ‚ qæqÎtX tY tZ f k
 rå} tD |  d" ƒ sâ| | d1 k râ| ‚ qâqæ| r•yA | jO d- | d. t jG d/ t  jP pt  jQ d0 | | d1 k ƒ } WqâtX tY tZ f k
 r‘} | j[ rud2 | j[ d k rut\ t] | ƒ ƒ ‚ n  | | d1 k r’| ‚ q’qâXqæ| | d1 k r«qÎqæ| j[ rÜd2 | j[ d k rÜt\ t] | ƒ ƒ ‚ n  | ‚ qÎXqÎWt^ | | |  | ƒ d S(4   u7   
    conda install, conda update, and conda create
    u   repodata.jsonu   createu   updateu   installu   removeR;   u*   cannot use CONDA_FORCE_32BIT=1 in base envu€   no package names supplied
# If you want to update to a newer version of Anaconda, type:
#
# $ conda update --prefix %s anaconda
u
   conda-metau   historyu   Could not create directory: %st	   caused_byu   "'u    u   =i   i    u	   use_cacheu   channel_urlsu   unknownu   prependu	   use_localc         s` s   |  ] } t  | ƒ Vq d  S(   N(   R   (   t   .0t   s(    (    s0   lib/python2.7/site-packages/conda/cli/install.pys	   <genexpr>±   s    R?   Nu6   cannot mix specifications with conda package filenamesuc   Error reading file, file should be a text file containing packages 
conda create --help for detailsu	   @EXPLICITRA   uC   too few arguments, must supply command line package specs or --fileu@   Invalid spec for 'conda update': %s
Use 'conda install' instead.u(   did not expect any arguments for --cloneR@   u   update_modifiert   channel_urlst   prependt   platformt	   use_localt	   use_cachet   unknownR:   t   repodata_fnt   specs_to_addt   commandt   deps_modifiert   update_modifiert   force_reinstallt   should_retry_solveiÿÿÿÿu   could not import(   u   repodata.json(_   R   t   validate_configurationR   t   use_only_tar_bz2t   repodata_fnst   boolR   t   ensure_name_or_prefixt   target_prefixR>   R;   t   force_32bitt   root_prefixR!   t   filet   packagesRb   R   t
   UPDATE_ALLR   R-   R	   R
   R   t   conda_prefixR&   R.   R"   t   mkdirR,   t   EnvironmentErrorR   R%   t   stript   no_default_packagest   replacet   splitt   create_default_packagest   appendt   use_index_cachet   channelsR]   t   override_channelsR[   t   sumt   lenR0   R@   t   extendt   specs_from_urlt   UnicodeErrorR   t   specs_from_argst   revisionRT   R   R2   t   is_name_only_spect   getR<   R5   R'   RH   R)   RL   R1   RP   R   t   hasattrR   t   FREEZE_INSTALLEDt   UPDATE_SPECSR   R3   R   t   subdirst   cmdRa   R   t   solve_for_transactionRc   t   forceR4   R(   t
   isinstancet   tupleR   t   _formatted_chainsR*   t
   SystemExitR+   t   argsR   R   t
   handle_txn(   R   t   parserR`   t   newenvt   isupdatet	   isinstallt   isremoveR:   t   eRW   t   args_packagest   pkgt   args_packages_namest   default_pkgt   default_pkg_nameRA   t   num_cpt   specst   fpatht   prefix_datat   specRg   t   args_set_update_modifiert   _should_retry_unfrozenR^   t   indext   unlink_link_transactiont   solverRb   Ra   t   channels_urls(    (    s0   lib/python2.7/site-packages/conda/cli/install.pyt   installk   s.   
		
	%5"


	#		(
	

						

		c         C` so  |  j  rT | r! t | j ƒ ‚ qT | sT t j rC t j d d ƒ n
 t d ƒ d  Sn  t j st |  j ƒ  t j	 ƒ  nA t j
 rµ |  j ƒ  d } t j d | d | d t ƒ t ƒ  ‚ n  y0 |  j ƒ  t j rÚ t d ƒ ‚ n  |  j ƒ  Wn" t k
 r	} t d	 | ƒ ‚ n X| r9t | ƒ t | j r/| j n | ƒ n  t j rk|  j ƒ  d } t j d | d | ƒ n  d  S(
   NRO   u)   All requested packages already installed.u-   
# All requested packages already installed.
i    R:   RB   t   dry_runuU   Package caches prepared. UnlinkLinkTransaction cancelled with --download-only option.u   Exiting(   t   nothing_to_doR(   t   package_namesR   R;   R   RK   RJ   t   print_transaction_summaryt
   confirm_ynR©   t   _make_legacy_action_groupst   TrueR$   t   download_and_extractt   download_onlyR   t   executeR   R    R1   RP   R<   (   R¥   R:   R   R“   t	   remove_opRB   R—   (    (    s0   lib/python2.7/site-packages/conda/cli/install.pyR‘   @  s8    		
	
	
	
	(U   t
   __future__R    R   R   R   t   loggingR   R6   t   os.pathR   R   R   R   R	   R
   t    R   R   R   t   _vendor.auxlib.ishR   t   base.constantsR   R   R   t   base.contextR   R   t   common.compatR   t   common.constantsR   t   common.pathR   R   t
   core.indexR   R   t   core.prefix_dataR   t
   core.solveR   R   t
   exceptionsR   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   t   gateways.disk.createR,   t   gateways.disk.deleteR-   R.   t   miscR/   R0   R1   t   models.match_specR2   t   planR3   t   resolveR4   t   __name__t   logR8   t   FalseR>   R5   RH   RP   RT   R¨   R‘   (    (    (    s0   lib/python2.7/site-packages/conda/cli/install.pyt   <module>   s<   ".d	Õ