ó
.¿”Wc           @   sÂ   d  d l  m Z d  d l m Z d  d l m Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 d d d	 d
 g Z d d „ Z e d „ Z d	 e
 f d „  ƒ  YZ d
 e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   convert_path(   t   log(   t   DistutilsOptionErrorN(   t   configparser(   t   Commandt   config_filet   edit_configt   option_baset   setoptt   localc         C   s’   |  d k r d S|  d k r> t  j j t  j j t j ƒ d ƒ S|  d k r t  j d k r_ d pb d } t  j j t d	 | ƒ ƒ St	 d
 |  ƒ ‚ d S(   s   Get the filename of the distutils, local, global, or per-user config

    `kind` must be one of "local", "global", or "user"
    R	   s	   setup.cfgt   globals   distutils.cfgt   usert   posixt   .t    s   ~/%spydistutils.cfgs7   config_file() type must be 'local', 'global', or 'user'N(
   t   ost   patht   joint   dirnamet	   distutilst   __file__t   namet
   expanduserR    t
   ValueError(   t   kindt   dot(    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyR      s    	c   	      C   sœ  t  j d |  ƒ t j ƒ  } | j |  g ƒ x+| j ƒ  D]\ } } | d	 k rt t  j d | |  ƒ | j | ƒ q9 | j	 | ƒ s¦ t  j d | |  ƒ | j
 | ƒ n  x­ | j ƒ  D]Ÿ \ } } | d	 k r&t  j d | | |  ƒ | j | | ƒ | j | ƒ sRt  j d | |  ƒ | j | ƒ qRq³ t  j d | | | |  ƒ | j | | | ƒ q³ Wq9 Wt  j d |  ƒ | s˜t |  d ƒ  } | j | ƒ Wd	 QXn  d	 S(
   sY  Edit a configuration file to include `settings`

    `settings` is a dictionary of dictionaries or ``None`` values, keyed by
    command/section name.  A ``None`` value means to delete the entire section,
    while a dictionary lists settings to be changed or deleted in that section.
    A setting of ``None`` means to delete that setting.
    s   Reading configuration from %ss   Deleting section [%s] from %ss   Adding new section [%s] to %ss   Deleting %s.%s from %ss#   Deleting empty [%s] section from %ss   Setting %s.%s to %r in %ss
   Writing %st   wN(   R   t   debugR   t   RawConfigParsert   readt   itemst   Nonet   infot   remove_sectiont   has_sectiont   add_sectiont   remove_optiont   optionst   sett   opent   write(	   t   filenamet   settingst   dry_runt   optst   sectionR%   t   optiont   valuet   f(    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyR   "   s8    	
c           B   s;   e  Z d  Z d d d g Z d d g Z d
 „  Z d „  Z RS(   s<   Abstract base class for commands that mess with config filess   global-configt   gs0   save options to the site-wide distutils.cfg files   user-configt   us7   save options to the current user's pydistutils.cfg files	   filename=R0   s-   configuration file to use (default=setup.cfg)c         C   s   d  |  _ d  |  _ d  |  _ d  S(   N(   R   t   global_configt   user_configR)   (   t   self(    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyt   initialize_options]   s    		c         C   s¶   g  } |  j  r% | j t d ƒ ƒ n  |  j rD | j t d ƒ ƒ n  |  j d  k	 rf | j |  j ƒ n  | s‚ | j t d ƒ ƒ n  t | ƒ d k r¦ t d | ƒ ‚ n  | \ |  _ d  S(   NR
   R   R	   i   s/   Must specify only one configuration file option(   R3   t   appendR   R4   R)   R   t   lenR   (   R5   t	   filenames(    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyt   finalize_optionsb   s    		(   s   global-configR1   s0   save options to the site-wide distutils.cfg file(   s   user-configR2   s7   save options to the current user's pydistutils.cfg file(   s	   filename=R0   s-   configuration file to use (default=setup.cfg)(   t   __name__t
   __module__t   __doc__t   user_optionst   boolean_optionsR6   R:   (    (    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyR   M   s      		c           B   sX   e  Z d  Z d Z d d d d g e j Z e j d g Z d „  Z d „  Z d „  Z	 RS(   s#   Save command-line options to a files1   set an option in setup.cfg or another config files   command=t   cs   command to set an option fors   option=t   os   option to sets
   set-value=t   ss   value of the optiont   removet   rs   remove (unset) the valuec         C   s5   t  j |  ƒ d  |  _ d  |  _ d  |  _ d  |  _ d  S(   N(   R   R6   R   t   commandR.   t	   set_valueRC   (   R5   (    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyR6   ‚   s
    			c         C   sf   t  j |  ƒ |  j d  k s+ |  j d  k r: t d ƒ ‚ n  |  j d  k rb |  j rb t d ƒ ‚ n  d  S(   Ns%   Must specify --command *and* --options$   Must specify --set-value or --remove(   R   R:   RE   R   R.   R   RF   RC   (   R5   (    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyR:   ‰   s
    c         C   s=   t  |  j i i |  j |  j j d d ƒ 6|  j 6|  j ƒ d  S(   Nt   -t   _(   R   R)   RF   R.   t   replaceRE   R+   (   R5   (    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyt   run   s    	#(   s   command=R@   s   command to set an option for(   s   option=RA   s   option to set(   s
   set-value=RB   s   value of the option(   s   removeRD   s   remove (unset) the value(
   R;   R<   R=   t   descriptionR   R>   R?   R6   R:   RJ   (    (    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyR   t   s   
		(   t   distutils.utilR    R   R   t   distutils.errorsR   R   t   setuptools.extern.six.movesR   t
   setuptoolsR   t   __all__R   t   FalseR   R   R   (    (    (    s=   /tmp/pip-build-Q3rTTP/setuptools/setuptools/command/setopt.pyt   <module>   s   +'