o
    N i¸  ã                   @  s¦   d Z ddlm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dlmZ erDdd	lmZ dd
lmZ ddlmZ ddlmZ G dd„ de
ƒZddd„ZdS )z=The dependencies collector components for sphinx.environment.é    )ÚannotationsN)Úpath)ÚTYPE_CHECKING)Úrelative_path)ÚEnvironmentCollector)Úfs_encoding)Únodes)ÚSphinx)ÚBuildEnvironment)ÚExtensionMetadatac                   @  s.   e Zd ZdZdd
d„Zddd„Zddd„ZdS )ÚDependenciesCollectorz.dependencies collector for sphinx.environment.Úappr	   Úenvr
   ÚdocnameÚstrÚreturnÚNonec                 C  s   |j  |d ¡ d S ©N)ÚdependenciesÚpop)Úselfr   r   r   © r   ú^/home/ubuntu/.local/lib/python3.10/site-packages/sphinx/environment/collectors/dependencies.pyÚ	clear_doc   s   zDependenciesCollector.clear_docÚdocnamesúset[str]Úotherc                 C  s(   |D ]}||j v r|j | |j |< qd S r   )r   )r   r   r   r   r   r   r   r   r   Úmerge_other   s
   
€þz!DependenciesCollector.merge_otherÚdoctreeúnodes.documentc              	   C  s~   t  ¡ }t t |j¡d¡}|jj}|sdS |jD ]#}t	|t
ƒr%| t¡}t|t t ||¡¡ƒ}|jj|jj  |¡ qdS )z+Process docutils-generated dependency info.ÚdummyN)ÚosÚgetcwdr   ÚjoinÚnormpathÚsrcdirÚsettingsÚrecord_dependenciesÚlistÚ
isinstanceÚbytesÚdecoder   r   r   r   r   Úadd)r   r   r   ÚcwdÚfrompathÚdepsÚdepÚrelpathr   r   r   Úprocess_doc'   s   


úz!DependenciesCollector.process_docN)r   r	   r   r
   r   r   r   r   )
r   r	   r   r
   r   r   r   r
   r   r   )r   r	   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r2   r   r   r   r   r      s
    

r   r   r	   r   r   c                 C  s   |   t¡ ddddœS )NÚbuiltinT)ÚversionÚparallel_read_safeÚparallel_write_safe)Úadd_env_collectorr   )r   r   r   r   Úsetup7   s
   
ýr<   )r   r	   r   r   )r6   Ú
__future__r   r!   r   Útypingr   Údocutils.utilsr   Úsphinx.environment.collectorsr   Úsphinx.util.osutilr   Údocutilsr   Úsphinx.applicationr	   Úsphinx.environmentr
   Úsphinx.util.typingr   r   r<   r   r   r   r   Ú<module>   s    !