a *eg-@shdZddlZddlmZddlmZddlmZddlm Z dZ dZ d Z d Z Gd d d eZd dZdS)a pygments.sphinxext ~~~~~~~~~~~~~~~~~~ Sphinx extension to generate automatic documentation of lexers, formatters and filters. :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)nodes)ViewList) Directive)nested_parse_with_titlesz .. module:: %s %s %s z` .. class:: %s :Short names: %s :Filenames: %s :MIME types: %s %s %s zA .. class:: %s :Short names: %s :Filenames: %s %s z' .. class:: %s :Name: %s %s c@sLeZdZdZdZdZdZdZiZddZ ddZ d d Z d d Z d dZ dS) PygmentsDoczn A directive to collect all lexers/formatters/filters and generate autoclass directives for them. FrcCst|_|jddkr |}nP|jddkr8|}n8|jddkrP|}n |jddkrh|}ntdt }t | ddd }t |j |||jD]}|j jjj|q|jS) Nrlexers formattersfiltersZlexers_overviewz,invalid argument for "pygmentsdoc" directive )source)set filenames argumentsdocument_lexersdocument_formattersdocument_filtersdocument_lexers_overview ExceptionrZcompoundrsplitrstatedocumentsettingsZrecord_dependenciesaddchildren)selfoutnodeZvlfnr H/usr/local/lib/python3.9/site-packages/pip/_vendor/pygments/sphinxext.pyrunGs      zPygmentsDoc.runc s^ddlm}ddlm}g}gdd}t|dddD]r\}}||d }|j|j}||d |j d | d d  d dpdd |d|dd|dq`_r )nameurlr r r! format_linkesz9PygmentsDoc.document_lexers_overview..format_linkcSs|ddS)Nr)lowerxr r r!jz6PygmentsDoc.document_lexers_overview..keyr, *\*_\None.)r' extensionsaliasesclasscs"g|]tfddDqS)cs g|]}|rt|qSr )len).0rowcolumnr r! vr.zCPygmentsDoc.document_lexers_overview...)max)r=)tabler?r!rAvsz8PygmentsDoc.document_lexers_overview..csFg}t|D],\}}|r,|||q|d|qd|S)zFormat a table row )zipappendljustjoin)columnsrlengthcol)column_lengthsr r! write_rowys z7PygmentsDoc.document_lexers_overview..write_rowcsddD}|S)zWrite a table separator rowcSsg|] }d|qS)=r )r=cr r r!rAr.zQPygmentsDoc.document_lexers_overview..write_seperator..r )sep)rLrMr r!write_seperatorsz=PygmentsDoc.document_lexers_overview..write_seperatorNamez Extension(s)z Short name(s)z Lexer classr'r9r:z :class:`~r;r&r ) $pip._vendor.pygments.lexers._mappingr$Zpip._vendor.pygments.lexersr%sorteditemsrZalias_filenamesrFr(rHreplace) rr$r%rr) classnamedataZ lexer_clsr9Z column_namesrQr>r )rLrCrMr!rZs@            z$PygmentsDoc.document_lexers_overviewc Csddlm}ddlm}ddl}ddl}g}i}i}t|dddD]\}} | d} t| dd|g} |j | j t | |} | j std|d| j } t| tr| d } t | d d}|rX|||jjd d |}|jd d}|s td|d|| drX| dd}| d7} | d|d7} |D]}| d|d7} q@| jrnd| j}nd}|| g|d| dpdd| dddddpdd| d pd| |f| |vrH| j }t|tr|d }||| <qHt|d!ddD]v\} }|| dur6td"| || d d#}|t| |d$t |f|D]} |t!| qpqd|S)%Nrr#)pygmentscSs|dSNrr r+r r r!r-r.z-PygmentsDoc.document_lexers..r/z Warning: z does not have a docstring.utf8Z_exampletestsZ examplefileszutf-8)encodingzEmpty example file 'z ' for lexer r7z .. admonition:: Example z .. code-block:: z z r z.. versionadded:: r r1r6r2r3r4r5cSs|dSrZr r+r r r!r-r.zMissing docstring for r8-)"rSr$ pip._vendorrYinspectpathlibrTrU __import__rr__file__getattr__doc__print isinstancebytesdecodePath getabsfileparent read_textr splitlinesZ version_added setdefaultrFrHrVstriprstrip MODULEDOCr<LEXERDOC)rr$rYrbrcrmodulesZmoduledocstringsrWrXmodulemodcls docstringZ example_filepcontentZ lexer_namelineZ version_lineZmoddocrheadingr r r!rs~           "   zPygmentsDoc.document_lexersc Csddlm}g}t|dddD]\}}|d}t|dd|g}|j|jt||}|j }t |t rv| d}|j } |t| d|dpd d|d d d pd |fq$d |S)Nr) FORMATTERScSs|dSrZr r+r r r!r-r.z1PygmentsDoc.document_formatters..r/r[r1r7r6r^r2r3r )Zpip._vendor.pygments.formattersrrTrUrdrrrerfrgrirjrk__name__rFFMTERDOCrHrV) rrrrWrXrwrxryrzr~r r r!rs      zPygmentsDoc.document_formatterscCsrddlm}g}|D]N\}}|jtj|jj|j }t |t rP| d}| t|j||fqd|S)Nr)FILTERSr[r )Zpip._vendor.pygments.filtersrrUrrsysrv __module__rergrirjrkrF FILTERDOCrrH)rrrr'ryrzr r r!rs   zPygmentsDoc.document_filtersN)rr __qualname__rgZ has_contentZrequired_argumentsZoptional_argumentsZfinal_argument_whitespaceZ option_specr"rrrrr r r r!r<s<ArcCs|dtdS)NZ pygmentsdoc)Z add_directiver)Zappr r r!setupsr)rgrZdocutilsrZdocutils.statemachinerZdocutils.parsers.rstrZsphinx.util.nodesrrtrurrrrr r r r!s        ;