o a@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-2021 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 c@sDeZdZdZdZdZdZdZiZddZ ddZ d d Z d d Z d S) PygmentsDoczn A directive to collect all lexers/formatters/filters and generate autoclass directives for them. FrcCst|_|jddkr|}n|jddkr|}n|jddkr(|}ntdt}t | ddd}t |j |||jD] }|j j jj|qC|jS) Nrlexers formattersfiltersz,invalid argument for "pygmentsdoc" directive )source)set filenames argumentsdocument_lexersdocument_formattersdocument_filters Exceptionrcompoundrsplitrstatedocumentsettingsrecord_dependenciesaddchildren)selfoutnodevlfnr"4/usr/lib/python3/dist-packages/pygments/sphinxext.pyrunEs    zPygmentsDoc.runc Csddlm}g}i}i}t|dddD]r\}}|d}t|dd|g}|j|jt||} | j s;t d|| j } t | t rH| d} ||g|d|d pWd d|d d d ddpgd d|dpod | f||vr|j } t | t r| d} | ||<qt|dddD]8\}} ||durtd|f||dd} |t|| dt| f| D] }|t|qqd|S)Nr)LEXERScS|dSNrr"xr"r"r#[z-PygmentsDoc.document_lexers..keyz&Warning: %s does not have a docstring.utf8, None*\*_\cSr&r'r"r(r"r"r#r*qr+zMissing docstring for %s.-r )pygments.lexers._mappingr%sorteditems __import__rr__file__getattr__doc__print isinstancebytesdecode setdefaultappendjoinreplacer splitlinesstriprstrip MODULEDOClenLEXERDOC)rr%rmodulesmoduledocstrings classnamedatamodulemodcls docstringmoddocrheadingr"r"r#rVsH           zPygmentsDoc.document_lexersc Csddlm}g}t|dddD]I\}}|d}t|dd|g}|j|jt||}|j }t |t r;| d}|j } |t| d|dpJd d|d d d pVd |fqd |S)Nr) FORMATTERScSr&r'r"r(r"r"r#r*r+z1PygmentsDoc.document_formatters..r,r.r/r0r1r2r3r4r )pygments.formattersrYr;r<r=rrr>r?r@rBrCrD__name__rFFMTERDOCrGrH) rrYrrQrRrSrTrUrVrXr"r"r#r{s     zPygmentsDoc.document_formatterscCsrddlm}g}|D]'\}}|jtj|jj|j }t |t r(| d}| t|j||fq d|S)Nr)FILTERSr.r )pygments.filtersr]r<rrsysrO __module__r>r@rBrCrDrF FILTERDOCr[rG)rr]rnamerUrVr"r"r#rs    zPygmentsDoc.document_filtersN) r[r` __qualname__r@ has_contentrequired_argumentsoptional_argumentsfinal_argument_whitespace option_specr$rrrr"r"r"r#r:s% rcCs|dtdS)N pygmentsdoc) add_directiver)appr"r"r#setupsrl)r@r_docutilsrdocutils.statemachinerdocutils.parsers.rstrsphinx.util.nodesrrLrNr\rarrlr"r"r"r#s       `