a
    eÖ0hÝ  ã                   @   sŒ   d dl mZ d dlmZ d dlmZ d dlZd dlZd dlmZ d dl	m
Z
 g d¢Zdd	d
„Zddd„ZG dd„ de
ƒZG dd„ deƒZdS )é    )Úconvert_path)Úlog)ÚDistutilsOptionErrorN)Úconfigparser)ÚCommand)Úconfig_fileÚedit_configÚoption_baseÚsetoptÚlocalc                 C   sh   | dkrdS | dkr,t j t j tj¡d¡S | dkrZt jdkrBdpDd}t j td	| ƒ¡S t	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)ÚkindÚdot© r   úG/var/www/auris/lib/python3.9/site-packages/setuptools/command/setopt.pyr      s    ÿÿr   Fc           	   	   C   s<  t  d| ¡ t ¡ }| | g¡ | ¡ D ]Æ\}}|du rRt  d|| ¡ | |¡ q(| |¡stt  d|| ¡ | 	|¡ | ¡ D ]p\}}|du rÌt  d||| ¡ | 
||¡ | |¡sìt  d|| ¡ | |¡ q|t  d|||| ¡ | |||¡ q|q(t  d| ¡ |s8t| d	ƒ}| |¡ W d  ƒ n1 s.0    Y  dS )
aY  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.
    zReading configuration from %sNzDeleting section [%s] from %szAdding new section [%s] to %szDeleting %s.%s from %sz#Deleting empty [%s] section from %szSetting %s.%s to %r in %sz
Writing %sÚw)r   Údebugr   ÚRawConfigParserÚreadÚitemsÚinfoÚremove_sectionÚhas_sectionÚadd_sectionÚremove_optionÚoptionsÚsetÚopenÚwrite)	ÚfilenameÚsettingsÚdry_runÚoptsÚsectionr(   ÚoptionÚvalueÚfr   r   r   r   !   s>    

þ
ÿþr   c                   @   s0   e Zd ZdZg d¢ZddgZdd„ Zdd„ Zd	S )
r	   z<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=r3   z-configuration file to use (default=setup.cfg)r4   r6   c                 C   s   d | _ d | _d | _d S ©N)Úglobal_configÚuser_configr,   ©Úselfr   r   r   Úinitialize_options\   s    zoption_base.initialize_optionsc                 C   sv   g }| j r| tdƒ¡ | jr,| tdƒ¡ | jd urB| | j¡ |sT| tdƒ¡ t|ƒdkrjtd|ƒ‚|\| _d S )Nr   r   r   é   z/Must specify only one configuration file option)r9   Úappendr   r:   r,   Úlenr   )r<   Ú	filenamesr   r   r   Úfinalize_optionsa   s    
þzoption_base.finalize_optionsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úuser_optionsÚboolean_optionsr=   rB   r   r   r   r   r	   L   s   
ÿr	   c                   @   sF   e Zd ZdZdZg d¢ej Zejdg Zdd„ Zdd„ Z	d	d
„ Z
dS )r
   z#Save command-line options to a filez1set an option in setup.cfg or another config file))zcommand=Úczcommand to set an option for)zoption=Úozoption to set)z
set-value=Úszvalue of the option)ÚremoveÚrzremove (unset) the valuerL   c                 C   s&   t  | ¡ d | _d | _d | _d | _d S r8   )r	   r=   Úcommandr1   Ú	set_valuerL   r;   r   r   r   r=      s
    
zsetopt.initialize_optionsc                 C   sB   t  | ¡ | jd u s| jd u r&tdƒ‚| jd u r>| js>tdƒ‚d S )Nz%Must specify --command *and* --optionz$Must specify --set-value or --remove)r	   rB   rN   r1   r   rO   rL   r;   r   r   r   rB   ˆ   s
    
zsetopt.finalize_optionsc                 C   s*   t | j| j| j dd¡| jii| jƒ d S )Nú-Ú_)r   r,   rN   r1   ÚreplacerO   r.   r;   r   r   r   Úrun   s    ÿüz
setopt.runN)rC   rD   rE   rF   Údescriptionr	   rG   rH   r=   rB   rS   r   r   r   r   r
   s   s   ûr
   )r   )F)Údistutils.utilr   r   r   Údistutils.errorsr   r   Zsetuptools.extern.six.movesr   Ú
setuptoolsr   Ú__all__r   r   r	   r
   r   r   r   r   Ú<module>   s   

+'