
    k7ia(                     ~    S r SSKrSSKJrJrJr  SSKJr  SSKJ	r	  \(       a  SSK
JrJr  SSKJrJr   " S S	5      rg)
z)reStructuredText documentation formatter.    N)TYPE_CHECKINGAnyOptional)extract_text)make_rst_section_header)ConsoleConsoleOptions)	HelpEntry	HelpPanelc                       \ rS rSrSr  SS\S\4S jjrSS jrS\	4S	 jr
S
\S   S\S   SSSS4S jrS\S   S
\S   SS4S jrS\S   S
\S   SS4S jrS
\S   S\S   S\SS4S jrS
\S   S\S   S\SS4S jrSrg)RstFormatter   zreStructuredText documentation formatter.

Parameters
----------
heading_level : int
    Starting heading level for panels (default: 2).
include_hidden : bool
    Include hidden commands/parameters in documentation (default: False).
heading_levelinclude_hiddenc                 P    Xl         X l        [        R                  " 5       U l        g N)r   r   ioStringIO_output)selfr   r   s      V/home/james-whalen/.local/lib/python3.13/site-packages/cyclopts/help/formatters/rst.py__init__RstFormatter.__init__   s    
 +,{{}    returnNc                 8    [         R                  " 5       U l        g)z!Reset the internal output buffer.N)r   r   r   r   s    r   resetRstFormatter.reset#   s    {{}r   c                 6    U R                   R                  5       $ )zWGet the accumulated RST output.

Returns
-------
str
    The RST documentation string.
)r   getvaluer   s    r   
get_outputRstFormatter.get_output'   s     ||$$&&r   consoler   optionsr	   panelr   c                 z   UR                   (       d  gUR                  (       aX  [        UR                  U5      nSR                  [	        X@R
                  5      5      nU R                  R                  U S35        UR                  (       a;  [        UR                  U5      nU(       a  U R                  R                  U S35        UR                  S:X  a  U R                  UR                   U5        O,UR                  S:X  a  U R                  UR                   U5        U R                  R                  S5        g)a  Format and render a help panel as RST.

Parameters
----------
console : Optional[Console]
    Console for rendering (used for extracting plain text).
options : Optional[ConsoleOptions]
    Console rendering options (unused for RST).
panel : HelpPanel
    Help panel to render.
N


command	parameter)entriestitler   joinr   r   r   writedescriptionformat_format_command_panel_format_parameter_panel)r   r$   r%   r&   
title_textheader	desc_texts          r   __call__RstFormatter.__call__1   s    " }} ;;%ekk7;JYY6zCUCUVWFLL&/ $U%6%6@I""i[#56 <<9$&&u}}g>\\[(((@4 r   r,   r
   c                    U GH`  n/ nUR                   (       a  UR                  UR                   5        UR                  (       a  UR                  UR                  5        U(       d  Mg  US   nU R                  R	                  SU S35        [        UR                  S5      =(       aT    [        UR                  R                  S5      =(       a-    SUR                  R                  R                  R                  ;   n[        UR                  X&S9nU(       d  GM  SR                  S	 UR                  S
5       5       5      nU R                  R	                  SU S35        GMc     g)zFormat command entries as RST.

Parameters
----------
entries : list[HelpEntry]
    Command entries to format.
console : Optional[Console]
    Console for text extraction.
r   ````
primary_renderable	__class__RestructuredTextpreserve_markup c              3   n   #    U  H+  oR                  5       (       d  M  UR                  5       v   M-     g 7fr   strip.0lines     r   	<genexpr>5RstFormatter._format_command_panel.<locals>.<genexpr>|   s%     (cBR$V`V`VbBR   55r(       r)   N)namesextendshortsr   r/   hasattrr0   r<   r=   __name__r   r.   split)	r   r,   r$   entryrL   primary_namepreserve_rst_markupdescr6   s	            r   r2   "RstFormatter._format_command_panelY   s    EE{{U[[)||U\\*u$Qx ""R~T#:; E--/CD f 1 1 D DkRf*e.?.?.R.R.\.\.e.ee $
 $E$5$5wd4 !$(c$**TBR(c cILL&&i['=>5 r   c                 	   U GH  n/ nUR                   (       a  UR                  UR                   5        UR                  (       a  UR                  UR                  5        U(       d  Mg  UR                  =(       a,    UR                  SL =(       a    [        S U 5       5      (       + nU(       aW  U Vs/ s H  ofR                  S5      (       a  M  UPM     nnU(       a  US   R                  5       OUS   R                  5       nOSR                  U5      nU R                  R                  SU S35        / n	[        UR                  S5      =(       aT    [        UR                  R                  S	5      =(       a-    S
UR                  R                  R                  R                  ;   n
[!        UR                  X*S9nU(       a  U	R#                  U5        / nU(       a#  UR                  (       a  UR#                  S5        O)UR                  (       a  U(       d  UR#                  S5        UR$                  (       a6  SR                  S UR$                   5       5      nUR#                  SU 35        UR                  Gb  [!        UR                  USS9nUR&                  (       a  S[)        UR&                  5      ;   a  SnSnU H@  nUR                  S5      (       a  UnM  UR                  S5      (       d  M5  U(       a  M>  UnMB     UR+                  5       S:X  a  U(       a  UR#                  SU S35        O\UR+                  5       S:X  a  U(       a  UR#                  SU S35        O+UR#                  SU S35        OUR#                  SU S35        UR,                  (       a6  SR                  S UR,                   5       5      nUR#                  SU 35        U	(       a  SR                  S U	S   R/                  S5       5       5      nU R                  R                  SU 35        U(       a.  U R                  R                  SSR                  U5       S35        U R                  R                  S5        GM|  U(       d  GM  U R                  R                  SSR                  U5       S35        GM     gs  snf )zFormat parameter entries as RST.

Parameters
----------
entries : list[HelpEntry]
    Parameter entries to format.
console : Optional[Console]
    Console for text extraction.
Nc              3   B   #    U  H  oR                  S 5      v   M     g7f)-N)
startswith)rF   ns     r   rH   7RstFormatter._format_parameter_panel.<locals>.<genexpr>   s      TvpuklUaUabeUfUfpus   rY   r   z, r:   r;   r<   r=   r>   r?   z**Required**c              3   .   #    U  H  nS U S 3v   M     g7fr:   N )rF   cs     r   rH   r\      s     +N1b2J   z	Choices: Fboolz--no-z--truezDefault: ``falsec              3   .   #    U  H  nS U S 3v   M     g7fr^   r_   )rF   es     r   rH   r\      s     'JMq"QCr
Mra   zEnvironment variable: rA   c              3   n   #    U  H+  oR                  5       (       d  M  UR                  5       v   M-     g 7fr   rC   rE   s     r   rH   r\      s%     (lB[$_i_i_kB[rJ   r(   rK   z []r)   )rL   rM   rN   requireddefaultanyrZ   upperr.   r   r/   rO   r0   r<   r=   rP   r   appendchoicestypestrlowerenv_varrQ   )r   r,   r$   rR   rL   is_positionalr[   positional_namesname_str
desc_partsrT   rU   metadatachoices_strdefault_strpositive_flagnegative_flagnameenv_strr6   s                       r   r3   $RstFormatter._format_parameter_panel   s    EE{{U[[)||U\\*u % v5==D3H vQTTvpuTvQvMv 38'R5aS@Q5$'R>N/288:TYZ[T\TbTbTdH  $yy/H ""Rz#67  

 E--/CD f 1 1 D DkRf*e.?.?.R.R.\.\.e.ee $
 $E$5$5wd%%d+  U^^OON3^^MOON3=="&))+N+N"NKOOi}$=>==,".u}}gW\"]KzzfEJJ&?(,(,$)D#w7704!%!6!6'4}48M %* ',,.&8]$OOk-,KL(..0G;$OOk-,KL$OOk+b,IJ +k]"(EF=="ii'JEMM'JJGOO&<WI$FG  !$(l*Q-BUBUVZB[(l lILL&&i['9:**R		(0C/DA+FGLL&&v.XLL&&dii.A-B$'GHo  (Ss   4R=R=usagec                    U(       a  [        X15      nU(       an  U R                  R                  S5        UR                  S5       H"  nU R                  R                  SU S35        M$     U R                  R                  S5        ggg)zRender the usage line as RST.

Parameters
----------
console : Optional[Console]
    Console for text extraction.
options : Optional[ConsoleOptions]
    Console rendering options (unused).
usage : Any
    The usage line content.
z::

r(   rK   N)r   r   r/   rQ   )r   r$   r%   r   
usage_textrG   s         r   render_usageRstFormatter.render_usage   sq    " %e5J""8,&,,T2DLL&&dV27 3""4(  r   r0   c                 v    U(       a2  [        X15      nU(       a  U R                  R                  U S35        ggg)zRender the description as RST.

Parameters
----------
console : Optional[Console]
    Console for text extraction.
options : Optional[ConsoleOptions]
    Console rendering options (unused).
description : Any
    The description content.
r)   N)r   r   r/   )r   r$   r%   r0   r6   s        r   render_descriptionRstFormatter.render_description   s7    " $[:I""i[#56  r   )r   r   r   )   F)r   N)rP   
__module____qualname____firstlineno____doc__intrb   r   r   rp   r"   r   r7   listr2   r3   r   r   r   __static_attributes__r_   r   r   r   r      s0    $%% %%'C '&!)$&! *+&! 	&!
 
&!P$?T+-> $?R[I\ $?ae $?LaItK/@ aI8T]K^ aIcg aIF))$) *+) 	)
 
)67)$7 *+7 	7
 
7r   r   )r   r   typingr   r   r   cyclopts._markupr    cyclopts.help.formatters._sharedr   rich.consoler   r	   cyclopts.helpr
   r   r   r_   r   r   <module>r      s,    / 	 / / ) D42B7 B7r   