
    O&i
                         d Z ddlmZ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  G d de          Zd	e
d
eeef         fdZdS )z9The metadata collector components for sphinx.environment.    )AnyDictListSetcast)nodes)Sphinx)BuildEnvironment)EnvironmentCollectorc            
       p    e Zd ZdZdedededdfdZdededee         d	eddf
d
Z	dede
j        ddfdZdS )MetadataCollectorz*metadata collector for sphinx.environment.appenvdocnamereturnNc                 <    |j                             |d            d S N)metadatapop)selfr   r   r   s       s/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/environment/collectors/metadata.py	clear_doczMetadataCollector.clear_doc   s     $'''''    docnamesotherc                 :    |D ]}|j         |         |j         |<   d S r   )r   )r   r   r   r   r   r   s         r   merge_otherzMetadataCollector.merge_other   s1     	< 	<G$)N7$;CL!!	< 	<r   doctreec                    |                     t          j                  }|dS t          ||         t          j                  r|j        j        |j        j                 }||         D ]&}t          |t          j                  r5t          t          t          j                 |          }d |D             |d<   Rt          |t          j                  rt          |          dk    sJ t          t          j        |d                   }t          t          j        |d                   }|                                ||                                <   t          |t          j                  r!|                                ||j        j        <   (|                                D ]1\  }	}
|	dv r(	 t+          |
          }
n# t,          $ r d}
Y nw xY w|
||	<   2|                    |           dS dS )zProcess the docinfo part of the doctree as metadata.

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

% " " " !"$BtHKK3	 	s   /F??GG)r4   
__module____qualname____doc__r	   r
   strr   r   r   r   documentr=   r!   r   r   r   r      s        44(V (*: (S (T ( ( ( (<v <,< <!#h</?<DH< < < <
!v ! !4 ! ! ! ! ! !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   setuprI   ;   s1    +,,, "#  r   N)r@   typingr   r   r   r   r   docutilsr   sphinx.applicationr	   sphinx.environmentr
   sphinx.environment.collectorsr   r   rA   rI   r!   r   r   <module>rO      s    ? ? - - - - - - - - - - - - - -       % % % % % % / / / / / / > > > > > >, , , , ,, , , ,^v $sCx.      r   