name : setopt.cpython-39.pyc
a

��kh��@s�ddlmZddlmZddlmZddlZddlZddlZddlm	Z	gd�Z
ddd	�Zddd�ZGd
d�de	�Z
Gdd�de
�ZdS)�)�convert_path)�log)�DistutilsOptionErrorN)�Command)�config_file�edit_config�option_base�setopt�localcCsh|dkrdS|dkr,tj�tj�tj�d�S|dkrZtjdkrBdpDd}tj�td	|��St	d
|��dS)z�Get 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)�kind�dot�r�=/usr/lib/python3.9/site-packages/setuptools/command/setopt.pyr
s��rFc		Cs<t�d|�t��}|�|g�|��D]�\}}|durRt�d||�|�|�q(|�|�stt�d||�|�	|�|��D]p\}}|dur�t�d|||�|�
||�|�|�s�t�d||�|�|�q|t�d||||�|�|||�q|q(t�d|�|�s8t
|d	��}|�|�Wd�n1�s.0YdS)
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�debug�configparserZRawConfigParser�read�items�infoZremove_sectionZhas_sectionZadd_sectionZ
remove_option�options�set�open�write)	�filenameZsettings�dry_runZopts�sectionr#�option�value�frrrr s>

�
��rc@s0eZdZdZgd�ZddgZdd�Zdd�Zd	S)
rz<Abstract base class for commands that mess with config files))�
global-config�gz0save options to the site-wide distutils.cfg file)�user-config�uz7save options to the current user's pydistutils.cfg file)z	filename=r,z-configuration file to use (default=setup.cfg)r-r/cCsd|_d|_d|_dS�N)�
global_config�user_configr'��selfrrr�initialize_options[szoption_base.initialize_optionscCsvg}|jr|�td��|jr,|�td��|jdurB|�|j�|sT|�td��t|�dkrjtd|��|\|_dS)Nrrr
�z/Must specify only one configuration file option)r2�appendrr3r'�lenr)r5�	filenamesrrr�finalize_options`s
�zoption_base.finalize_optionsN)�__name__�
__module__�__qualname__�__doc__�user_options�boolean_optionsr6r;rrrrrKs
�rc@sFeZdZdZdZgd�ejZejdgZdd�Zdd�Z	d	d
�Z
dS)r	z#Save command-line options to a filez1set an option in setup.cfg or another config file))zcommand=�czcommand to set an option for)zoption=�oz
option to set)z
set-value=�szvalue of the option)�remove�rzremove (unset) the valuerEcCs&t�|�d|_d|_d|_d|_dSr1)rr6�commandr*�	set_valuerEr4rrrr6�s

zsetopt.initialize_optionscCsBt�|�|jdus|jdur&td��|jdur>|js>td��dS)Nz%Must specify --command *and* --optionz$Must specify --set-value or --remove)rr;rGr*rrHrEr4rrrr;�s

zsetopt.finalize_optionscCs*t|j|j|j�dd�|jii|j�dS)N�-�_)rr'rGr*�replacerHr(r4rrr�run�s��z
setopt.runN)r<r=r>r?�descriptionrr@rAr6r;rLrrrrr	rs�r	)r
)F)Zdistutils.utilrrrZdistutils.errorsrrrZ
setuptoolsr�__all__rrrr	rrrr�<module>s

+'

© 2025 Cubjrnet7