+
    VBi                       R t ^ RIHt Rt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHt ^ RIHt ^ RIt^ RIHtHt Rt]'       d2   ^ RIHtHtHt ^ R	IHtHtHtHt ^ R
IHtHtHt ^ RIHt  ! R R]4      t R R lt!R R lt"R@R R llt#R@R R llt$R@R R llt%R@R R llt&R@R R llt'R@R R llt(R@R R llt)R@R  R! llt*R@R" R# llt+R@R$ R% llt,R@R& R' llt-R@R( R) llt.R@R* R+ llt/R@R, R- llt0RAR. R/ llt1R0 R1 lt2R2 R3 lt3 ! R4 R5]Ph                  4      t4 ! R6 R7]Pj                  4      t5 ! R8 R9]Pl                  ]P6                  4      t6 ! R: R;]Pn                  4      t8 ! R< R=]94      t:R> R? lt;R# )Ba*  
Command-line and common processing for Docutils front-end tools.

This module is provisional.
Major changes will happen with the transition from the
"optparse" module to "arparse" in Docutils 2.0 or later.

Applications should use the high-level API provided by `docutils.core`.
See https://docutils.sourceforge.io/docs/api/runtime-settings.html.

Exports the following classes:

* `OptionParser`: Standard Docutils command-line processing.
  Deprecated. Will be replaced by an ArgumentParser.
* `Option`: Customized version of `optparse.Option`; validation support.
  Deprecated. Will be removed.
* `Values`: Runtime settings; objects are simple structs
  (``object.attribute``).  Supports cumulative list settings (attributes).
  Deprecated. Will be removed.
* `ConfigParser`: Standard Docutils config file processing.
  Provisional. Details will change.

Also exports the following functions:

Interface function:
  `get_default_settings()`.  New in 0.19.

Option callbacks:
  `store_multiple()`, `read_config_file()`. Deprecated. To be removed.

Setting validators:
  `validate_encoding()`, `validate_encoding_error_handler()`,
  `validate_encoding_and_error_handler()`,
  `validate_boolean()`, `validate_ternary()`,
  `validate_nonnegative_int()`, `validate_threshold()`,
  `validate_colon_separated_string_list()`,
  `validate_comma_separated_list()`,
  `validate_url_trailing_slash()`,
  `validate_dependency_file()`,
  `validate_strip_class()`
  `validate_smartquotes_locales()`.

  Provisional.

Misc:
  `make_paths_absolute()`, `filter_settings_spec()`. Provisional.
)annotationsreStructuredTextN)SUPPRESS_HELP)Path)ioutilsF)IterableMappingSequence)AnyClassVarLiteralProtocol)SettingsSpec_OptionTuple_SettingsSpecTuple)StrPathc                  &    ] tR t^OtRR R lltRtR# )_OptionValidatorNc               0    V ^8  d   QhRRRRRRRRRR	R
R/# )   config_parserConfigParser | Noneconfig_section
str | Nonesettingstrvalueoption_parserOptionParserreturnr    )formats   "6/usr/lib/python3.14/site-packages/docutils/frontend.py__annotate___OptionValidator.__annotate__P   sF     		 		 /		 '				 		 (			 		    c               	    R # Nr!   )selfr   r   r   r   r   s   """"&&r#   __call___OptionValidator.__call__P   s     r&   r!   )NN)__name__
__module____qualname____firstlineno__r*   __static_attributes__r!   r&   r#   r   r   O   s    		 		r&   r   c               4    V ^8  d   QhRRRRRRRRR	RR
RRR/# )r   optionoptparse.Optionoptr   r   r   parserr   argskwargsr    Noner!   )r"   s   "r#   r$   r$   \   sK     + +? +++ (+ 	+
 !+ +r&   c                    V F  p\        VP                  VR4       K  	  VP                  4        F  w  rr\        VP                  Wr4       K  	  R# )z
Store multiple values in `parser.values`.  (Option callback.)

Store `None` for each attribute named in `args`, and store the value for
each key (attribute name) in `kwargs`.

Deprecated. Will be removed with the switch to from optparse to argparse.
N)setattrvaluesitems)r2   r4   r   r5   r6   r7   	attributekeys   &&&&*,  r#   store_multipler?   \   s>     	y$/ lln
s* %r&   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r2   r3   r4   r   r   r   r5   r   r    r8   r!   )r"   s   "r#   r$   r$   q   s7     / /_ /// */ 	/r&   c                     VP                  V4      pVP                  P	                  XV4       R#   \         d   pTP                  T4        Rp?L?Rp?ii ; i)z
Read a configuration file during option processing.  (Option callback.)

Deprecated. Will be removed with the switch to from optparse to argparse.
N)get_config_file_settings
ValueErrorerrorr;   update)r2   r4   r   r5   new_settingserrs   &&&&  r#   read_config_filerH   q   sN    66u= MMv.  Ss   1 AAAc               0    V ^8  d   QhRRRRRRRRR	RR
R/# r   r   r   r   r   r   OptionParser | Noner   r   r   r    r!   )r"   s   "r#   r$   r$      sA      s '%8 &9 '1	
 &r&   c                    Vf   T pVR8X  d    \         P                  ! R\        ^R7       R #  \        P                  ! V4       V#   \
         d#    T '       d   RT  R2MRp\        T RT R24      hi ; i)N ztInput encoding detection will be removed and the special encoding values None and "" become invalid in Docutils 1.0.
stacklevelz	setting "z":z unknown encoding: "")warningswarnFutureWarningcodecslookupLookupError)r   r   r   r   r   prefixs   &&&&& r#   validate_encodingrX      s     }{ )*7A	G Ce L  C,39WIR(VH$8qABBCs   A A3A3c               0    V ^8  d   QhRRRRRRRRR	RR
R/# rJ   r!   )r"   s   "r#   r$   r$      sD       + +	
 # r&   c                    Vf   T p \         P                  ! V4       V#   \         d    \        RT,          4      hi ; i)Nzunknown encoding error handler: "%s" (choices: "strict", "ignore", "replace", "backslashreplace", "xmlcharrefreplace", and possibly others; see documentation for the Python ``codecs`` module))rT   lookup_errorrV   r   r   r   r   r   s   &&&&&r#   validate_encoding_error_handlerr]      sU     }5E" L  5, /445 	55s     >c               0    V ^8  d   QhRRRRRRRRR	RR
R/# rJ   r!   )r"   s   "r#   r$   r$      sD     ' ''' +' +	'
 #' 'r&   c                    RV9   d`   VP                  R4      w  rV\        V4       V'       d   VP                  W@R,           V4       M!\        VP                  V R,           V4       MTp\        V4      # )aT  Check/normalize encoding settings

Side-effect: if an error handler is included in the value, it is inserted
into the appropriate place as if it were a separate setting/option.

All arguments except `value` are ignored
(kept for compatibility with "optparse" module).
If there is only one positional argument, it is interpreted as `value`.
:_error_handler)splitr]   setr:   r;   rX   )r   r   r   r   r   encodinghandlers   &&&&&  r#   #validate_encoding_and_error_handlerrf      sj      e|!KK,'0n8H.H%' M(('4D*DgNX&&r&   c               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   r   
str | boolr   r   r   rK   r   r   r   r    boolr!   )r"   s   "r#   r$   r$      sI     A Aj A&A$7A %8A &0	A
 Ar&   c                    Vf   T p\        V\        4      '       d   V#  \        P                  VP	                  4       P                  4       ,          #   \         d    \        RT,          4      hi ; i)a  Check/normalize boolean settings:

:True:  '1', 'on', 'yes', 'true'
:False: '0', 'off', 'no','false', ''

All arguments except `value` are ignored
(kept for compatibility with "optparse" module).
If there is only one positional argument, it is interpreted as `value`.
zunknown boolean value: "%s")
isinstanceri   r   booleansstriplowerKeyErrorrV   r\   s   &&&&&r#   validate_booleanrp      sh     }%A$$U[[]%8%8%:;; A7%?@@As   2A A1c               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   r   rh   r   r   r   rK   r   r   r   r    zstr | bool | Noner!   )r"   s   "r#   r$   r$      sA      j &$7 %8 &0	
 ,r&   c                    Vf   T p\        V\        4      '       g   Vf   V#  \        P                  VP	                  4       P                  4       ,          #   \         d    Tu # i ; i)a2  Check/normalize three-value settings:

:True:  '1', 'on', 'yes', 'true'
:False: '0', 'off', 'no','false', ''
:any other value: returned as-is.

All arguments except `value` are ignored
(kept for compatibility with "optparse" module).
If there is only one positional argument, it is interpreted as `value`.
)rk   ri   r   rl   rm   rn   ro   r\   s   &&&&&r#   validate_ternaryrs      s]      }%%-$$U[[]%8%8%:;; s   2A A'&A'c               0    V ^8  d   QhRRRRRRRRR	RR
R/# r   r   z	str | intr   r   r   rK   r   r   r   r    intr!   )r"   s   "r#   r$   r$     sB      i $.,? -@ .8	
 #&r&   c                L    Vf   T p\        V4      pV^ 8  d   \        R4      hV# )Nz(negative value; must be positive or zero)rv   rC   r\   s   &&&&&r#   validate_nonnegative_intrx     s/     }JEqyCDDLr&   c               0    V ^8  d   QhRRRRRRRRR	RR
R/# ru   r!   )r"   s   "r#   r$   r$     sI     @ @	 @(@&9@ ':@ (2	@
  @r&   c                    Vf   T p \        V4      #   \         dQ     \        P                  TP	                  4       ,          u #   \
        \        3 d    \        RT,          4      hi ; ii ; i)Nzunknown threshold: %r.)rv   rC   r   
thresholdsrn   ro   AttributeErrorrV   r\   s   &&&&&r#   validate_thresholdr}     ss     }@5z @	@**5;;=99.) 	@6>??	@@s    
 A.$AA.$A**A.c               0    V ^8  d   QhRRRRRRRRR	RR
R/# r   r   zstr | list[str]r   r   r   rK   r   r   r   r    	list[str]r!   )r"   s   "r#   r$   r$   &  sD        + +	
 # r&   c                    Vf   T p\        V\        4      '       g   VP                  R4      pV# VP                  4       pVP	                  VP                  R4      4       V# )Nr`   )rk   listrb   popextend)r   r   r   r   r   lasts   &&&&& r#   $validate_colon_separated_string_listr   &  sV     }eT""C  L yy{TZZ_%Lr&   c               0    V ^8  d   QhRRRRRRRRR	RR
R/# r   r!   )r"   s   "r#   r$   r$   :  sD        + +	
 # r&   c                   Vf   T p\        V\        4      '       g   V.pVP                  4       pVP                  R4       Uu. uF,  qfP	                  R4      '       g   K  VP	                  R4      NK.  	  ppVP                  V4       V# u upi )zCheck/normalize list arguments (split at "," and strip whitespace).

All arguments except `value` are ignored
(kept for compatibility with "optparse" module).
If there is only one positional argument, it is interpreted as `value`.
,z 	
)rk   r   r   rb   rm   r   )r   r   r   r   r   r   ir<   s   &&&&&   r#   validate_comma_separated_listr   :  sy     } eT"" 99;D'+zz#K!''':JQWWWEK	LLL Ls   B
 B
c               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   r   r   r   r   r   rK   r   r   r   r    ztuple[()] | tuple[str, str]r!   )r"   s   "r#   r$   r$   U  sA     % %# % *%(;% )<% *4	%
 :%r&   c                N   Vf   T pR	pR
pV'       g   R# VP                  ^R7      pV^ ,          P                  4       p V^,          p	W9  d   \        RV RV R24      hVR8X  d+   V	P                  4       p
W9  d   \        RV	 RV R24      hT
p	W3#   \         d    Rp	 L[i ; i)a=  Check "math-output" setting, return list with "format" and "options".

See also https://docutils.sourceforge.io/docs/user/config.html#math-output

Argument list for compatibility with "optparse" module.
All arguments except `value` are ignored.
If there is only one positional argument, it is interpreted as `value`.
mathmlrM   )maxsplitzUnknown math output format: "z",
    choose from .zMathML converter "z!" not supported,
    choose from )htmllatexr   mathjax)rM   latexmlttm	blahtexmlpandocr!   )rb   rn   
IndexErrorrV   )r   r   r   r   r   formatstex2mathml_convertersr;   r"   options	converters   &&&&&      r#   validate_math_outputr   U  s     }4GI	[[![$FAY__F) 9% A--4IQ8 9 	9MMO	1 27) <11F0GqJ K K?  s   	B B$#B$c               0    V ^8  d   QhRRRRRRRRRRR	R
/# )r   r   r   r   r   rK   r   r   r   r    r   r!   )r"   s   "r#   r$   r$   }  sB       '1/B 0C 1;	
 &)r&   c                f    Vf   T pV'       g   R# VP                  R4      '       d   V# VR,           # )Nz.//)endswithr\   s   &&&&&r#   validate_url_trailing_slashr   }  s2     }			s{r&   c               0    V ^8  d   QhRRRRRRRRRRR	R
/# )r   r   r   r   r   rK   r   r   r   r    zutils.DependencyListr!   )r"   s   "r#   r$   r$     sB     * *j *$.*,?* -@* .8	*
 #7*r&   c                    Vf   T p \         P                  ! V4      #   \         d    \         P                  ! R 4      u # i ; ir(   )r   DependencyListOSErrorr\   s   &&&&&r#   validate_dependency_filer     sD     }*##E** *##D))*s    !AAc               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   r   r   r   r   r   rK   r   r   r   r    r   r!   )r"   s   "r#   r$   r$     sA      #  *(; )< *4	
 (r&   c                    Vf   T p\        V4      pV F<  p\        P                  P                  V4      pWV8w  g   K*  \	        RV: RV: R24      h	  V# )NzInvalid class value z
 (perhaps z?))r   docutilsnodesmake_idrC   )r   r   r   r   r   cls
normalizeds   &&&&&  r#   validate_strip_classr     sZ     })%0E^^++C0
 #Z1 2 2 
 Lr&   c               0    V ^8  d   QhRRRRRRRRR	RR
R/# )r   r   z!str | list[str | tuple[str, str]]r   r   r   rK   r   r   r   r    zlist[tuple[str, Sequence[str]]]r!   )r"   s   "r#   r$   r$     sD     + +2++ ++ +	+
 #+ -+r&   c           	        Vf   T p\        V4      p. pV F  p VP                  R^4      w  rxTP                  4       pTP                  R4      p	\        T	4      ^8X  d   T	pM2\        T4      ^8w  d#   \	        RTP                  RR4      ,          4      hTP                  Yx34       K  	  V#   \         d    TP                  T4        K  \         d$    \	        RTP                  RR4      ,          4      hi ; i)a  Check/normalize a comma separated list of smart quote definitions.

Return a list of (language-tag, quotes) string tuples.

All arguments except `value` are ignored
(kept for compatibility with "optparse" module).
If there is only one positional argument, it is interpreted as `value`.
r`   z4Invalid value "%s". Format is "<language>:<quotes>".asciibackslashreplacez[Invalid value "%s". Please specify 4 quotes
    (primary open/close; secondary open/close).)r   rb   r|   appendrC   encoderm   len)
r   r   r   r   r   	lc_quotesitemlangquotesmultichar_quotess
   &&&&&     r#   validate_smartquotes_localesr     s    })%0EI
	I::c1-LD !<<, A%%F[A O#{{74FGH I I 	$(+ , '  	 T" 	I A#{{74FGH I I	Is   B,,C8C8$C8c               (    V ^8  d   QhRRRRRRRR/# )	r   pathdictz"dict[str, list[StrPath] | StrPath]keysz
tuple[str]	base_pathzStrPath | Noner    r8   r!   )r"   s   "r#   r$   r$     s.     " ""D "("#1" ""r&   c                   Vf   \         P                  ! 4       pML\        V4      p\        P                  R8X  d-   \        P                  R,          R8:  d   VP                  4       pV F  pW09   g   K  W,          p\        V\        \        34      '       d0   V Uu. uF"  p\        W%,          P                  4       4      NK$  	  ppM'V'       d    \        W$,          P                  4       4      pW@V&   K  	  R# u upi )z
Interpret filesystem path settings relative to the `base_path` given.

Paths are values in `pathdict` whose keys are in `keys`.  Get `keys` from
`OptionParser.relative_path_settings`.
Nwin32:Nr   N)   	   )r   cwdsysplatformversion_infoabsoluterk   r   tupler   resolve)r   r   r   r>   r   paths   &&&   r#   make_paths_absoluter     s     HHJ	O	<<7"s'7'7';v'E!**,I?ME%$//EJKUTin5578UKY_5578!SM  Ls   (C8c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r    r   r!   )r"   s   "r#   r$   r$      s!     : :g :W : :r&   c                    \         P                  ! R \        ^R7       \        P                  P                  \        P                  P                  W4      4      # )zKfrontend.make_one_path_absolute() will be removed in Docutils 2.0 or later.rN   )rQ   rR   DeprecationWarningosr   abspathjoin)r   r   s   &&r#   make_one_path_absoluter      s:    MM .$4 77??277<<	899r&   c               (    V ^8  d   QhRRRRRRRR/# )r   settings_specr   excluder   replacer   r    r!   )r"   s   "r#   r$   r$     s.      (: #&$0 1r&   c           	        \        V 4      p\        ^\        V4      ^4       F  p. pW4,           F  pV^,           Uu. uF5  pVP                  R4      '       g   K  VR,          P	                  RR4      NK7  	  up^ ,          pW9   d   K[  WP                  4       9   d   VP                  W(,          4       K  VP                  V4       K  	  \        V4      W4&   K  	  \        V4      # u upi )aR  Return a copy of `settings_spec` excluding/replacing some settings.

`settings_spec` is a tuple of configuration settings
(cf. `docutils.SettingsSpec.settings_spec`).

Optional positional arguments are names of to-be-excluded settings.
Keyword arguments are option specification replacements.
(See the html4strict writer for an example.)
z--:r   NN-_)r   ranger   
startswithr   r   r   r   )	r   r   r   settingsr   newoptsopt_spec
opt_stringopt_names	   &*,      r#   filter_settings_specr     s     M"H1c(mQ'&( H +31+8*5J%006 9
2..sC8*5889;H "<<>)w01x( $ Gn ( ?8s   C(C(c                  Z   a  ] tR tRtRtRR V 3R llltR R ltR R ltR	 R
 ltRt	V ;t
# )Valuesi(  zStorage for option values.

Updates list attributes by extension rather than by replacement.
Works in conjunction with the `OptionParser.lists` instance attribute.

Deprecated. Will be removed when switching to the "argparse" module.
c                    V ^8  d   QhRRRR/# )r   defaultszdict[str, Any] | Noner    r8   r!   )r"   s   "r#   r$   Values.__annotate__1  s     > >!6 >$ >r&   c                	   < \         P                  ! R \        ^R7       \        SV `  VR7       \        V RR4      f   \        P                  ! 4       V n        R# R# )z?frontend.Values class will be removed in Docutils 2.0 or later.rN   r   record_dependenciesN)	rQ   rR   r   super__init__getattrr   r   r   )r)   r   	__class__s   &&r#   r   Values.__init__1  sQ     2(Q	8 	(+4.5=',';';'=D$ >r&   c               $    V ^8  d   QhRRRRRR/# )r   
other_dictzValues | Mapping[str, Any]r   r   r    r8   r!   )r"   s   "r#   r$   r   :  s&     ' '5'*' 'r&   c                	F   \        V\        4      '       d   VP                  p\        V4      pVP                  P                  4        FD  p\        W4      '       g   K  W19   g   K  \        W4      pV'       g   K3  WAV,          ,          pW KF  	  V P                  V4       R # r(   )	rk   r   __dict__dictlistsr   hasattrr   _update_loose)r)   r   r   r   r   s   &&&  r#   rE   Values.update:  s     j&))#,,J*%
$**//1Gt%%'*?.500E"+ 2 	:&r&   c                   V ^8  d   QhRR/# r   r    r   r!   )r"   s   "r#   r$   r   I  s     : :f :r&   c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R\        R7       V P	                  V P
                  R7      uuRRR4       #   + '       g   i     R# ; i)z Return a shallow copy of `self`.ignorecategoryr   N)rQ   catch_warningsfilterwarningsr   r   r   )r)   s   &r#   copyValues.copyI  sC    $$&&##H7IJ>>4==>9 '&&&s   8A!!A2	c               $    V ^8  d   QhRRRRRR/# )r   namer   defaultr   r    r!   )r"   s   "r#   r$   r   O  s!     # #s #S #S #r&   c                L    \        WR4      f   \        WV4       \        W4      # )z^Return ``self.name`` or ``default``.

If ``self.name`` is unset, set ``self.name = default``.
N)r   r:   )r)   r  r  s   &&&r#   
setdefaultValues.setdefaultO  s&    
 4t$,D(t""r&   )r   r(   )r,   r-   r.   r/   __doc__r   rE   r  r  r0   __classcell__r   s   @r#   r   r   (  s&    > >':# #r&   r   c                     a  ] tR tRt$ Rt]P                  P                  RR.,           tR]R&   R]R&   R V 3R llt	R	 V 3R
 llt
RtV ;t# )OptioniY  zXAdd validation and override support to `optparse.Option`.

Deprecated. Will be removed.
	validator	overridesr   r   c               $    V ^8  d   QhRRRRRR/# )r   r6   r   r7   r   r    r8   r!   )r"   s   "r#   r$   Option.__annotate__d  s!     * *j *C *D *r&   c                	b   < \         P                  ! R \        ^R7       \        SV `  ! V/ VB  R# )zCThe frontend.Option class will be removed in Docutils 2.0 or later.rN   N)rQ   rR   r   r   r   )r)   r6   r7   r   s   &*,r#   r   Option.__init__d  s-     2(Q	8 	$)&)r&   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r4   r   r   r   r;   r   r5   r   r    rv   r!   )r"   s   "r#   r$   r  j  s:        %	
 r&   c           	       < \         S	V `  WW44      pV P                  pV'       de   V P                  '       d+   \	        W64      p V P                  WbV4      p\        Y6T4       V P                  '       d   \        W0P                  R4       V#   \
         d8   p\        P                  ! RT: R\        P                  ! T4      : 24      hRp?ii ; i)z|
Call the validator function on applicable settings and
evaluate the 'overrides' option.
Extends `optparse.Option.process`.
zError in option "z":
    N)r   processdestr  r   	ExceptionoptparseOptionValueErrorr   error_stringr:   r  )
r)   r4   r   r;   r5   resultr   	new_valuerG   r   s
   &&&&&    r#   r  Option.processj  s     V<))~~~07 $wv FI
 3~~~5 ! 7"33 467 77s   B C2C		Cr!   )r,   r-   r.   r/   r
  r  r  ATTRS__annotations__r   r  r0   r  r  s   @r#   r  r  Y  sC    
 OO!![+$>>E* * r&   r  c                  :  a  ] tR tRt$ Rt. ROtR]R&    RtR]R&    R^R^R^R	^R
^/tR]R&    RRRRRRRRRRRRRRRRRR/	t	R]R&    ]
! ]P                  RR4      ;'       g    ]P                  ;'       g    RtR]R&   R tR]R!&   R"R. R#R$R%.R&R'/3NR(R).R&R*/3NR+R,R-.R.R/R0]/3NR1R2.R.R3R4R5/3NR6R7R8.R.R9R:R;R4R</3NR=R>R?.R.R9R:R@R4R</3NRARB.R.R9R:RR4R</3NRCRD.RERR&RF/3NRGRHRI.R.R/R0]/3NRJRK.R&RL/3NRMRN.R.RORO]RPR/3NRQRR.R4RSR.R9R:RTRERT/3NRURV.R4RSR.R9R:RW/3NRXRY.R4RSR.R3/3NRZR[.R.R/RERR0]/3NR\R].R4R^R.R3/3NR_R`.R.R/R4RaRERR0]/3NRbRc.R.R3R4Ra/3NRdRe.R.R/R0]/3NRfRg.R.R3R4Rh/3NRiRj.R.RkR4RlR&RmR0]/3NRnRo.R.RkR4RpR&RmR0]/3NRqRrRs.Rt]RE^R4RuR&RvR0]/3NRwRxRy.R.R9R:^R4Ru/3NRzR{R|.R.R9R:^R4Ru/3NR}R~.Rt]R4RRE^R&RvR0]/3NRR.R.R9R:^R4R/3NRR.Rt]R4RRE^R&RvR0]/3NRR.R.R/R0]/3NRR.R.R3R4R/3NRR.R4RR&R/3NRR.R.R/RERR0]/3NRR.R4RR.R3/3NRR.R&RRERR0]/3N]R.RERR0]/3NRR.R&RRERR0]/3N]R.RERR0]/3NR] R2RR.R&RRE]R0]/3N]R.RE]R0]/3NRRR.R4RRERR&R/3NRR.R&RR0]RER/3NRR.R&RRRR.RORO]/3NRRR.R.R/3NRRR.R.R/3N]R.RER/3N]R.RER/3N]R.R.R//3N]R.R.R//3N]R.R.R//3N]R.R.R//3N]R.R.RkR4RR0]/3N]R.R.R//3N53t RRRRRRRR/t RtR]R&   RtR]P@                  : ]PB                  ;t";'       d    R]" R2;'       g    R: R]PF                  PI                  4       ^ ,          : R]PJ                  : R2t&R]R&    RR V 3R lllt'R R lt(])R R l4       t*R R lt+R R lt,R R lt-R R lt.R R lt/R R lt0Rt1V ;t2# )r   i  a  
Settings parser for command-line and library use.

The `settings_spec` specification here and in other Docutils components
are merged to build the set of command-line options and runtime settings
for this process.

Common settings (defined below) and component-specific settings must not
conflict.  Short options are reserved for common settings, and components
are restricted to using long options.

Deprecated.
Will be replaced by a subclass of `argparse.ArgumentParser`.
zClassVar[list[str]]standard_config_filesinfo1warningrD   severenonezClassVar[tuple[str]]threshold_choiceszClassVar[dict[str, int]]r{   Tonyestrue0FoffnofalserM   zClassVar[dict[str, bool]]rl   rd   Nr   ClassVar[str]default_error_encodingr   $default_error_encoding_error_handlerzGeneral Docutils OptionszaOutput destination name. Obsoletes the <destination> positional argument. Default: None (stdout).z--output-pathz--outputmetavarz<destination>z'Specify the document title as metadata.z--titlez<title>z2Include a "Generated by Docutils" credit and link.z--generatorz-gaction
store_truer  z"Do not include a generator credit.z--no-generatorstore_falser  	generatorz2Include the date at the end of the document (UTC).z--datez-dstore_constconstz%Y-%m-%d	datestampzInclude the time & date (UTC).z--timez-tz%Y-%m-%d %H:%M UTCz'Do not include a datestamp of any kind.z--no-datestampzUBase directory for absolute paths when reading from the local filesystem. Default "".z--root-prefixr  z<path>z&Include a "View document source" link.z--source-linkz-sz3Use <URL> for a source link; implies --source-link.z--source-urlz<URL>z-Do not include a "View document source" link.z--no-source-linkcallbackcallback_argsz4Link from section headers to TOC entries.  (default)z--toc-entry-backlinkstoc_backlinksentryz0Link from section headers to the top of the TOC.z--toc-top-backlinkstopz+Disable backlinks to the table of contents.z--no-toc-backlinksz6Link from footnotes/citations to references. (default)z--footnote-backlinksz/Disable backlinks from footnotes and citations.z--no-footnote-backlinksfootnote_backlinksz0Enable section numbering by Docutils.  (default)z--section-numberingsectnum_xformz&Disable section numbering by Docutils.z--no-section-numberingz/Remove comment elements from the document tree.z--strip-commentsz6Leave comment elements in the document tree. (default)z--leave-commentsstrip_commentszRemove all elements with classes="<class>" from the document tree. Warning: potentially dangerous; use with caution. (Multiple-use option.)z--strip-elements-with-classr   strip_elements_with_classesz<class>zRemove all classes="<class>" attributes from elements in the document tree. Warning: potentially dangerous; use with caution. (Multiple-use option.)z--strip-classstrip_classeszReport system messages at or higher than <level>: "info" or "1", "warning"/"2" (default), "error"/"3", "severe"/"4", "none"/"5"z--reportz-rchoicesreport_levelz<level>z4Report all system messages.  (Same as "--report=1".)z	--verbosez-vz3Report no system messages.  (Same as "--report=5".)z--quietz-qzdHalt execution at system messages at or above <level>.  Levels as in --report.  Default: 4 (severe).z--halt
halt_levelz6Halt at the slightest problem.  Same as "--halt=info".z--strictzjEnable a non-zero exit status for non-halting system messages at or above <level>.  Default: 5 (disabled).z--exit-statusexit_status_levelz3Enable debug-level system messages and diagnostics.z--debugz Disable debug output.  (default)z
--no-debugdebugz-Send the output of system messages to <file>.z
--warningswarning_streamz<file>z1Enable Python tracebacks when Docutils is halted.z--tracebackz%Disable Python tracebacks.  (default)z--no-traceback	tracebackzUSpecify the encoding and optionally the error handler of input text.  Default: utf-8.z--input-encodingz<name[:handler]>utf-8z--input-encoding-error-handlerstrictzWSpecify the text encoding and optionally the error handler for output.  Default: utf-8.z--output-encodingz--output-encoding-error-handlerzSSpecify text encoding and optionally the error handler for error output.  Default: r   z--error-encodingz-ez--error-encoding-error-handlerz<Specify the language (as BCP 47 language tag).  Default: en.z
--languagez-llanguage_codeenz<tag>z)Write output file dependencies to <file>.z--record-dependenciesz6Read configuration settings from <file>, if it exists.z--configtypestringz,Show this program's version number and exit.z	--versionz-Vversionz Show this help message and exit.z--helpz-hhelpz--id-prefixz--auto-id-prefix%z--dump-settingsz--dump-internalsz--dump-transformsz--dump-pseudo-xmlz--expose-internal-attributeexpose_internalsz--strict-visitor_disable_config_source_destination_config_filesztuple[str, ...]relative_path_settingsgeneralz%prog (Docutils z []z	, Python z, on )version_templatec               (    V ^8  d   QhRRRRRRRR/# )	r   
componentsIterable[SettingsSpec]r   zMapping[str, Any] | Noneread_config_fileszbool | Noner    r8   r!   )r"   s   "r#   r$   OptionParser.__annotate__o  s0     (; (;3(;3(; %0(; (;r&   c                  < / V n          . V n         R
V n        \        P                  ! R\
        ^R7       \        SV `  ! VR\        RRR\        P                  ! ^NR7      /VB  V P                  '       g   V P                  V n        V .VO5V n        V P                  V P                  4       V P                  P!                  T;'       g    / 4       V'       dT   V P                  R,          '       g9    V P#                  4       pV P                  P!                  XP*                  4       R	# R	# R	#   \$         d%   pT P'                  \)        T4      4        R	p?LUR	p?ii ; i)zSet up OptionParser instance.

`components` is a list of Docutils components each containing a
``.settings_spec`` attribute.
`defaults` is a mapping of setting default overrides.
zThe frontend.OptionParser class will be replaced by a subclass of argparse.ArgumentParser in Docutils 2.0 or later.
  To get default settings, use frontend.get_default_settings().rN   option_classadd_help_optionF	formatter)widthrW  N)rK  )r   config_filesr[  rQ   rR   r   r   r   r  r  TitledHelpFormatterrS  r_  ra  populate_from_componentsr   rE   get_standard_config_settingsrC   rD   r   r   )	r)   ra  r   rc  r6   r7   config_settingsrG   r   s	   &&&&*,  r#   r   OptionParser.__init__o  s4    02
(');&9#L 1		.
 		*f 	*e 	*#+#?#?b#I	*"(	* |||00DL594GJ4G%%doo6X^^,T]]3D%E%E%"&"C"C"E MM  !9!9: &F  %

3s8$$%s   5D0 0E;EEc                    V ^8  d   QhRRRR/# )r   ra  rb  r    r8   r!   )r"   s   "r#   r$   rd    s      K K3I K&*Kr&   c                   V EF!  pVf   K
  VP                   pV ;P                  VP                  ,          un        \        ^ \        V4      ^4       F  pW4V^,            w  rVpV'       d*   \        P
                  ! WV4      pV P                  V4       MT pV FK  w  rpVP                  ! V
RV	/VB pVP                  R4      R8X  g   K2  RV P                  VP                  &   KM  	  VP                  '       g   K  V P                  P                  VP                  4       K  	  EK$  	  V FF  pV'       g   K  VP                  '       g   K!  V P                  P                  VP                  4       KH  	  R# )aG  Collect settings specification from components.

For each component, populate from the `SettingsSpec.settings_spec`
structure, then from the `SettingsSpec.settings_defaults` dictionary.
After all components have been processed, check for and populate from
each component's `SettingsSpec.settings_default_overrides` dictionary.
NrT  r5  r   T)r   r[  r   r   r  OptionGroupadd_option_group
add_optiongetr   r  settings_defaultsr   rE   settings_default_overrides)r)   ra  	componentr   r   titledescriptionoption_specgroup	help_textoption_stringsr7   r2   s   &&           r#   rl  %OptionParser.populate_from_components  s:    $I %33M''9+K+KK'1c-0!42?!A#2F/K$00kJE))%0 E;F7Y"--~ 89 8068Fzz(+x726

6;;/	 <G
 ...MM(()D)DE 5 $& $IyYAAA$$Y%I%IJ $r&   c                   V ^8  d   QhRR/# )r   r    zSequence[StrPath]r!   )r"   s   "r#   r$   rd    s     J J*; Jr&   c                D   R\         P                  9   d6   \         P                  R,          P                  \         P                  4      pMV P                  pV Uu. uF9  q"P                  4       '       g   K  \         P                  P                  V4      NK;  	  up# u upi )z:Return list of config files, from environment or standard.DOCUTILSCONFIG)r   environrb   pathsepr#  rm   r   
expanduser)r   rj  fs   &  r#   get_standard_config_files&OptionParser.get_standard_config_files  si     rzz)::&67==bjjIL44L/;I|!wwy%""1%|IIIs   B7#Bc                   V ^8  d   QhRR/# r   r!   )r"   s   "r#   r$   rd    s      f r&   c                	4   \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        R7       \	        4       pRRR4       V P                  4        F$  pXP                  V P                  V4      V 4       K&  	  X#   + '       g   i     LJ; i)r   r   N)rQ   r   r  r   r   r  rE   rB   )r)   r   filenames   &  r#   rm  )OptionParser.get_standard_config_settings  sj    $$&&##H7IJxH ' 668HOOD99(CTJ 9 '&s   'BB	c                    V ^8  d   QhRRRR/# )r   config_filer   r    zdict[str, Any]r!   )r"   s   "r#   r$   rd    s     ! !C !N !r&   c                
   \        4       p\        4       p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\
        R7       V ;P                  VP                  W4      ,          un        \        4       pRRR4       V P                   F  pV'       g   K  \        VP                  ;'       g    R4      VP                  3,            FM  pWc9   d   K  VP                  V4       VP                  V4      '       g   K5  XP                  W&,          V 4       KO  	  K  	  \!        XP"                  V P$                  \&        P(                  P+                  V4      4       VP"                  #   + '       g   i     L; i)zAReturns a dictionary containing appropriate config file settings.r   r   Nr!   )ConfigParserrc   rQ   r   r  r   rj  readr   ra  r   config_section_dependenciesr   addhas_sectionrE   r   r   r[  r   r   dirname)r)   r  r   appliedr   rx  sections   &&     r#   rB   %OptionParser.get_config_file_settings  s   $%$$&&##H7IJ!3!3K!FFxH ' I!)"G"G"M"M2N(779: :%G$ ,,W55OOM$:DA: ) 	H-- 77GGOOK8	:    # '&s   AE22F	c               $    V ^8  d   QhRRRRRR/# )r   r;   r   r6   r   r    r!   )r"   s   "r#   r$   rd    s!      6  v r&   c                    V P                  V4      w  Vn        Vn        \        VP                  V P
                  4       V P                  Vn        V# )z/Store positional arguments as runtime settings.)
check_argsrX  rY  r   r   r[  rj  rZ  )r)   r;   r6   s   &&&r#   check_valuesOptionParser.check_values  sA    .2ood.C++FOOT-H-HI#00r&   c                    V ^8  d   QhRRRR/# )r   r6   r   r    ztuple[str | None, str | None]r!   )r"   s   "r#   r$   rd    s     # #y #-F #r&   c                	   R ;r#V'       d   VP                  ^ 4      pVR8X  d   R pV'       d   VP                  ^ 4      pVR8X  d   R pV'       d   V P                  R4       V'       d   W#8X  d   V P                  R4       W#3# )Nr   zMaximum 2 arguments allowed.z_Do not specify the same file for both source and destination.  It will clobber the source file.)r   rD   )r)   r6   sourcedestinations   &&  r#   r  OptionParser.check_args  sw    ##XXa[F}((1+Kc!"JJ56f+JJ H I""r&   c                   V ^8  d   QhRR/# r   r!   )r"   s   "r#   r$   rd    s      F r&   c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R\        R7       \	        V P
                  4      pRRR4       V P                  Xn        V#   + '       g   i     L#; i)z(Needed to get custom `Values` instances.r   r   N)rQ   r   r  r   r   r   rj  rZ  )r)   r   s   & r#   get_default_valuesOptionParser.get_default_values  sS    $$&&##H7IJdmm,H ' "&!2!2	 '&s   2A++A;	c                    V ^8  d   QhRRRR/# )r   r  r   r    r  r!   )r"   s   "r#   r$   rd    s     < <s <v <r&   c                    V P                   V .,            F-  pVP                   F  pVP                  V8X  g   K  Vu u # 	  K/  	  \        RV,          4      h)z
Get an option by its dest.

If you're supplying a dest which is shared by several options,
it is undefined which option of those is returned.

A KeyError is raised if there is no option with the supplied
dest.
zNo option with dest == %r.)option_groupsoption_listr  ro   )r)   r  r|  r2   s   &&  r#   get_option_by_destOptionParser.get_option_by_dest  sR     ''4&00E++;;$&!M , 1 3d:;;r&   )ra  rj  r   r[  rS  )z/etc/docutils.confz./docutils.confz~/.docutils)
r$  r%  r&  2rD   3r'  4r(  5)source_link
source_urlr!   )r!   NF)3r,   r-   r.   r/   r
  r#  r!  r)  r{   rl   r   r   stderrr   _locale_encodingr2  r3  rp   r?   r   r}   rf   r   r]   r   rH   r   r   rv  r[  r   r   __version____version_details__detailsrS  rb   r   r_  r   rl  classmethodr  rm  rB   r  r  r  r  r0   r  r  s   @r#   r   r     s
   2. 
/O+ OG 	9a!Xq&!,EJ( E@ 	T4udFDUE5$wr5+JH' J @ 	

J- 	 		 	 M 
 ;M(-L 	#`	 9J
')_)E
G `	 4+	9-
/`	
 ?$
(L"-/?"A
B`	 /
xL
N`	 ?T
X}gz#[2
3`	 +T
X}$&:#[2
3`	" 4
x%{4
5#`	(3
b)X
.
0)`	0 3D
!Hl$/1A$C
D1`	6 @
Y0
27`	: :
Z^9;
<;`	B A"
#?HmWgg
 C`	J = 
!?HmWe
L
NK`	P 8
 ?Hm
<
>Q`	V C!
"\9d(*
+W`	^ <$
%'=
A
C_`	d = 
!\6?dK)9;
<e`	l 3#
$]FO
<
>m`	r <
\;0@
A
Cs`	x C
]F,<
=
?y`	~# )
)Xv'Di.BD	
E`	J# 
Xvi.BD	
EK`	VKt
y*;Y%~y)*,>@
AW`	` A
-! & 8
9a`	f @d
hw$n6
7g`	l9*y"3V\ !Y	"$68
9m`	v C,='1/
0w`	|6
i):$&9'Iy)+=?
@}`	H @+,#%57
8I`	N -.8]FGD
FO`	R :.6#3YI
KS`	V >/HlIt')9;
<W`	\ 2
v{HmL
N]`	`:
()W;=
>a`	j :;h-L
M
Ok`	n%
()W;=
>o`	x ;<h-L
M
Oy`	|**@)ADt
$()5K;=
>}`	F :;:79
:G`	L I
)T!*G!5
6M`	R 6"
#h-Ed
S`	Z C,Hfh!:z;KM
N[`	` 9
)4
6a`	d -T
Xv.
0e`	j -9b/	:k`	l ,-	3/?	@m`	p +,x.F	Gq`	r ,-,/G	Hs`	t -.<0H	Iu`	v -.<0H	Iw`	x 78Xv'9<>
?y`	~ ,-,/G	H`	cMH0 +D"D'($0
 /1O0N 	00	0EE7)1oKKKA	'm 
 #(; (;TK@ J J!0#$< <r&   r   c                     a  ] tR tRt$ RtRRRRRR/tR]R&    RtR	]R
&   RtR	]R&   RR V 3R lllt	R R lt
R R ltR R ltRtV ;t# )r  i  aB  Parser for Docutils configuration files.

See https://docutils.sourceforge.io/docs/user/config.html.

Option key normalization includes conversion of '-' to '_'.

Config file encoding is "utf-8". Encoding errors are reported
and the affected file(s) skipped.

This class is provisional and will change in future versions.
pep_stylesheetpep_stylesheet_pathpep_templatez$ClassVar[dict[str, tuple[str, str]]]old_settingsu  The "[option]" section is deprecated.
Support for old-format configuration files will be removed in Docutils 2.0.  Please revise your configuration files.  See <https://docutils.sourceforge.io/docs/user/config.html>, section "Old-Format Configuration Files".r1  old_warningzhUnable to read configuration file "%s": content not encoded as UTF-8.
Skipping "%s" configuration file.
not_utf8_errorc               $    V ^8  d   QhRRRRRR/# )r   	filenameszstr | Sequence[str]r   rK   r    r   r!   )r"   s   "r#   r$   ConfigParser.__annotate__5  s&      +/ r&   c                	  < Ve   \         P                  ! R\        ^R7       . p\        V\        4      '       d   V.pV FK  p V\
        SV `  VRR7      ,          pRT 9   d   T P                  T4       Tf   K:  T P                  YB4       KM  	  V#   \         d6    \        P                  P                  T P                  YD3,          4        K  i ; i)Nzafrontend.ConfigParser.read(): parameter "option_parser" will be removed in Docutils 2.0 or later.rN   rM  )rd   r   )rQ   rR   r   rk   r   r   r  UnicodeDecodeErrorr   r  writer  handle_old_configvalidate_settings)r)   r  r   read_okr  r   s   &&&  r#   r  ConfigParser.read5  s     $MM 6 -< i%%"I!H57<7<CC D &&x0(&&x? "  & 

  !4!47K!KLs   B<CCc                    V ^8  d   QhRRRR/# )r   r  r   r    r8   r!   )r"   s   "r#   r$   r  P  s     ' '# '$ 'r&   c                	>   \         P                  ! V P                  \        V^ 4        \	        V R,          4      pV P                  R4      '       g   V P                  R4       VP                  4        F  w  r4W0P                  9   d?   V P                  V,          w  rVV P                  V4      '       g   V P                  V4       MRpTpV P                  WV4      '       d   Kp  V P                  WVV4       K  	  V P                  R4       R#   \
         d    / p Li ; i)    r   r\  N)rQ   warn_explicitr  ConfigDeprecationWarningr   ro   r  add_sectionr<   r  
has_optionrc   remove_section)r)   r  r   r>   r   r  r   s   &&     r#   r  ConfigParser.handle_old_configP  s    t//1I'	,	4	?+G 	**Y'!--/JC'''#'#4#4S#9 ''00$$W-#??74451 * 	I&  	G	s   D DDc               $    V ^8  d   QhRRRRRR/# )r   r  r   r   r   r    r8   r!   )r"   s   "r#   r$   r  e  s"     > ># >l >#>r&   c                "   V P                  4        F  pV P                  V4       F  p VP                  V4      pTP                  '       d9   T P                  Y44      p TP	                  YFTYR7      pT P                  Y4T4       TP                  '       g   Ks  T P                  Y5P                  R4       K  	  K  	  R#   \         d     K  i ; i  \         d4   p\        RT RT R\        P                  ! T4       RT RT 2
4      hRp?ii ; i)zQ
Call the validator function and implement overrides on all applicable
settings.
)r   r   zError in config file "z", section "[z]":
    z	
        z = N)sectionsr   r  ro   r  ru  r  rC   r   r  rc   r  )	r)   r  r   r  r   r2   r   r  rG   s	   &&&      r#   r  ConfigParser.validate_settingse  s    }}G<<0*==gFF ### HHW6EI$*$4$4#M*. %5 %H	 HHWy9###HHW&6&6=% 1 '    % I(+A( L66=Y ?0020D/E F44;9Cw*H I IIs)   B>C>CCD.D		Dc                    V ^8  d   QhRRRR/# )r   	optionstrr   r    r!   )r"   s   "r#   r$   r    s     3 3S 3S 3r&   c                B    VP                  4       P                  RR4      # )zg
Lowercase and transform '-' to '_'.

So the cmdline form of option names can be used in config files.
r   r   )rn   r   )r)   r  s   &&r#   optionxformConfigParser.optionxform  s      ((c22r&   r!   )pep_html writer
stylesheet)r  stylesheet_path)r  templater(   )r,   r-   r.   r/   r
  r  r!  r  r  r  r  r  r  r0   r  r  s   @r#   r  r    sm    
 	;E7:9L6 9
	4  5%NM 
 6'*>63 3r&   r  c                      ] tR tRtRtRtR# )r  i  z3Warning for deprecated configuration file features.r!   N)r,   r-   r.   r/   r
  r0   r!   r&   r#   r  r    s    =r&   r  c                    V ^8  d   QhRRRR/# )r   ra  r   r    r   r!   )r"   s   "r#   r$   r$     s     = =l =v =r&   c                     \         P                  ! 4       ;_uu_ 4        \         P                  ! R\        R7       \	        V 4      P                  4       uuRRR4       #   + '       g   i     R# ; i)ad  Return default runtime settings for `components`.

Return a `frontend.Values` instance with defaults for generic Docutils
settings and settings from the `components` (`SettingsSpec` instances).

This corresponds to steps 1 and 2 in the `runtime settings priority`__.

__ https://docutils.sourceforge.io/docs/api/runtime-settings.html
   #settings-priority
r   r   N)rQ   r   r  r   r   r  )ra  s   *r#   get_default_settingsr    sD     
	 	 	"	"3EFJ'::< 
#	"	"	"s   5AA/	)NNNNr(   )<r
  
__future__r   __docformat__rT   configparserr  r   os.pathr   rQ   r   pathlibr   r   r   r   TYPE_CHECKINGcollections.abcr   r	   r
   typingr   r   r   r   r   r   r   docutils.ior   r   r?   rH   rX   r]   rf   rp   rs   rx   r}   r   r   r   r   r   r   r   r   r   r   r   r  r   RawConfigParserr  rS   r  r  r!   r&   r#   <module>r     s*  
.` #"    	  
  "   ;;77GG#
8 
+*/"0.':A24"@((6%P&*$,+\"4:@.#X__ .#b*X__ *ZK<8(((*?*? K<\r3<// r3j>} >=r&   