B
    ë¹`ò  ã               @   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-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               @   sD   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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 |  ¡ }n8| jd dkr8|  ¡ }n | jd dkrP|  ¡ }ntdƒ‚t ¡ }t	| 
d¡dd}t| j||ƒ x | jD ]}| jjjj |¡ qˆW |jS )	Nr   ÚlexersÚ
formattersÚfiltersz,invalid argument for "pygmentsdoc" directiveÚ
Ú )Úsource)ÚsetÚ	filenamesÚ	argumentsÚdocument_lexersÚdocument_formattersÚdocument_filtersÚ	Exceptionr   Zcompoundr   Úsplitr   ÚstateÚdocumentÚsettingsZrecord_dependenciesÚaddÚchildren)ÚselfÚoutÚnodeZvlÚfn© r   úZ/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/pygments/sphinxext.pyÚrunE   s    


zPygmentsDoc.runc          
   C   s¸  ddl m} g }i }i } xþt| ¡ dd„ dD ]æ\}}|d }t|d d |gƒ}| j |j¡ t||ƒ}	|	j	szt
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r0|j	}t|tƒr| d¡}|||< q0W x’t| ¡ dd„ dD ]z\}}|| d krTtd|f ƒ‚||  ¡ d  ¡  d¡}| t||dt|ƒ f ¡ x|D ]}| t| ¡ qW q0W d |¡S )Nr   )ÚLEXERSc             S   s   | d S )Nr   r   )Úxr   r   r    Ú<lambda>[   ó    z-PygmentsDoc.document_lexers.<locals>.<lambda>)Úkeyz&Warning: %s does not have a docstring.Úutf8z, é   ÚNoneé   Ú*z\*Ú_ú\é   c             S   s   | d S )Nr   r   )r#   r   r   r    r$   q   r%   zMissing docstring for %sÚ.ú-r   )Zpygments.lexers._mappingr"   ÚsortedÚitemsÚ
__import__r   r   Ú__file__ÚgetattrÚ__doc__ÚprintÚ
isinstanceÚbytesÚdecodeÚ
setdefaultÚappendÚjoinÚreplacer   Ú
splitlinesÚstripÚrstripÚ	MODULEDOCÚlenÚLEXERDOC)r   r"   r   ÚmodulesZmoduledocstringsÚ	classnameÚdataÚmoduleÚmodÚclsÚ	docstringZmoddocr   Úheadingr   r   r    r   V   sB     


 

zPygmentsDoc.document_lexersc       
   
   C   sÆ   ddl m} g }xªt| ¡ dd„ dD ]’\}}|d }t|d d |gƒ}| j |j¡ t||ƒ}|j	}t
|tƒrx| d¡}|j}	| t|	d |d ¡p–d	d |d
 ¡ dd¡p®d	|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&   r'   z, r(   r)   r*   r+   z\*r   )Zpygments.formattersrM   r1   r2   r3   r   r   r4   r5   r6   r8   r9   r:   Ú__name__r<   ÚFMTERDOCr=   r>   )
r   rM   r   rF   rG   rH   rI   rJ   rK   rL   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   )ÚFILTERSr'   r   )Zpygments.filtersrP   r2   r   r   ÚsysrE   Ú
__module__r4   r6   r8   r9   r:   r<   Ú	FILTERDOCrN   r=   )r   rP   r   ÚnamerJ   rK   r   r   r    r      s    

zPygmentsDoc.document_filtersN)rN   rR   Ú__qualname__r6   Zhas_contentZrequired_argumentsZoptional_argumentsZfinal_argument_whitespaceZoption_specr!   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    rV   )r6   rQ   Zdocutilsr   Zdocutils.statemachiner   Zdocutils.parsers.rstr   Zsphinx.util.nodesr   rB   rD   rO   rS   r   rV   r   r   r   r    Ú<module>
   s   
	`