|eldZddlZddlmZddlmZddlmZddlm Z dZ dZ d Z d Z Gd d eZd Zy)a pygments.sphinxext ~~~~~~~~~~~~~~~~~~ Sphinx extension to generate automatic documentation of lexers, formatters and filters. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)nodes)ViewList) Directive)nested_parse_with_titlesz .. module:: %s %s %s zX .. class:: %s :Short names: %s :Filenames: %s :MIME types: %s %s zA .. class:: %s :Short names: %s :Filenames: %s %s z' .. class:: %s :Name: %s %s cBeZdZdZdZdZdZdZiZdZ dZ dZ dZ d Z y ) PygmentsDoczn A directive to collect all lexers/formatters/filters and generate autoclass directives for them. Frct|_|jddk(r|j}nt|jddk(r|j }nQ|jddk(r|j }n.|jddk(r|j }n tdtj}t|jdd }t|j|||jD];}|jjjj j#|=|j$S) Nrlexers formattersfilterslexers_overviewz,invalid argument for "pygmentsdoc" directive )source)set filenames argumentsdocument_lexersdocument_formattersdocument_filtersdocument_lexers_overview Exceptionrcompoundrsplitrstatedocumentsettingsrecord_dependenciesaddchildren)selfoutnodevlfns 4/usr/lib/python3/dist-packages/pygments/sphinxext.pyrunzPygmentsDoc.runEs >>!  (&&(C ^^A , .**,C ^^A ) +'')C ^^A "3 3//1CJK K~~ ciiob 1 R6.. EB JJ   ( ( < < @ @ D E}}c ddlm}ddl}g}g}d}t|j dD]\}}|j j |d}|j|jz} |j||d|jdj| jd d jd d xsd dj|d|dd|dgd} | D cgc]-} t|D cgc]} | | s t| | c} /c} } fdfd} |j| |jdddd|j| |D],} |j| d| d| dd| dd.|j| dj|Scc} wcc} } w)zGenerate a tabular overview of all lexers. The columns are the lexer name, the extensions handled by this lexer (or "None"), the aliases and a link to the lexer class.rLEXERSNc|r d|d|dS|S)N`z `_)nameurls r' format_linkz9PygmentsDoc.document_lexers_overview..format_linkcs4&3%s++Kr)c.|ddjS)Nr )lowerxs r'z6PygmentsDoc.document_lexers_overview..hsAaDGMMOr)keyr , *\*_\None.)r0 extensionsaliasesclasscg}t|D]<\}}|r!|j|j|)|jd|z>dj|S)zFormat a table row )zipappendljustjoin)columnsr#lccolumn_lengthss r' write_rowz7PygmentsDoc.document_lexers_overview..write_rowwsYCNG4 &1JJqwwqz*JJs1u%  & 88C= r)c<Dcgc]}d|z }}|Scc}w)zWrite a table separator row=r/)rMseprNrOs r'write_seperatorz=PygmentsDoc.document_lexers_overview..write_seperators)"01Q3q51C1c? "2s Namez Extension(s)z Short name(s)z Lexer classr0rBrCz :class:`~rDr.r)pygments.lexers._mappingr,pygments.lexerssorteditemsr find_lexer_classralias_filenamesrHr1rJreplacemaxlen)r"r,pygmentsr#tabler2 classnamedata lexer_clsrB column_namescolumnrowrSrNrOs @@r'rz$PygmentsDoc.document_lexers_overviewXs 4  &flln:ST OIt 88aAI",,y/H/HHJ LL#DGY]];"ii 3;;CGOOPSUYZd^d99T!W- G9Ai[1   B (46$5PCCKs3v;/PQ6 ! # ?$% 9V^_mTU ?$% .C JJyF L!ICL>+ - . . ?$%yy~=Q6s/G= GG GGc ddlm}ddl}ddl}ddl}g}i}i}t |j dD]\}} | d} t| dd|g} |jj| jt| |} | jstd|z| j} t| tr| j!d} d}|r|j#|j%|j&j&dz dz |z }|j)d }|st+d |d || d r4| d d}| dz } | d|dz } |j-D] }| d|dz } |j/| gj1|dj3| d xsddj3| dj5ddj5ddxsddj3| dxsd| f| |vs| j}t|tr|j!d}||| <t |j dD]\} }|| t+d| || j-dj7j9d}|j1t:| |dt=|zfz|D]} |j1t>| zdj3|S) Nrr+c |dSNrr/r5s r'r7z-PygmentsDoc.document_lexers.. AaDr)r8z&Warning: %s does not have a docstring.utf8tests examplefileszutf-8)encodingzEmpty example file 'z ' for lexer r@z .. admonition:: Example z .. code-block:: z z rr:r?r;r<r=r>c |dSrhr/r5s r'r7z-PygmentsDoc.document_lexers..rir)zMissing docstring for rA-r) rUr,r^inspectpathlibrWrX __import__rr __file__getattr__doc__print isinstancebytesdecodePath getabsfileparent read_textr splitlines setdefaultrHrJr[striprstrip MODULEDOCr]LEXERDOC)r"r,r^rrrsr#modulesmoduledocstringsr`ramodulemodcls docstring example_filepcontent lexer_namelinemoddocr headings r'rzPygmentsDoc.document_lexerss3%flln.I& 2OIt!WFVT4)=C NN  s|| ,#y)C;;>JK I)U+%,,V4 LLL!3!3H!=>EELL,-/;<++w+7#.|nL$+'((7!%aJ!DDI#;J>sDISV $q'",f 3  --fe,#]]62F+1 (M& 2P%W]]_.I ,NFF'/f FGG&v.99;A>DDFMMcRG JJyFGSW5E#FF G , 8d?+ ,  ,wws|r)c (ddlm}g}t|jdD]\}}|d}t |dd|g}|j j |jt||}|j}t|tr|jd}|j} |jt| dj!|dxsddj!|d j#d d xsd|fzd j!|S) Nr) FORMATTERSc |dSrhr/r5s r'r7z1PygmentsDoc.document_formatters..s !r)r8rjr:r@r?rnr;r<r)pygments.formattersrrWrXrtrr rurvrwryrzr{__name__rHFMTERDOCrJr[) r"rr#r`rarrrrrs r'rzPygmentsDoc.document_formatterss2%j&6&6&8nM /OIt!WFVT4)=C NN  s|| ,#y)C I)U+%,,V4 llG JJx7DIId1g,>,H&#'99T!W#5#=#=c5#I#SV#,#.. / /wws|r)cddlm}g}|jD]\}}|jj t j |jj|j}t|tr|jd}|jt|j||fzdj!|S)Nr)FILTERSrjr)pygments.filtersrrXrr sysr __module__rurwryrzr{rH FILTERDOCrrJ)r"rr#r0rrs r'rzPygmentsDoc.document_filterss,  DID# NN  s{{3>>:CC D I)U+%,,V4 JJyCLL$ #BB C  D wws|r)N)rr __qualname__rw has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespace option_specr(rrrrr/r)r'rr:s@K %K&:x9v$ r)rc0|jdty)N pygmentsdoc) add_directiver)apps r'setuprsm[1r))rwrdocutilsrdocutils.statemachinerdocutils.parsers.rstrsphinx.util.nodesrrrrrrrr/r)r'rsK  **6      q)qh2r)