U âQabÝã@sddlmZddlmZddlmZddlZddlZddlmZddl m Z ddd d gZ dd d„Z ddd„Z Gdd „d e ƒZGdd „d eƒZdS)é)Ú convert_path)Úlog)ÚDistutilsOptionErrorN)Ú configparser)ÚCommandÚ config_fileÚ edit_configÚ option_baseÚsetoptÚlocalcCsh|dkr dS|dkr,tj tj tj¡d¡S|dkrZtjdkrBdpDd}tj td |ƒ¡St d |ƒ‚d S) zGet the filename of the distutils, local, global, or per-user config `kind` must be one of "local", "global", or "user" r z setup.cfgÚglobalz distutils.cfgÚuserÚposixÚ.Úz~/%spydistutils.cfgz7config_file() type must be 'local', 'global', or 'user'N) ÚosÚpathÚjoinÚdirnameÚ distutilsÚ__file__ÚnameÚ expanduserrÚ ValueError)ZkindÚdot©rú=/usr/lib/python3.8/site-packages/setuptools/command/setopt.pyrs ÿÿFc Cs&t d|¡t ¡}| |g¡| ¡D]Æ\}}|dkrRt d||¡| |¡q(| |¡stt d||¡|  |¡| ¡D]p\}}|dkrÌt d|||¡|  ||¡|  |¡sìt d||¡| |¡q|t d||||¡|  |||¡q|q(t d|¡|s"t |d ƒ}| |¡W5QRXdS) aYEdit 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. zReading configuration from %sNzDeleting section [%s] from %szAdding new section [%s] to %szDeleting %s.%s from %sz#Deleting empty [%s] section from %szSetting %s.%s to %r in %sz Writing %sÚw)rÚdebugrZRawConfigParserÚreadÚitemsÚinfoZremove_sectionZ has_sectionZ add_sectionZ remove_optionÚoptionsÚsetÚopenÚwrite) ÚfilenameZsettingsÚdry_runZoptsZsectionr"ÚoptionÚvalueÚfrrrr!sJ     þ  ÿ þ  c@s2eZdZdZdddgZddgZdd„Zd d „Zd S) r z|js>tdƒ‚dS)Nz%Must specify --command *and* --optionz$Must specify --set-value or --remove)r r9rEr(rrFrCr2rrrr9ˆs  zsetopt.finalize_optionscCs*t|j|j|j dd¡|jii|jƒdS)Nú-Ú_)rr&rEr(ÚreplacerFr'r2rrrÚrunsÿüz setopt.runN) r:r;r<r=Ú descriptionr r>r?r4r9rJrrrrr ssüû )r )F)Zdistutils.utilrrrZdistutils.errorsrrZsetuptools.extern.six.movesrZ setuptoolsrÚ__all__rrr r rrrrÚs        +'