HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sphinx/ext/__pycache__/apidoc.cpython-310.pyc
o

�$�a�K�@sdZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
ddlmZm
Z
mZmZddlZddlmZmZdd	lmZdd
lmZddlmZmZddlmZd
ejvrnejd
�d�Zngd�Zdee	�Z e
�!edd�Z"de#de$fdd�Z%de#de#fdd�Z&dHde#dee#de$fdd�Z'de#de#d eddfd!d"�Z(	dId#e#d$e#d ed%e#ddf
d&d'�Z)gdfd(e#d)e#d*e#d+ee#d ed,ee#d-e$d.ee#d%e#ddfd/d0�Z*	1	dJd1ee#d ede#d%e#ddf
d2d3�Z+gfde#d ed.ee#de$fd4d5�Z,de#d ed.ee#de$fd6d7�Z-d8e#d.ee#d ede
ee#ee#ee#fddffd9d:�Z.d8e#d.ee#d ede$fd;d<�Z/	dId8e#d.ee#d ed%e#dee#f
d=d>�Z0d(e#d.ee#de$fd?d@�Z1dej2fdAdB�Z3ej4dCd�fdDee#de5fdEdF�Z6e7dGk�r�e6�dSdS)Ku
    sphinx.ext.apidoc
    ~~~~~~~~~~~~~~~~~

    Parses a directory tree looking for Python modules and packages and creates
    ReST files appropriately to create code documentation with Sphinx.  It also
    creates a modules index (named modules.<suffix>).

    This is derived from the "sphinx-autopackage" script, which is:
    Copyright 2008 Société des arts technologiques (SAT),
    https://sat.qc.ca/

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�copy��fnmatch)�EXTENSION_SUFFIXES)�path)�Any�	Generator�List�Tuple)�__display_version__�package_dir)�
EXTENSIONS)�__)�FileAvoidWrite�	ensuredir)�ReSTRenderer�SPHINX_APIDOC_OPTIONS�,)�membersz
undoc-memberszshow-inheritance)z.pyz.pyx�	templates�apidoc�filename�returncCs4t�|�}tttdd�D]}|d|krdSqdS)z)Check *filename* is __init__ file or not.T)�key�reverse�__init__F)r�basename�sorted�PY_SUFFIXES�len)rr�suffix�r!�3/usr/lib/python3/dist-packages/sphinx/ext/apidoc.py�	is_initpy3s
�r#�modnamescGsd�td|��S)zJoin module names with dots.�.N)�join�filter)r$r!r!r"�module_join=sr(�dirname�filescCs8|dur
|dur
dS|durt�|�}tdd�|D��S)z+Check given *files* contains __init__ file.NFcs��|]	}t|�r|VqdS�N�r#��.0�fr!r!r"�	<genexpr>I��z is_packagedir.<locals>.<genexpr>)�os�listdir�any)r)r*r!r!r"�
is_packagedirBs

r6�name�text�optscCs�t|dd�}t�|jd||jf�}|jr!|sttd�|�dS|js7t�	|�r7|s5ttd�|�dSdS|sAttd�|�t
|��}|�|�Wd�dS1sVwYdS)z0Write the output file for module/package <name>.�quietNz%s.%szWould create file %s.z!File %s already exists, skipping.zCreating file %s.)�getattrrr&�destdirr �dryrun�printr�force�isfiler�write)r7r8r9r:�fnamer0r!r!r"�
write_fileLs�
"�rC�packager�user_template_dircCs`tt�}|jrd|vr|�d�t||�}|j|||d�}t|tg��d|�}t	|||�dS)�.Build the text of the file and write the file.�private-members)�
show_headingsr�qualname�automodule_optionszmodule.rst_tN)
r�OPTIONS�includeprivate�appendr(�
noheadingsr�template_dir�renderrC)rDrr9rE�optionsrI�contextr8r!r!r"�create_module_file_s

�rS�root�master_package�subroot�py_files�subs�is_namespace�excludesc	
s������fdd�|D�}	���fdd�|D�}
��fdd�|
D�}
tt�}�jr2d|vr2|�d�t���}||	|
|�j�j|�j�jd�	}
t	|t
g��d|
�}t||��|
ri�jrk|
D]
}t
d|�|�q_dSdSdS)	rFcs,g|]}tt��|����st��|��qSr!)�is_skipped_packagerr&r()r/�pkgname�rZrUr9rTrVr!r"�
<listcomp>vs�z'create_package_file.<locals>.<listcomp>cs6g|]}tt��|����st|�s|�d�d�qS)r%r)�is_skipped_modulerr&r#�split�r/�sub)rZr9rTr!r"r^zs
��csg|]}t��|��qSr!)r()r/�modname)rUrVr!r"r^}s�rG)	r\�subpackages�
submodulesrY�modulefirst�separatemodulesrJrH�maxdepthz
package.rst_tN)rrKrLrMr(rfrgrNrhrrOrPrCrS)rTrUrVrWr9rXrYrZrErdrerQr\rRr8�	submoduler!r]r"�create_package_fileqs8��

�
�rj�modulescCsp|��d}|dd�D]}|�|d�r|�|�q|}q|j|j|d�}t|tg��d|�}t|||�dS)zCreate the module's index.�Nr%)�headerrh�docnamesz	toc.rst_t)	�sort�
startswith�removermrhrrOrPrC)rkr9r7rE�prev_module�modulerRr8r!r!r"�create_modules_toc_file�s�rtcs`t���sdSt�t��d��}tdd�|D��}|s |js dSt��fdd�|D��r.dSdS)�%Check if we want to skip this module.Fz*.pycsr+r,r-r.r!r!r"r1�r2z%is_skipped_package.<locals>.<genexpr>Tc3s"�|]}tt��|���VqdSr,)�is_excludedrr&r.�r)rZr!r"r1�s� )r�isdir�globr&r5�implicit_namespaces�all)r)r9rZr*�regular_packager!rwr"r[�s

r[cCs,t�|�sdSt�|��d�r|jsdSdS)ruT�_F)r�existsrrprL)rr9rZr!r!r"r_�s

r_�rootpathc#s��t|dd�}t|dd�}tj||d�D]/\�}}t��fdd�|D��}|r*d�nd�t���fd	d�|D��|d
d
�<�||fVqd
S)z@Walk through the directory and list files and subdirectories up.�followlinksFrL)r�c3s0�|]}|�t�rtt��|���s|VqdSr,)�endswithrrvrr&r.)rZrTr!r"r1�s���zwalk.<locals>.<genexpr>)r%)r%r}c3s0�|]}|���stt��|���s|VqdSr,)rprvrr&ra��exclude_prefixesrZrTr!r"r1�s��N)r;r3�walkr)rrZr9r�rLrXr*r!r�r"r��s�"�r�cCs&t|||�D]
\}}}|rdSqdS)zACheck the given directory contains child module/s (at least one).TF)r�)rrZr9rTrXr*r!r!r"�has_child_module�s
�r�cCs�t|dd�}t|�s|r|�tj�d}nd}g}t|||�D]�\}}}	td|	�}
|
o-|}|
rI|	dd�D]}t|�rG|	�|�|	�d|�q6n||krU|sU|dd�=q|
sY|r�|sft	|	�dksft
||�s�|t	|�d��tj��tjd�}
|rt
|||�r�t|||
|	|||||�	|�t||
��q||kr�|dus�J�|	D]}tt�||�||�s�|�d�d}t||||�|�|�q�q|S)z`
    Look for every file in the directory tree and create the corresponding
    ReST files.
    rzF���Nr�r%)r;r6r`r�sepr�r#rq�insertrr[�lstrip�replacer�rjrMr(r_r&rS)rrZr9rErz�root_package�	toplevelsrTrXr*�is_pkgrYr0�
subpackage�py_filersr!r!r"�recurse_tree�sP


��

�
��
��r�cCs|D]
}t||�rdSqdS)z�Check if the directory is in the exclude list.

    Note: by having trailing slashes, we avoid common prefix issues, like
          e.g. an exclude "foo" also accidentally excluding "foobar".
    TFr)rTrZ�excluder!r!r"rv#s

�rvc	Cs�tjdtd�td�d�}|jddddtd	�|jd
td�d�|jd
dtd�d�|jdddddtd�d�|jdddtd�d�|jddddtd td!�d"�|jd#d$dd%td&�d�|jd'd(dd)d*td+�d,�|jd-d.dd/td0�d�|jd1d2dd3td4�d�|jd5d6dd7td8�d�|jd9dd:d;td<�d,�|jd=d>d?d:td@�d�|jdAdBddCtdD�d�|jdEdFddGtdH�d�|jdIddJtdK�d�|jdLdMddNdOtdP�d,�|jdQdRddStdT�d�|jdUdVddWtdX�d�|jdYdZdd[td\�d�|jd]d^dd_td`�d�|jdadbddtdc�d�|jdddeddftdg�d�|�tdh��}|jdidjdkdltdm�dn�tD]}|jdo|dpdq|dktdr�|ds��q2|�tdt��}|jdudvdwdxtdy�dz�|S){NzH%(prog)s [OPTIONS] -o <OUTPUT_PATH> <MODULE_PATH> [EXCLUDE_PATTERN, ...]z:For more information, visit <https://www.sphinx-doc.org/>.aE
Look recursively in <MODULE_PATH> for Python modules and packages and create
one reST file with automodule directives per package in the <OUTPUT_PATH>.

The <EXCLUDE_PATTERN>s can be file and/or directory patterns that will be
excluded from generation.

Note: By default this script will not overwrite already created files.)�usage�epilog�descriptionz	--version�version�show_versionz%%(prog)s %s)�action�destr��module_pathzpath to module to document)�help�exclude_pattern�*zGfnmatch-style file and/or directory patterns to exclude from generation)�nargsr�z-oz--output-dir�storer<Tzdirectory to place all output)r�r��requiredr�z-q�
store_truer:z,no output on stdout, just warnings on stderr)r�r�r�z-dz
--maxdepthrh�z;maximum depth of submodules to show in the TOC (default: 4))r�r��type�defaultr�z-fz--forcer?zoverwrite existing filesz-lz--follow-linksr�FzNfollow symbolic links. Powerful when combined with collective.recipe.omelette.)r�r�r�r�z-nz	--dry-runr=z%run the script without creating filesz-ez
--separatergz1put documentation for each module on its own pagez-Pz	--privaterLzinclude "_private" modulesz	--tocfile�tocfilerkz0filename of table of contents (default: modules)z-Tz--no-toc�store_falsez%don't create a table of contents filez-Ez
--no-headingsrNzedon't create headings for the module/package packages (e.g. when the docstrings already contain them)z-Mz--module-firstrfz7put module documentation before submodule documentationz--implicit-namespacesrzzNinterpret module paths according to PEP-0420 implicit namespaces specificationz-sz--suffixr �rstzfile suffix (default: rst)z-Fz--full�fullz.generate a full project with sphinx-quickstartz-az--append-syspath�append_syspathz9append module_path to sys.path, used when --full is givenz-Hz
--doc-projectrmz(project name (default: root module name)z-Az--doc-author�authorz,project author(s), used when --full is givenz-Vz
--doc-versionz*project version, used when --full is givenz-Rz
--doc-release�releasezEproject release, used when --full is given, defaults to --doc-versionzextension optionsz--extensionsr
�
extensionsrMzenable arbitrary extensions)�metavarr�r�r�z--ext-%s�append_constz
sphinx.ext.%szenable %s extension)r��constr�r�zProject templatingz-tz
--templatedir�TEMPLATEDIR�templatedirz%template directory for template files)r�r�r�)�argparse�ArgumentParserr�add_argumentr�int�add_argument_groupr
)�parser�group�extr!r!r"�
get_parser/s��

����
���
��
�
���
�
����
�����
�

�
�r�r��argvcCshtj�tjd�tj�tj�td�d�t	�}|�
|�}t�|j�}|j
dur0|�tj�d|_
|j�d�r>|jdd�|_t�|�sSttd�|tjd	�t�d�|js[t|j�d
d�|jD�}t||||j�}|j�r%dd
lm }|�!�d}d}|D]}	|	�|d�r�q|	}|d|	7}qid|j�dd�dd�d|j
�d|j"p�d�d|j#p�d�d|j$p�|j#p�d�dd|j�dd�dd�dgd��d d�d!d�d"d�d#|j%�d$|�d%d&�||j&d'��}
|j'r�|
d�(|j'�|j)r�d|
d(<|
ddd�D]}d)|v�r|
d�*|�|
d�(|�d)��q�|j�s#|j+|
d|j,|jd*�dS|j-�r2t.|||j-|j�dS)+z+Parse and check the command line arguments.rl�locale�sphinxNr�r%r�z%s is not a directory.)�filecSsg|]}t�|��qSr!)r�abspath)r/r�r!r!r"r^�szmain.<locals>.<listcomp>r)�
quickstartz   %s
rr�F�dotr}�projectr��Authorr�r�r �master�index�epubTr�)zsphinx.ext.autodoczsphinx.ext.viewcodezsphinx.ext.todo�makefile�	batchfile�	make_mode�mastertocmaxdepth�
mastertoctree�language�en)r�r�r:r)�silent�	overwriter�)/r�r��	setlocale�LC_ALL�init_consoler3rr&rr��
parse_argsr�r�rmr`r�r rprxr>r�sys�stderr�exitr=rr<r�r�r�r��
sphinx.cmdr�ror�r�r�rhr�r��extendr:rq�generater?r�rt)r�r��argsrrZrk�qsrrr8rs�dr�r!r!r"�main�s�




����
�
��
�	�
��
�������
���r��__main__)NNr,)rkN)8�__doc__r�ryr�r3r�rr�importlib.machineryrr�typingrrr	r
�
sphinx.localer�rr�sphinx.cmd.quickstartr
r�sphinx.util.osutilrr�sphinx.util.templater�environr`rK�tuplerr&rO�str�boolr#r(r6rCrSrjrtr[r_r�r�r�rvr�r�r�r�r��__name__r!r!r!r"�<module>s�


��
�������
�&��
�"
�
��
�6$a
L
�