ó
OyTLc           @   s¬   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 Td d d d	 g Z d
 d „ Z	 e
 d „ Z d e f d „  ƒ  YZ d	 e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   Command(   t   convert_path(   t   log(   t   *t   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=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyR   
   s    	c   
      C   sª  d d l  m } t j d |  ƒ | ƒ  } | j |  g ƒ x+| j ƒ  D]\ } } | d k r t j d | |  ƒ | j | ƒ qF | j	 | ƒ s³ t j d | |  ƒ | j
 | ƒ n  x­ | j ƒ  D]Ÿ \ } } | d k r3t j d | | |  ƒ | j | | ƒ | j | ƒ s_t j d | |  ƒ | j | ƒ q_qÀ t j d | | | |  ƒ | j | | | ƒ qÀ WqF Wt j d	 |  ƒ | s¦t |  d
 ƒ }	 | j |	 ƒ |	 j ƒ  n  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.
    iÿÿÿÿ(   t   RawConfigParsers   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(   t   ConfigParserR   R   t   debugt   readt   itemst   Nonet   infot   remove_sectiont   has_sectiont   add_sectiont   remove_optiont   optionst   sett   opent   writet   close(
   t   filenamet   settingst   dry_runR   t   optst   sectionR%   t   optiont   valuet   f(    (    s=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyR   *   s:    			
  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=R1   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=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyt   initialize_optionsc   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(   R4   t   appendR   R5   R*   R   t   lent   DistutilsOptionError(   R6   t	   filenames(    (    s=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyt   finalize_optionsh   s    		(   s   global-configR2   s0   save options to the site-wide distutils.cfg file(   s   user-configR3   s7   save options to the current user's pydistutils.cfg file(   s	   filename=R1   s-   configuration file to use (default=setup.cfg)(   t   __name__t
   __module__t   __doc__t   user_optionst   boolean_optionsR7   R<   (    (    (    s=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyR   S   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   R7   R   t   commandR/   t	   set_valueRE   (   R6   (    (    s=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyR7   Š   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<   RG   R   R/   R:   RH   RE   (   R6   (    (    s=   /usr/lib/python2.7/dist-packages/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*   RH   R/   t   replaceRG   R,   (   R6   (    (    s=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyt   run˜   s    	#(   s   command=RB   s   command to set an option for(   s   option=RC   s   option to set(   s
   set-value=RD   s   value of the option(   s   removeRF   s   remove (unset) the value(
   R=   R>   R?   t   descriptionR   R@   RA   R7   R<   RL   (    (    (    s=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyR   |   s   
		(   R   R   t
   setuptoolsR    t   distutils.utilR   R   t   distutils.errorst   __all__R   t   FalseR   R   R   (    (    (    s=   /usr/lib/python2.7/dist-packages/setuptools/command/setopt.pyt   <module>   s   
 ))