ó Àfc@sÂddlmZddlmZddlmZddlZddlZddlmZddl m Z ddd d gZ d d „Z e d „Zd e fd„ƒYZd efd„ƒYZdS(iÿÿÿÿ(t convert_path(tlog(tDistutilsOptionErrorN(t configparser(tCommandt config_filet edit_configt option_basetsetopttlocalcCs’|dkrdS|dkr>tjjtjjtjƒdƒS|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" R s 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.pyRs    c Csœtjd|ƒtjƒ}|j|gƒx+|jƒD]\}}|d krttjd||ƒ|j|ƒq9|j |ƒs¦tjd||ƒ|j |ƒnx­|jƒD]Ÿ\}}|d kr&tjd|||ƒ|j ||ƒ|j |ƒsRtjd||ƒ|j|ƒqRq³tjd||||ƒ|j |||ƒq³Wq9Wtjd|ƒ|s˜t|dƒ}|j|ƒWd QXnd 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. sReading 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(RtdebugRtRawConfigParsertreadtitemstNonetinfotremove_sectiont has_sectiont add_sectiont remove_optiontoptionstsettopentwrite( tfilenametsettingstdry_runtoptstsectionR%toptiontvaluetf((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR!s8      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=R0s-configuration file to use (default=setup.cfg)cCsd|_d|_d|_dS(N(Rt global_configt user_configR)(tself((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pytinitialize_options\s  cCs¶g}|jr%|jtdƒƒn|jrD|jtdƒƒn|jdk rf|j|jƒn|s‚|jtdƒƒnt|ƒdkr¦td|ƒ‚n|\|_dS(NR R R is/Must specify only one configuration file option(R3tappendRR4R)RtlenR(R5t filenames((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pytfinalize_optionsas   (s global-configR1s0save options to the site-wide distutils.cfg file(s user-configR2s7save options to the current user's pydistutils.cfg file(s filename=R0s-configuration file to use (default=setup.cfg)(t__name__t __module__t__doc__t user_optionstboolean_optionsR6R:(((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyRLs   cBsXeZdZdZddddgejZejd gZd„Zd„Zd„Z 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(RR6RtcommandR.t set_valueRC(R5((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR6s     cCsftj|ƒ|jdks+|jdkr:tdƒ‚n|jdkrb|j rbtdƒ‚ndS(Ns%Must specify --command *and* --options$Must specify --set-value or --remove(RR:RERR.RRFRC(R5((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyR:ˆs  cCs=t|jii|j|jjddƒ6|j6|jƒdS(Nt-t_(RR)RFR.treplaceRER+(R5((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pytruns #(scommand=R@scommand to set an option for(soption=RAs option to set(s set-value=RBsvalue of the option(RCRDsremove (unset) the value( R;R<R=t descriptionRR>R?R6R:RJ(((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyRss   (tdistutils.utilRRRtdistutils.errorsRRtsetuptools.extern.six.movesRt setuptoolsRt__all__RtFalseRRR(((s=/usr/lib/python2.7/site-packages/setuptools/command/setopt.pyts    +'