
    -Ph
                        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rddl
mZ ddlmZ ddlmZ dd	lmZ  G d
 de	          ZddZdS )z9The metadata collector components for sphinx.environment.    )annotations)TYPE_CHECKINGcast)nodes)EnvironmentCollector)Set)Sphinx)BuildEnvironment)ExtensionMetadatac                  *    e Zd ZdZdd
ZddZddZdS )MetadataCollectorz*metadata collector for sphinx.environment.appr	   envr
   docnamestrreturnNonec                <    |j                             |d            d S N)metadatapop)selfr   r   r   s       f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/environment/collectors/metadata.py	clear_doczMetadataCollector.clear_doc   s     $'''''    docnamesSet[str]otherc                :    |D ]}|j         |         |j         |<   d S r   )r   )r   r   r   r   r   r   s         r   merge_otherzMetadataCollector.merge_other   s3       	< 	<G$)N7$;CL!!	< 	<r   doctreenodes.documentc                   |                     t          j                  }|dS t          ||         t          j                  r|j        j        |j        j                 }||         D ]}t          |t          j                  r t          d|          }d |D             |d<   <t          |t          j
                  rkt          |          dk    sJ t          d|d                   }t          d|d	                   }|                                ||                                <   t          |t          j                  r!|                                ||j        j        <   |                                D ]3\  }	}
|	d
k    r(	 t#          |
          }
n# t$          $ r d}
Y nw xY w|
||	<   4|                    |           dS dS )zProcess the docinfo part of the doctree as metadata.

        Keep processing minimal -- just return what docutils says.
        Nzlist[nodes.author]c                6    g | ]}|                                 S  )astext).0authors     r   
<listcomp>z1MetadataCollector.process_doc.<locals>.<listcomp>1   s     $K$K$KV]]__$K$K$Kr   authors   znodes.field_namer   znodes.field_body   tocdepth)first_child_not_matching_classr   PreBibliographic
isinstancedocinfor   r   r   r*   r   fieldlenr&   TextElement	__class____name__itemsint
ValueErrorr   )r   r   r!   indexmdnoder*   
field_name
field_bodynamevalues              r   process_doczMetadataCollector.process_doc#   s   
 66u7MNN=F66 	!#'/2B @ @dEM22 @"#7>>G$K$K7$K$K$KByMMek22 @t99>>>>!%&8$q'!B!BJ!%&8$q'!B!BJ.8.?.?.A.ABz((**++e&788 @ 37++--Bt~./!xxzz % %e:%%" #E

% " " " !"$BtHKK3	 	s   FF%$F%N)r   r	   r   r
   r   r   r   r   )
r   r	   r   r
   r   r   r   r
   r   r   )r   r	   r!   r"   r   r   )r6   
__module____qualname____doc__r   r    rA   r%   r   r   r   r      sV        44( ( ( (< < < <! ! ! ! ! !r   r   r   r	   r   r   c                B    |                      t                     ddddS )NbuiltinT)versionparallel_read_safeparallel_write_safe)add_env_collectorr   )r   s    r   setuprK   G   s1    +,,, "#  r   N)r   r	   r   r   )rD   
__future__r   typingr   r   docutilsr   sphinx.environment.collectorsr   collections.abcr   sphinx.applicationr	   sphinx.environmentr
   sphinx.util.typingr   r   rK   r%   r   r   <module>rT      s    ? ? " " " " " " & & & & & & & &       > > > > > > 5######))))))3333334444441 1 1 1 1, 1 1 1h     r   