U
    Sh	                     @  s   d Z ddlmZ ddlmZ ddlmZ ddlmZ	 ddl
mZ ddlmZmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ eeZG dd de	ZdS )z MyST Markdown parser for sphinx.    )annotations)nodes)Parser)logging)MdParserConfigTopmatterReadErrormerge_file_levelread_topmatter)SphinxRenderer)ResolveAnchorIds)create_md_parsercreate_warningc                      sR   e Zd ZU dZdZded< ejZdZdZ	dZ
 fdd	Zd
dddddZ  ZS )
MystParserz2Sphinx parser for Markedly Structured Text (MyST).)mdmarkdownZmystztuple[str, ...]	supportedzmyst parser)parsersNc                   s   t   tg S )N)superget_transformsr   )self	__class__ N/root/rtd-docs/venv/lib/python3.8/site-packages/myst_parser/parsers/sphinx_.pyr   0   s    zMystParser.get_transformsstrznodes.documentNone)inputstringdocumentreturnc                   sj    j jj}zt|}W n tk
r*   Y nX |rH fdd}t|||}t|t} |jd< |	| dS )zParse source text.

        :param inputstring: The source string to parse
        :param document: The root docutils node to add AST elements to

        c                   s   t  || d dS )N   )lineZ	append_tor   )Zwtypemsgr   r   r   <lambda>D   s       z"MystParser.parse.<locals>.<lambda>r   N)
settingsenvZmyst_configr	   r   r   r   r
   optionsrender)r   r   r   configZ	topmatterwarningparserr   r#   r   parse3   s    


zMystParser.parse)__name__
__module____qualname____doc__r   __annotations__	RstParserZsettings_specZconfig_sectionZconfig_section_dependenciesZtranslate_section_namer   r,   __classcell__r   r   r   r   r      s   
r   N)r0   
__future__r   Zdocutilsr   Zdocutils.parsers.rstr   r2   Zsphinx.parsersZSphinxParserZsphinx.utilr   Zmyst_parser.config.mainr   r   r   r	   Z$myst_parser.mdit_to_docutils.sphinx_r
   Z'myst_parser.mdit_to_docutils.transformsr   Zmyst_parser.parsers.mditr   Zmyst_parser.warnings_r   	getLoggerr-   ZSPHINX_LOGGERr   r   r   r   r   <module>   s   
