U
    \ªShQ  ã                   @  s|   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 erHddl
mZ G dd„ deƒZG d	d
„ d
e	ƒZdddœdd„ZdS )z#Docutils transforms used by Sphinx.é    )Úannotations)ÚTYPE_CHECKINGÚAny)ÚDanglingReferences)ÚSphinxTransform)ÚSphinxc                      s(   e Zd ZdZdddœ‡ fdd„Z‡  ZS )ÚSphinxDanglingReferenceszADanglingReferences transform which does not output info messages.r   ÚNone©ÚkwargsÚreturnc                   s:   z,| jj}|j }t|j|j ƒ|_ tƒ  ¡  W 5 ||_ X d S ©N)Úreport_levelÚdocumentÚreporterÚmaxZWARNING_LEVELÚsuperÚapply)Úselfr   r   r   ©Ú	__class__© úO/root/rtd-docs/venv/lib/python3.8/site-packages/sphinx/transforms/references.pyr      s    zSphinxDanglingReferences.apply)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__r   r   r   r   r      s   r   c                   @  s$   e Zd ZdZdZdddœdd„ZdS )	ÚSphinxDomainsz7Collect objects to Sphinx domains for cross references.iR  r   r	   r
   c                 K  s,   | j j ¡ D ]}| | j | j j| j¡ qd S r   )ÚenvÚdomainsÚvaluesZprocess_docZdocnamer   )r   r   Údomainr   r   r   r   "   s    zSphinxDomains.applyN)r   r   r   r   Zdefault_priorityr   r   r   r   r   r      s   r   r   zdict[str, Any])Úappr   c                 C  s    |   t¡ |   t¡ ddddœS )NÚbuiltinT)ÚversionZparallel_read_safeZparallel_write_safe)Zadd_transformr   r   )r#   r   r   r   Úsetup'   s    

ýr&   N)r   Ú
__future__r   Útypingr   r   Zdocutils.transforms.referencesr   Zsphinx.transformsr   Zsphinx.applicationr   r   r   r&   r   r   r   r   Ú<module>   s   	