a
    ñ»jÝ  ã                   @   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-present 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                   @   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   ú8E:\soccer\ml_env\Lib\site-packages\pygments/sphinxext.pyÚrunG   s     




zPygmentsDoc.runc              
      s^  ddl m} ddl}g }g ‰dd„ }t| ¡ dd„ d�D ]v\}}|j |d	 ¡}|j|j }ˆ 	||d	 |j
ƒd
 |¡ dd¡ dd¡pŠdd
 |d ¡|d › d|› �dœ¡ q8g d¢}	‡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   ©ÚLEXERSNc                 S   s   |rd| › d|› d�S | S )Nú`z <z>`_r   )ÚnameÚurlr   r   r    Úformat_linke   s    z9PygmentsDoc.document_lexers_overview.<locals>.format_linkc                 S   s   | d d   ¡ S )Nr   )Úlower©Úxr   r   r    Ú<lambda>j   ó    z6PygmentsDoc.document_lexers_overview.<locals>.<lambda>©Úkeyr   ú, Ú*ú\*Ú_ú\ÚNoneé   Ú.)r%   Ú
extensionsÚaliasesÚclassc                    s"   g | ]‰ t ‡ fd d„ˆD ƒƒ‘qS )c                    s    g | ]}|ˆ  rt |ˆ  ƒ‘qS r   )Úlen)Ú.0Úrow©Úcolumnr   r    Ú
<listcomp>v   r,   zCPygmentsDoc.document_lexers_overview.<locals>.<listcomp>.<listcomp>)Úmax)r;   )Útabler=   r    r?   v   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   ÚlengthÚcol)Úcolumn_lengthsr   r    Ú	write_rowy   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;   Úcr   r   r    r?   †   r,   zQPygmentsDoc.document_lexers_overview.<locals>.write_seperator.<locals>.<listcomp>r   )Úsep)rJ   rK   r   r    Úwrite_seperator„   s    z=PygmentsDoc.document_lexers_overview.<locals>.write_seperatorÚNamezExtension(s)zShort name(s)zLexer classr%   r7   r8   z	:class:`~r9   r$   r   )Úpygments.lexers._mappingr#   Zpygments.lexersÚsortedÚitemsr   Úfind_lexer_classr   Úalias_filenamesrD   r&   rF   Úreplace)r   r#   Úpygmentsr   r'   Ú	classnameÚdataZ	lexer_clsr7   Zcolumn_namesrO   r<   r   )rJ   rA   rK   r    r   Z   s@    ü

ÿü
z$PygmentsDoc.document_lexers_overviewc              
   C   s�  ddl m} dd l}dd l}dd l}g }i }i }t| ¡ dd„ d�D �]²\}}	|	d }
t|
d d |gƒ}| j 	|j
¡ t||ƒ}|js”td|› d�ƒ |j}t|tƒr®| d¡}t|d	d ƒ}|�rT| | |¡¡jjd
 d | }|jdd�}|�std|› d|› �ƒ‚|	d �rT|	d d }|d7 }|d|› d�7 }| ¡ D ]}|d|› d�7 }�q<|j�rjd|j› �}nd}| |
g ¡ |d |	d ¡�pŽdd |	d ¡ dd¡ dd¡�p°dd |	d ¡�pÂd||f¡ |
|vrD|j}t|tƒ�rð| d¡}|||
< qDt| ¡ d d„ d�D ]v\}
}||
 d u �r2td!|
› �ƒ‚||
  ¡ d  ¡  d"¡}| t|
|d#t|ƒ f ¡ |D ]}	| t |	 ¡ �ql�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: z does not have a docstring.Úutf8Ú_exampleZtestsZexamplefileszutf-8)ÚencodingzEmpty example file 'z' for lexer r5   z

    .. admonition:: Example
z
      .. code-block:: z

z
          r   z.. versionadded:: r   r/   r4   é   r0   r1   r2   r3   é   c                 S   s   | d S rZ   r   r)   r   r   r    r+   Í   r,   zMissing docstring for r6   ú-)!rQ   r#   rW   ÚinspectÚpathlibrR   rS   Ú
__import__r   r   Ú__file__ÚgetattrÚ__doc__ÚprintÚ
isinstanceÚbytesÚdecodeÚPathÚ
getabsfileÚparentÚ	read_textr   Ú
splitlinesÚversion_addedÚ
setdefaultrD   rF   rV   ÚstripÚrstripÚ	MODULEDOCr:   ÚLEXERDOC)r   r#   rW   ra   rb   r   ÚmodulesZmoduledocstringsrX   rY   ÚmoduleÚmodÚclsÚ	docstringZexample_fileÚpÚcontentÚ
lexer_nameÚlineZversion_lineZmoddocr   Úheadingr   r   r    r   –   s~    


ÿÿÿÿÿ
"ú

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 rZ   r   r)   r   r   r    r+   Û   r,   z1PygmentsDoc.document_formatters.<locals>.<lambda>r-   r[   r/   r5   r4   r^   r0   r1   r   )Zpygments.formattersr€   rR   rS   rc   r   r   rd   re   rf   rh   ri   rj   Ú__name__rD   ÚFMTERDOCrF   rV   )
r   r€   r   rX   rY   rw   rx   ry   rz   r   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   )ÚFILTERSr[   r   )Zpygments.filtersrƒ   rS   r   r   Úsysrv   Ú
__module__rd   rf   rh   ri   rj   rD   Ú	FILTERDOCr�   rF   )r   rƒ   r   r%   ry   rz   r   r   r    r   é   s    

zPygmentsDoc.document_filtersN)r�   r…   Ú__qualname__rf   Zhas_contentZrequired_argumentsZoptional_argumentsZfinal_argument_whitespaceZoption_specr!   r   r   r   r   r   r   r   r    r   <   s   <Ar   c                 C   s   |   dt¡ d S )NZpygmentsdoc)Zadd_directiver   )Zappr   r   r    Úsetupö   s    rˆ   )rf   r„   Zdocutilsr   Zdocutils.statemachiner   Zdocutils.parsers.rstr   Zsphinx.util.nodesr   rt   ru   r‚   r†   r   rˆ   r   r   r   r    Ú<module>   s   

 ;