ó
>ò[c           @  sħ  d  Z  d d l m Z m Z d d l Z d d l Z d d l Z d d l m Z m	 Z	 d d l
 m Z d d l 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 d d l m Z d d l m Z d d l m Z d d l  m! Z! e j" d  Z# d   Z$ e% d  Z& d e j' f d     YZ( e j) e% e% d  Z* d d  Z, d e- d d d d  Z. d e- d  Z/ e0 d k r­e/   n  d S(   u*   
Anaconda repository command line manager
i˙˙˙˙(   t   print_functiont   unicode_literalsN(   t   ArgumentParsert   RawDescriptionHelpFormatter(   t   makedirs(   t   joint   existst   isfile(   t   RotatingFileHandler(   t   add_subparser_modules(   t   InsecureRequestWarning(   t   PY2(   t   __version__(   t   commands(   t   interactive_login(   t   errors(   t   USER_LOGDIRu   binstarc           s`   t     r4 t     } | j   j   SWd QXn  t   f d   d D  r\ t    n    S(   u~   
    If value is a file path and the file exists its contents are stripped and returned,
    otherwise value is returned.
    Nc         3  s   |  ] } |   k Vq d  S(   N(    (   t   .0t   char(   t   value(    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pys	   <genexpr>&   s    u   /\.(   R   t   opent   readt   stript   anyt
   ValueError(   R   t   fd(    (   R   sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyt   file_or_token   s    c           s      f d   } | S(   Nc           s_   t  |  t  s" t  |  t j  r& d  S rK   j d d |  | | f n   j d |  d  S(   Nu    t   exc_infou   %s(   t
   issubclasst   KeyboardInterruptR   t   ServerErrort   error(   t   exc_typet	   exc_valuet   exc_traceback(   t   loggert   show_traceback(    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyt
   excepthook/   s
    "(    (   R#   R$   R%   (    (   R#   R$   sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyt   _custom_excepthook.   s    	t   ConsoleFormatterc           B  s   e  Z d    Z RS(   c         C  sR   | j  t j k r d n d } t r0 | |  _ n | |  j _ t t |   j |  S(   Nu   %(message)su   [%(levelname)s] %(message)s(	   t   levelnot   loggingt   INFOR   t   _fmtt   _stylet   superR'   t   format(   t   selft   recordt   fmt(    (    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyR.   <   s    (   t   __name__t
   __module__R.   (    (    (    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyR'   ;   s   c         C  sò   |  j  t j  t t  s) t t  n  t t d  } t | d d d
 d d } | j  t j  t j   } | j  |  | j	 t
    | j	 t j d   |  j |  |  j |  t |  d	 | t _ | rî t j j j t  n  d  S(   Nu   cli.logt   maxBytesi
   i   i   t   backupCounti   u3   %(asctime)s %(levelname)-8s %(name)-15s %(message)sR$   i   (   t   setLevelR)   t   DEBUGR   R   R   R   R   t   StreamHandlert   setFormatterR'   t	   Formattert
   addHandlerR&   t   sysR%   t   requestst   packagest   urllib3t   disable_warningsR
   (   R#   t	   log_levelR$   t   disable_ssl_warningst   log_filet   file_handlert   console_handler(    (    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyt   _setup_loggingF   s    c         C  sÖ   |  j  d  } | j d d d d t d d | j d d d d d	 | j d
 d d d d d d d d t j d t j | j d d d d d d d d d t j | rÒ |  j d d d d d d | f n  d  S(   Nu   outputu   --disable-ssl-warningst   actionu
   store_truet   defaultt   helpu+   Disable SSL warnings (default: %(default)s)u   --show-tracebackuG   Show the full traceback for chalmers user errors (default: %(default)s)u   -vu	   --verboseu   store_constu&   print debug information on the consolet   destu	   log_levelt   constu   -qu   --quietu+   Only show warnings or errors on the consoleu   -Vu	   --versionu   versiont   versionu*   %%(prog)s Command line client (version %s)(   t   add_argument_groupt   add_argumentt   FalseR)   R*   R7   t   WARNING(   t   parserRL   t   output_group(    (    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyt   add_default_arguments`   s    c         C  s  t  d | d | d t  } t | |  | j d  } | j d d d t d d	 | j d
 d d d d d  t | |  d  | j |  } t	 t
 d | j d | j d | j y y0 t | d  sĜ | j d  n  | j |  SWnT t j k
 r<t j j   s| j r  n  t
 j d  t |  | j |  SXWn: t j k
 rz| j j   | rst d   q{d Sn Xd  S(   Nt   descriptiont   epilogt   formatter_classu   anaconda-client optionsu   -tu   --tokent   typeRI   uR   Authentication token to use. May be a token or a path to a file containing a tokenu   -su   --siteu&   select the anaconda-client site to useRH   u   conda_server.subcommandRA   R$   RB   u   mainuU   A sub command must be given. To show all available sub commands, run:

	 anaconda -h
uF   The action you are performing requires authentication, please sign in:i   (   R   R   RS   RM   RN   R   t   NoneR	   t
   parse_argsRF   R#   RA   R$   RB   t   hasattrR   t   mainR   t   UnauthorizedR<   t   stdint   isattyt   tokent   infoR   t   ShowHelpt
   sub_parsert
   print_helpt
   SystemExit(   t   sub_command_modulet   argst   exitRT   RL   RU   RQ   t   bgroup(    (    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyt   binstar_mains   s8    	

c         C  s    t  t |  | d t d t d  S(   NRT   RL   (   Ri   t   command_modulet   __doc__RL   (   Rf   Rg   (    (    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyR[      s    u   __main__(1   Rk   t
   __future__R    R   R)   R<   R=   t   argparseR   R   t   osR   t   os.pathR   R   R   t   logging.handlersR   t   clyentR	   t$   requests.packages.urllib3.exceptionsR
   t   sixR   t   binstar_clientR   RL   R   Rj   t   binstar_client.commands.loginR   R   t   binstar_client.utilsR   t	   getLoggerR#   R   RO   R&   R:   R'   R*   RF   RX   RS   t   TrueRi   R[   R2   (    (    (    sY   lib/python2.7/site-packages/anaconda_client-1.7.2-py2.7.egg/binstar_client/scripts/cli.pyt   <module>   s4   	+