ó
Ý²k^c           @` sÒ  d  d l  m Z m Z m Z m Z d  d l m Z d  d l m Z m	 Z	 m
 Z
 m Z m Z d  d l 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 d d l m  Z  m! Z! d d" d d „ Z" d d e d „ Z# d „  Z$ e% e% d „ Z& e% d „ Z' e j( d e j) ƒ Z* d „  Z+ d „  Z, e% d „ Z- d „  Z. d „  Z/ e d „  ƒ Z0 e1 d „ Z2 e1 d „ Z3 d  „  Z4 d! „  Z5 d S(#   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literals(   t	   getLogger(   t   basenamet   dirnamet   isdirt   isfilet   joinNi   (   t   dals(   t   ROOT_ENV_NAME(   t   context(   t   NULL(   t   swallow_broken_pipe(   t   paths_equal(   t	   json_dump(   t	   MatchSpec(   t   EnvironmentLocationNotFoundt"   DirectoryNotACondaEnvironmentErroru   Proceedu   yesu   noc         C` sG  | | k s t  | ƒ ‚ t j r= d d l m } | ƒ  ‚ n  g  } xC | D]; } | | k rt | j d | d ƒ qJ | j | d ƒ qJ Wd |  d j | ƒ f }  d „  | Dƒ } | | d <x„ t rBt j	 j
 |  ƒ t j	 j ƒ  t j j ƒ  j ƒ  j ƒ  } | | k rt d	 | ƒ q¿ t j	 j
 d
 ƒ t j	 j ƒ  | | Sq¿ Wd  S(   Ni   (   t
   DryRunExitu   [%s]i    u	   %s (%s)? u   /c         S` s0   i  |  ]& } | | d  g D] } | | “ q q S(   i    (    (   t   .0t   choicet   alt(    (    s/   lib/python2.7/site-packages/conda/cli/common.pys
   <dictcomp>"   s   	u    u   Invalid choice: %su   
(   t   AssertionErrorR   t   dry_runt
   exceptionsR   t   appendR	   t   Truet   syst   stdoutt   writet   flusht   stdint   readlinet   stript   lowert   print(   t   messaget   choicest   defaultR   t   optionst   optiont   user_choice(    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   confirm   s,    	

	c         C` sÈ   | t  k r t j n | } | r= d d l m } | ƒ  ‚ n  t j rJ t Sy t d |  d d d | ƒ } Wn- t k
 r˜ d d l m	 } | d	 ƒ ‚ n X| d k rÄ d d l m	 } | d
 ƒ ‚ n  t S(   Ni   (   R   R&   R'   u   yesu   noR(   (   t   CondaSystemExitu   
Operation aborted.  Exiting.u   Exiting.(   u   yesu   no(
   R   R   R   R   R   t
   always_yesR   R,   t   KeyboardInterruptR-   (   R&   R(   R   R   R   R-   (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt
   confirm_yn3   s    	c         C` s9   |  j  p |  j s5 d d l m } | d | ƒ ‚ n  d  S(   Ni   (   t   CondaValueErroruO   either -n NAME or -p PREFIX option required,
try "conda %s -h" for more details(   t   namet   prefixR   R1   (   t   argst   commandR1   (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   ensure_name_or_prefixE   s    c         C` s    y t  |  ƒ } Wn' d d l m } | d |  ƒ ‚ n X| j } | j ƒ  r– | r– d d l m } | d | d t |  ƒ t | ƒ |  f ƒ ‚ n  t | ƒ S(   Ni   (   R1   u!   invalid package specification: %sue   version specifications not allowed with 'update'; use
    conda update  %s%s  or
    conda install %su    (   R   R   R1   R2   t
   _is_simplet   lent   str(   t   argt   jsont   updatet   specR1   R2   (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   arg2specL   s    	-c         C` s#   g  |  D] } t  | d | ƒ^ q S(   NR;   (   R>   (   R4   R;   R:   (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   specs_from_args]   s    uM   (?P<name>[^=<>!\s]+)\s*((?P<cc>=[^=]+(=[^=]+)?)|(?P<pc>(?:[=!]=|[><]=?).+))?$c         C` s   |  j  d ƒ d j ƒ  S(   Nu   #i    (   t   splitt   rstrip(   t   line(    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   strip_commentk   s    c         C` sš   t  j t |  ƒ ƒ } | d  k r% d  S| j d ƒ j ƒ  | j d ƒ | j d ƒ } } } | rt | | j d d ƒ S| r’ | d | j d d ƒ S| Sd  S(   Nu   nameu   ccu   pcu   =u    u    (   t   spec_patt   matchRC   t   Nonet   groupR$   t   replace(   RB   t   mR2   t   cct   pc(    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   spec_from_lineo   s    5c      	   C` s/  d d l  m } t } | |  d t ƒ} g  } y¿ x¸ t | ƒ D]ª } | j ƒ  } | sA | j d ƒ ro qA n  | d k r„ t } n  | r | j | ƒ qA n  t | ƒ } | d  k rÞ d d l
 m } | d | |  f ƒ ‚ n  | j | ƒ qA WWn2 t k
 r$}	 d d l
 m }
 |
 | |	 ƒ ‚ n XWd  QX| S(	   Ni   (   t   TmpDownloadt   verboseu   #u	   @EXPLICIT(   R1   u   could not parse '%s' in: %s(   t   CondaFileIOError(   t   gateways.connection.downloadRM   t   Falset   openR#   t
   startswithR   R   RL   RF   R   R1   t   IOErrorRO   (   t   urlR;   RM   t   explicitt   patht   specsRB   R=   R1   t   eRO   (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   specs_from_url|   s0    	c         ` s   t  ‡  f d †  | Dƒ ƒ S(   Nc         3` s%   |  ] } | j  ƒ  d  ˆ  k Vq d S(   i    N(   R@   (   R   R=   (   t   names(    s/   lib/python2.7/site-packages/conda/cli/common.pys	   <genexpr>™   s    (   t   any(   R[   RX   (    (   R[   s/   lib/python2.7/site-packages/conda/cli/common.pyt   names_in_specs˜   s    c         C` s   |  r d d j  |  ƒ Sd Sd  S(   Nu   [%s]u    u    (   R	   (   t   features(    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   disp_featuresœ   s    c         C` s   t  d ƒ j t |  ƒ ƒ d  S(   Nu   conda.stdout(   R   t   infoR   (   t   d(    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   stdout_json£   s    c         K` s¹   i |  d 6} | j  d d  ƒ } | rž d | k r[ g  | d D] } | j ƒ  ^ q< | d <n  d | k r‘ g  | d D] } | j ƒ  ^ qr | d <n  | | d <n  | j | ƒ t | ƒ d  S(   Nu   successu   actionsu   LINKu   UNLINK(   t   popRF   t   dist_fields_dumpR<   Rb   (   t   successt   kwargst   resultt   actionst   prec(    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   stdout_json_success¨   s    **c         ` s^   ˆ  r t  d ƒ t  d ƒ n  ‡  f d †  } x |  D] } | | ƒ q3 Wˆ  rZ t  d ƒ n  d  S(   Nu   # conda environments:u   #c         ` s‘   d } ˆ  t  j k r d n d } ˆ  t  j k r9 t } n4 t ‡  f d †  t  j Dƒ ƒ rg t ˆ  ƒ } n d } ˆ r t | | | ˆ  f ƒ n  d  S(   Nu   %-20s  %s  %su   *u    c         3` s$   |  ] } t  | t ˆ  ƒ ƒ Vq d  S(   N(   R   R   (   R   t   envs_dir(   R3   (    s/   lib/python2.7/site-packages/conda/cli/common.pys	   <genexpr>À   s    u    (   R   t   default_prefixt   root_prefixR   R\   t	   envs_dirsR   R%   (   R3   t   fmtR(   R2   (   t   output(   R3   s/   lib/python2.7/site-packages/conda/cli/common.pyt   disp_env»   s    	u    (   R%   (   t   known_conda_prefixesRp   Rq   R3   (    (   Rp   s/   lib/python2.7/site-packages/conda/cli/common.pyt   print_envs_listµ   s    
c          C` sM   d d l  m }  t j rI |  ƒ  rI d d l m } | t d ƒ ƒ ‚ n  d  S(   Ni   (   t   is_admin(   t   OperationNotAllowedu   
            The create, install, update, and remove operations have been disabled
            on your system for non-privileged users.
        (   t
   common._osRt   R   t   non_admin_enabledR   Ru   R
   (   Rt   Ru   (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   check_non_adminÎ   s
    c         C` sF   t  |  ƒ r6 t t |  d d ƒ ƒ sB t |  ƒ ‚ qB n t |  ƒ ‚ d  S(   Nu
   conda-metau   history(   R   R   R	   R   R   (   R3   (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   is_valid_prefix×   s    (   u   yesu   no(6   t
   __future__R    R   R   R   t   loggingR   t   os.pathR   R   R   R   R	   t   reR   t   _vendor.auxlib.ishR
   t   base.constantsR   t   base.contextR   t   common.constantsR   t	   common.ioR   t   common.pathR   t   common.serializeR   t   models.match_specR   R   R   R   R,   R0   R6   RQ   R>   R?   t   compilet   VERBOSERD   RC   RL   RZ   R]   R_   Rb   R   Rj   Rs   Rx   Ry   (    (    (    s/   lib/python2.7/site-packages/conda/cli/common.pyt   <module>   s<   "(								