b-Qc@sddlZddlZddlmZddlmZddlmZddlTdddd gZd d Z e d Z defd YZ d e fdYZ dS(iN(tCommand(t convert_path(tlog(t*t config_filet edit_configt option_basetsetopttlocalcCs|dkrdS|dkr>tjjtjjtjdS|dkrtjdkr_dpbd}tjjtd |St d |d S( sGet the filename of the distutils, local, global, or per-user config `kind` must be one of "local", "global", or "user" Rs setup.cfgtglobals distutils.cfgtusertposixt.ts~/%spydistutils.cfgs7config_file() type must be 'local', 'global', or 'user'N( tostpathtjointdirnamet distutilst__file__tnamet expanduserRt ValueError(tkindtdot((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR s    c Csddlm}tjd||j}|j|gx+|jD]\}}|d krtjd|||j |qI|j |stjd|||j |nx|jD]\}}|d kr6tjd||||j |||j |sbtjd|||j |qbqtjd|||||j|||qWqIWtjd ||st|d } |j| | jnd S( sYEdit 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 ConfigParsersReading configuration from %ssDeleting section [%s] from %ssAdding new section [%s] to %ssDeleting %s.%s from %ss#Deleting empty [%s] section from %ssSetting %s.%s to %r in %ss Writing %stwN(tsetuptools.compatRRtdebugtRawConfigParsertreadtitemstNonetinfotremove_sectiont has_sectiont add_sectiont remove_optiontoptionstsettopentwritetclose( tfilenametsettingstdry_runRtoptstsectionR&toptiontvaluetf((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR*s:        cBs;eZdZd d dgZddgZd Zd ZRS(s<Abstract base class for commands that mess with config filess global-configtgs0save options to the site-wide distutils.cfg files user-configtus7save options to the current user's pydistutils.cfg files filename=R2s-configuration file to use (default=setup.cfg)cCsd|_d|_d|_dS(N(R t global_configt user_configR+(tself((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pytinitialize_optionscs  cCsg}|jr%|jtdn|jrD|jtdn|jdk rf|j|jn|s|jtdnt|dkrtd|n|\|_dS(NR R Ris/Must specify only one configuration file option(R5tappendRR6R+R tlentDistutilsOptionError(R7t filenames((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pytfinalize_optionshs   (s global-configR3s0save options to the site-wide distutils.cfg file(s user-configR4s7save options to the current user's pydistutils.cfg file(s filename=R2s-configuration file to use (default=setup.cfg)(t__name__t __module__t__doc__t user_optionstboolean_optionsR8R=(((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyRSs   cBsXeZdZdZddddgejZejd gZdZdZdZ RS(s#Save command-line options to a files1set an option in setup.cfg or another config filescommand=tcscommand to set an option forsoption=tos option to sets set-value=tssvalue of the optiontremovetrsremove (unset) the valuecCs5tj|d|_d|_d|_d|_dS(N(RR8R tcommandR0t set_valueRF(R7((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR8s     cCsftj||jdks+|jdkr:tdn|jdkrb|j rbtdndS(Ns%Must specify --command *and* --options$Must specify --set-value or --remove(RR=RHR R0R;RIRF(R7((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR=s  cCs=t|jii|j|jjdd6|j6|jdS(Nt-t_(RR+RIR0treplaceRHR-(R7((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pytruns #(scommand=RCscommand to set an option for(soption=RDs option to set(s set-value=REsvalue of the option(sremoveRGsremove (unset) the value( R>R?R@t descriptionRRARBR8R=RM(((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR|s   (RRt setuptoolsRtdistutils.utilRRtdistutils.errorst__all__RtFalseRRR(((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyts  ))