+
    SBi                         ^ RI t ^ RIt^RIHt ^RIHt ^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht . ROtRR	 ltRR
 lt ! R R]4      t ! R R]4      tR# )    N)Command)_cfg_read_utf8_with_fallback)log)DistutilsOptionError)convert_pathoption_basesetoptc                   V R8X  d   R# V R8X  dL   \         P                  P                  \         P                  P                  \        P
                  4      R4      # V R8X  dT   \         P                  R8H  ;'       d    R;'       g    Rp\         P                  P                  \        R	V R
24      4      # \        RV 4      h)zyGet the filename of the distutils, local, global, or per-user config

`kind` must be one of "local", "global", or "user"
localz	setup.cfgglobalzdistutils.cfguserposix. z~/zpydistutils.cfgz7config_file() type must be 'local', 'global', or 'user')
ospathjoindirname	distutils__file__name
expanduserr   
ValueError)kinddots   & >/usr/lib/python3.14/site-packages/setuptools/command/setopt.pyconfig_filer      s    
 wxww||BGGOOI,>,>?QQv~gg ((S..Bww!!,C5/H"IJJ
NPT
UU    c           	        \         P                  ! RV 4       \        P                  ! 4       pR Vn        \        W04       VP                  4        EF&  w  rEVf+   \         P                  ! RW@4       VP                  V4       K4  VP                  V4      '       g)   \         P                  ! RW@4       VP                  V4       VP                  4        F  w  rgVfm   \         P                  ! RWFV 4       VP                  WF4       VP                  V4      '       g+   \         P                  ! RW@4       VP                  V4       Ks  Ku  \         P                  ! RWFWp4       VP                  WFV4       K  	  EK)  	  \         P                  ! R	V 4       V'       g3   \        V R
RR7      ;_uu_ 4       pVP                  V4       RRR4       R# R#   + '       g   i     R# ; i)aE  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 %sc                     V # N )	optionstrs   &r   <lambda>edit_config.<locals>.<lambda>(   s    r   Nz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wzutf-8)encoding)r   debugconfigparserRawConfigParseroptionxformr   itemsinforemove_sectionhas_sectionadd_sectionremove_optionoptionssetopenwrite)	filenamesettingsdry_runoptssectionr2   optionvaluefs	   &&&      r   edit_configr>      sk    II-x8'')D2D 0$NN,?HH4gH(##G,,		97M  )!(=II6R&&w7<<00A7 ++G4	 1 II3We HHWe4 "1 -. HH\8$(C'22aJJqM 32 222s   0GG	c                   @   a  ] tR t^Ht o Rt. ROtRR.tR tR tRt	V t
R# )	r   z<Abstract base class for commands that mess with config filesglobal-configuser-configc                0    R V n         R V n        R V n        R # r!   )global_configuser_configr6   selfs   &r   initialize_optionsoption_base.initialize_optionsV   s    !r   c                   . pV P                   '       d   VP                  \        R 4      4       V P                  '       d   VP                  \        R4      4       V P                  e   VP                  V P                  4       V'       g   VP                  \        R4      4       \        V4      ^8  d   \        RV4      hVw  V n        R# )r   r   Nr   z/Must specify only one configuration file option)rC   appendr   rD   r6   lenr   )rF   	filenamess   & r   finalize_optionsoption_base.finalize_options[   s    	[23[01==$T]]+[12y>A&A9  %r   )r6   rC   rD   N))r@   gz0save options to the site-wide distutils.cfg file)rA   uz7save options to the current user's pydistutils.cfg file)z	filename=r=   z-configuration file to use (default=setup.cfg))__name__
__module____qualname____firstlineno____doc__user_optionsboolean_optionsrG   rM   __static_attributes____classdictcell____classdict__s   @r   r   r   H   s-     FL 	O

% %r   c                      a  ] tR t^lt o RtRt. RO]P                  ,           t]P                  R.,           tR t	V 3R lR lt
V 3R lR ltR	tV tR
# )r	   z#Save command-line options to a filez1set an option in setup.cfg or another config fileremovec                h    \         P                  V 4       R V n        R V n        R V n        R V n        R # r!   )r   rG   commandr;   	set_valuer]   rE   s   &r   rG   setopt.initialize_optionsz   s,    &&t,r   c                   < V ^8  d   QhRR/#    returnNr"   )formatr[   s   "r   __annotate__setopt.__annotate__   s     O O$ Or   c                    \         P                  V 4       V P                  e   V P                  f   \	        R4      hV P
                  f    V P                  '       g   \	        R4      hR # R # )Nz%Must specify --command *and* --optionz$Must specify --set-value or --remove)r   rM   r_   r;   r   r`   r]   rE   s   &r   rM   setopt.finalize_options   sU    $$T*<<4;;#6&'NOO>>!$+++&'MNN +6!r   c                   < V ^8  d   QhRR/# rc   r"   )rf   r[   s   "r   rg   rh      s     
 
T 
r   c                    \        V P                  V P                  V P                  P	                  R R4      V P
                  //V P                  4       R# )-_N)r>   r6   r_   r;   replacer`   r8   rE   s   &r   run
setopt.run   s>    MM\\DKK//S94>>JKLL	
r   )r_   r;   r]   r`   N))zcommand=czcommand to set an option for)zoption=ozoption to set)z
set-value=szvalue of the option)r]   rzremove (unset) the value)rQ   rR   rS   rT   rU   descriptionr   rV   rW   rG   rM   rp   rX   rY   rZ   s   @r   r	   r	   l   sS     -EK
 	  !L "11XJ>OO O
 
r   )r   r>   r   r	   )r   )F)r)   r   r   r   unicode_utilsr   r   r   distutils.errorsr   distutils.utilr   __all__r   r>   r   r	   r"   r   r   <module>r{      sG     	  8   1 '
AV'T!%' !%H!
[ !
r   