U
    ƒIÀdâ  ã                   @   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||ƒ | jD ]}| jjjj |¡ qž|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   ÚstateZdocumentÚsettingsZrecord_dependenciesÚaddÚchildren)ÚselfÚoutÚnodeZvlÚfn© r   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pip/_vendor/pygments/sphinxext.pyÚrunE   s     




zPygmentsDoc.runc              
      sb  ddl m} ddlm} g }g ‰dd„ }t| ¡ dd„ d�D ]r\}}||d	 ƒ}|j|j }ˆ ||d	 |j	ƒd
 
|¡ dd¡ dd¡pŠdd
 
|d ¡|d › d|› �dœ¡ q<ddddg}	‡fdd„|	D ƒ‰ ‡ fdd„‰‡ ‡fdd„}
| |
ƒ ¡ | ˆdddd ƒ¡ | |
ƒ ¡ ˆD ]2}| ˆ|d |d |d d!|d › d"�ƒ¡ �q| |
ƒ ¡ d# 
|¡S )$z¸Generate 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   ú, Ú*ú\*Ú_ú\ÚNoneé   Ú.)r&   Ú
extensionsÚaliasesÚclassr&   r8   r9   r:   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)r<   )Útabler>   r    r@   t   s   ÿz8PygmentsDoc.document_lexers_overview.<locals>.<listcomp>c                     sF   g }t ˆ | ƒD ],\}}|r,| | |¡¡ q| d| ¡ q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   )r<   rJ   r   r   r    r@   „   s     zQPygmentsDoc.document_lexers_overview.<locals>.write_seperator.<locals>.<listcomp>r   )Úsep)rK   rL   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_filenamesrE   r'   rG   Úreplace)r   r#   r$   r   r(   Ú	classnameÚdataZ	lexer_clsr8   Zcolumn_namesrO   r=   r   )rK   rB   rL   r    r   X   s@    ü

ÿü
z$PygmentsDoc.document_lexers_overviewc              
   C   sª  ddl m} g }i }i }t| ¡ dd„ d�D ]æ\}}|d }t|d d |gƒ}| j |j¡ t||ƒ}	|	j	svt
d| ƒ |	j	}
t|
tƒr�|
 d¡}
| |g ¡ |d |d	 ¡p®d
d |d ¡ dd¡ dd¡pÎd
d |d ¡pÞd
|
f¡ ||kr,|j	}t|tƒ�r
| d¡}|||< q,t| ¡ dd„ d�D ]v\}}|| d k�rLtd|f ƒ‚||  ¡ d  ¡  d¡}| t||dt|ƒ f ¡ |D ]}| t| ¡ �q†�q(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.Úutf8r0   r6   r5   é   r1   r2   r3   r4   é   c                 S   s   | d S rY   r   r*   r   r   r    r,   ¯   r-   zMissing docstring for %sr7   ú-r   )rQ   r#   rS   rT   Ú
__import__r   r   Ú__file__ÚgetattrÚ__doc__ÚprintÚ
isinstanceÚbytesÚdecodeÚ
setdefaultrE   rG   rV   r   Ú
splitlinesÚstripÚrstripÚ	MODULEDOCr;   ÚLEXERDOC)r   r#   r   ÚmodulesZmoduledocstringsrW   rX   ÚmoduleÚmodÚclsÚ	docstringZmoddocr   Úheadingr   r   r    r   ”   sD    


 û

zPygmentsDoc.document_lexersc           
   
   C   sÂ   ddl m} g }t| ¡ dd„ d�D ]’\}}|d }t|d d |gƒ}| j |j¡ t||ƒ}|j	}t
|tƒrv| d¡}|j}	| t|	d |d ¡p”d	d |d
 ¡ dd¡p¬d	|f ¡ q$d |¡S )Nr   )Ú
FORMATTERSc                 S   s   | d S rY   r   r*   r   r   r    r,   ½   r-   z1PygmentsDoc.document_formatters.<locals>.<lambda>r.   rZ   r0   r6   r5   r[   r1   r2   r   )Zpip._vendor.pygments.formattersrr   rS   rT   r^   r   r   r_   r`   ra   rc   rd   re   Ú__name__rE   ÚFMTERDOCrG   rV   )
r   rr   r   rW   rX   rm   rn   ro   rp   rq   r   r   r    r   ¹   s     


þ
zPygmentsDoc.document_formattersc                 C   sr   ddl m} g }| ¡ D ]N\}}| j tj|j j¡ |j	}t
|tƒrP| d¡}| t|j||f ¡ qd |¡S )Nr   )ÚFILTERSrZ   r   )Úpip._vendor.pygments.filtersru   rT   r   r   Úsysrl   Ú
__module__r_   ra   rc   rd   re   rE   Ú	FILTERDOCrs   rG   )r   ru   r   r&   ro   rp   r   r   r    r   Ë   s    

zPygmentsDoc.document_filtersN)rs   rx   Ú__qualname__ra   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    r{   )ra   rw   Zdocutilsr   Zdocutils.statemachiner   Zdocutils.parsers.rstr   Zsphinx.util.nodesr   rj   rk   rt   ry   r   r{   r   r   r   r    Ú<module>   s   

 