B
    He                 @   sh   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 dZ
dZd	Zd
ZG dd deZdd ZdS )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

c               @   sL   e Zd ZdZdZdZdZdZi Zdd Z	dd Z
d	d
 Zdd Zdd ZdS )PygmentsDoczn
    A directive to collect all lexers/formatters/filters and generate
    autoclass directives for them.
    F   r   c             C   s   t  | _| jd dkr |  }nP| jd dkr8|  }n8| jd dkrP|  }n | jd dkrh|  }ntdt	 }t
|ddd	}t| j|| x | jD ]}| jjjj| qW |jS )
Nr   lexers
formattersfiltersZlexers_overviewz,invalid argument for "pygmentsdoc" directive
 )source)set	filenames	argumentsdocument_lexersdocument_formattersdocument_filtersdocument_lexers_overview	Exceptionr   Zcompoundr   splitr   statedocumentsettingsZrecord_dependenciesaddchildren)selfoutnodeZvlfn r    r/var/www/downstreamdata.science/rtclock/rtclock-venv/lib/python3.7/site-packages/pip/_vendor/pygments/sphinxext.pyrunE   s     



zPygmentsDoc.runc          
      sj  ddl m} ddlm} g }g dd }xt| dd dD ]r\}}||d	 }|j|j }||d	 |j	d

|ddddpdd

|d |d  d| d q>W ddddg}	fdd|	D   fdd fdd}
||
  |dddd  ||
  x:D ]2}||d |d |d d!|d  d" qW ||
  d#
|S )$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.r   )LEXERS)find_lexer_classc             S   s   |rd|  d| dS | S )N`z <z>`_r    )nameurlr    r    r!   format_linkc   s    z9PygmentsDoc.document_lexers_overview.<locals>.format_linkc             S   s   | d d   S )Nr   )lower)xr    r    r!   <lambda>h       z6PygmentsDoc.document_lexers_overview.<locals>.<lambda>)keyr   z, *z\*_\None   .)r&   
extensionsaliasesclassr&   r4   r5   r6   c                s"   g | ] t  fd dD qS )c                s    g | ]}|  rt |  qS r    )len).0row)columnr    r!   
<listcomp>t   s    zCPygmentsDoc.document_lexers_overview.<locals>.<listcomp>.<listcomp>)max)r8   )table)r:   r!   r;   t   s   z8PygmentsDoc.document_lexers_overview.<locals>.<listcomp>c                 sJ   g }x:t  | D ],\}}|r.||| q|d|  qW d|S )zFormat a table row )zipappendljustjoin)columnsr   lc)column_lengthsr    r!   	write_roww   s    z7PygmentsDoc.document_lexers_overview.<locals>.write_rowc                 s   dd  D } |  S )zWrite a table separator rowc             S   s   g | ]}d | qS )=r    )r8   rE   r    r    r!   r;      s    zQPygmentsDoc.document_lexers_overview.<locals>.write_seperator.<locals>.<listcomp>r    )sep)rF   rG   r    r!   write_seperator   s    z=PygmentsDoc.document_lexers_overview.<locals>.write_seperatorNamezExtension(s)zShort name(s)zLexer classz	:class:`~r%   r   )$pip._vendor.pygments.lexers._mappingr#   pip._vendor.pygments.lexersr$   sorteditemsr   alias_filenamesr@   r'   rB   replace)r   r#   r$   r   r(   	classnamedataZ	lexer_clsr4   Zcolumn_namesrJ   r9   r    )rF   r=   rG   r!   r   X   s:    

z$PygmentsDoc.document_lexers_overviewc          
   C   s  ddl m} g }i }i } xt| dd dD ]\}}|d }t|d d |g}| j|j t||}	|	j	szt
d|  |	j	}
t|
tr|
d}
||g |d|d	 pd
d|d ddddpd
d|d pd
|
f ||kr0|j	}t|tr|d}|||< q0W xt| dd dD ]z\}}|| d krTtd|f ||  d  d}|t||dt| f  x|D ]}|t|  qW q0W d|S )Nr   )r#   c             S   s   | d S )Nr   r    )r*   r    r    r!   r+      r,   z-PygmentsDoc.document_lexers.<locals>.<lambda>)r-   z&Warning: %s does not have a docstring.utf8z, r2   r1      r.   z\*r/   r0      c             S   s   | d S )Nr   r    )r*   r    r    r!   r+      r,   zMissing docstring for %sr3   -r   )rL   r#   rN   rO   
__import__r   r   __file__getattr__doc__print
isinstancebytesdecode
setdefaultr@   rB   rQ   r   
splitlinesstriprstrip	MODULEDOCr7   LEXERDOC)r   r#   r   modulesZmoduledocstringsrR   rS   modulemodcls	docstringZmoddocr   headingr    r    r!   r      sB     


 

zPygmentsDoc.document_lexersc       
   
   C   s   ddl m} g }xt| dd dD ]\}}|d }t|d d |g}| j|j t||}|j	}t
|trx|d}|j}	|t|	d|d pd	d|d
 ddpd	|f  q&W d|S )Nr   )
FORMATTERSc             S   s   | d S )Nr   r    )r*   r    r    r!   r+      r,   z1PygmentsDoc.document_formatters.<locals>.<lambda>)r-   rT   z, r2   r1   rU   r.   z\*r   )Zpip._vendor.pygments.formattersrl   rN   rO   rX   r   r   rY   rZ   r[   r]   r^   r_   __name__r@   FMTERDOCrB   rQ   )
r   rl   r   rR   rS   rg   rh   ri   rj   rk   r    r    r!   r      s    


zPygmentsDoc.document_formattersc             C   sv   ddl m} g }xZ| D ]N\}}| jtj|j j |j	}t
|trR|d}|t|j||f  qW d|S )Nr   )FILTERSrT   r   )pip._vendor.pygments.filtersro   rO   r   r   sysrf   
__module__rY   r[   r]   r^   r_   r@   	FILTERDOCrm   rB   )r   ro   r   r&   ri   rj   r    r    r!   r      s    

zPygmentsDoc.document_filtersN)rm   rr   __qualname__r[   Zhas_contentZrequired_argumentsZoptional_argumentsZfinal_argument_whitespaceZoption_specr"   r   r   r   r   r    r    r    r!   r   :   s   <%r   c             C   s   |  dt d S )NZpygmentsdoc)Zadd_directiver   )Zappr    r    r!   setup   s    ru   )r[   rq   Zdocutilsr   Zdocutils.statemachiner   Zdocutils.parsers.rstr   Zsphinx.util.nodesr   rd   re   rn   rs   r   ru   r    r    r    r!   <module>
   s   
	 