
    7 fw                    P   d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZ erd d
lmZmZ d dlmZ d dlmZ d dlmZ  ej         e!          Z"g dZ#g dZ$ G d de%          Z& G d d          Z'd'dZ(d(d#Z) G d$ d%e          Z*d&S ))    )annotations)TYPE_CHECKINGAnyCallable)nodes)
StringList)Reporterassemble_option_dict)
DocumenterOptions)logging)SphinxDirectiveswitch_source_input)nested_parse_with_titles)ElementNode)RSTState)Config)BuildEnvironment)memberszundoc-memberszinherited-memberszshow-inheritanceprivate-membersspecial-memberszignore-module-allexclude-memberszmember-orderzimported-memberszclass-doc-fromzno-value)r   r   r   r   c                  "    e Zd ZdZd
dZddZd	S )DummyOptionSpecz"An option_spec allows any options.returnboolc                    dS )z&Behaves like some options are defined.T )selfs    R/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/ext/autodoc/directive.py__bool__zDummyOptionSpec.__bool__%   s    t    keystrCallable[[str], str]c                    d S )Nc                    | S Nr   )xs    r!   <lambda>z-DummyOptionSpec.__getitem__.<locals>.<lambda>*   s     r#   r   )r    r$   s     r!   __getitem__zDummyOptionSpec.__getitem__)   s
    {r#   N)r   r   )r$   r%   r   r&   )__name__
__module____qualname____doc__r"   r,   r   r#   r!   r   r   "   sB        ,,        r#   r   c                      e Zd ZdZddZdS )DocumenterBridgez'A parameters container for Documenters.envr   reporterReporter | Noneoptionsr   linenointstater   r   Nonec                    || _         || _        || _        || _        t	                      | _        t                      | _        || _        d S r)   )	r3   	_reportergenoptr7   setrecord_dependenciesr   resultr9   )r    r3   r4   r6   r7   r9   s         r!   __init__zDocumenterBridge.__init__0   s@    !-0UU  ll


r#   N)r3   r   r4   r5   r6   r   r7   r8   r9   r   r   r:   )r-   r.   r/   r0   rA   r   r#   r!   r2   r2   -   s.        11     r#   r2   
documentertype[Documenter]configr   r6   dictr   r   c                n   t           D ]}|| j        vr|                    d|z   d          du }||j        v r|s||v rt	          |j        |         t
                    r`|t          v rV||         N||                             d          r3d                    |j        |         ||         dd         g          ||<   |j        |         ||<   |	                    |          ||         
                    d          ||<   t          t          |                                | j                            S )z0Recognize options of Documenter from user input.zno-TN+,   )AUTODOC_DEFAULT_OPTIONSoption_specpopautodoc_default_options
isinstancer%   AUTODOC_EXTENDABLE_OPTIONS
startswithjoingetlstripr   r
   items)rB   rD   r6   namenegateds        r!   process_documenter_optionsrW   ;   sD    ( 6 6z---++edlD11T96111'1w:f.LT.RTW#X#X 555t}0WT]5M5Mc5R5R0(+&2PQU2V29$-2C2E )F )F !' >t D[[*#DM0055GDM'9OPPQQQr#   r9   r   contentr   r   
list[Node]c                @   t          | |          5  |j        r1t          j                    }| j        |_        t          | ||           n6t          j                    }| j        |_        |                     |d|           |j        cddd           S # 1 swxY w Y   dS )z1Parse an item of content generated by Documenter.r   N)	r   titles_allowedr   sectiondocumentr   	paragraphnested_parsechildren)r9   rX   rB   nodes       r!   parse_generated_contentrb   T   s     
UG	,	,  $ 	1!MOOD!NDM$UGT::::?$$D!NDMw4000}                 s   A5BBBc                  >    e Zd ZdZ e            ZdZdZdZdZ	d	dZ
dS )
AutodocDirectivezA directive class for all autodoc directives. It works as a dispatcher of Documenters.

    It invokes a Documenter upon running. After the processing, it parses and returns
    the content generated by Documenter.
    TrI   r   r   rY   c                   | j         j        j        }	 |                    | j                  \  }}n# t
          $ r d\  }}Y nw xY wt                              d||| j                   | j	        dd          }| j
        j        j        j        |         }	 t          || j        | j                  }nY# t"          t$          t&          f$ r?}t                              d| j	        d|| j
        j        |f           g cY d }~S d }~ww xY wt-          | j
        |||| j                   } ||| j        d                   }	|	                    | j                   |j        sg S t                              d	d
                    |j                             |j        D ]+}
| j         j        j        j                            |
           ,t?          | j         |j        |	          }|S )N)NNz[autodoc] %s:%s: input:
%s   zAn option to z, is either unknown or has an invalid value: )locationr   )more_contentz[autodoc] output:
%s
) r9   r]   r4   get_source_and_liner7   AttributeErrorloggerdebug
block_textrU   r3   appregistrydocumentersrW   rD   r6   KeyError
ValueError	TypeErrorerrordocnamer2   	argumentsgeneraterX   r@   rQ   r?   settingsaddrb   )r    r4   sourcer7   objtypedocclsdocumenter_optionsexcparamsrB   fnr@   s               r!   runzAutodocDirective.runq   s   :&/	*%99 NFFF 	* 	* 	*)NFFFF	*2FFDOTTT )ABB-&27;	!;FDKQUQ]!^!^*i0 	 	 	LLL)))SS*59X5Ev4N  P P PIIIIII		 "$(H6H&RVR\]]VFDN1$566
666} 	I,dii.F.FGGG , 	E 	EBJ(<@@DDDD(V]JOOs-   1 AAB0 0D4D;DDN)r   rY   )r-   r.   r/   r0   r   rK   has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespacer   r   r#   r!   rd   rd   e   sX         
 "/##KK $& & & & & &r#   rd   N)rB   rC   rD   r   r6   rE   r   r   )r9   r   rX   r   rB   r   r   rY   )+
__future__r   typingr   r   r   docutilsr   docutils.statemachiner   docutils.utilsr	   r
   sphinx.ext.autodocr   r   sphinx.utilr   sphinx.util.docutilsr   r   sphinx.util.nodesr   docutils.nodesr   r   docutils.parsers.rst.statesr   sphinx.configr   sphinx.environmentr   	getLoggerr-   rl   rJ   rO   rE   r   r2   rW   rb   rd   r   r#   r!   <module>r      s   " " " " " " / / / / / / / / / /       , , , , , , 9 9 9 9 9 9 9 9 2 2 2 2 2 2 2 2       E E E E E E E E 6 6 6 6 6 6 4,,,,,,,,444444$$$$$$333333		8	$	$M M M 
1 1 1     d          R R R R2   "2 2 2 2 2 2 2 2 2 2r#   