
    O&ij                        d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	m
Z
mZmZmZ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 dd	lmZ dd
l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( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z<m=Z=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZD ddlEmFZF ddlGmHZH ddlImJZJ ddlImKZK 	 ddlLZLn# eM$ r dZLY nw xY werddlNmOZO  e-jP        eQ          ZR G d d          ZSdS )z$Builder superclass for all builders.    N)path)TYPE_CHECKINGAnyDictIterableListOptionalSequenceSetTupleTypeUnion)nodes)Node)DependencyList)Config)RemovedInSphinx70Warning)CONFIG_CHANGED_REASON	CONFIG_OKBuildEnvironment)ImageAdapter)SphinxError)EventManager)__)UnicodeDecodeErrorHandlerget_filetypeimport_objectloggingprogress_messagerststatus_iterator)
BuildPhase)bold)sphinx_domains)CatalogInfoCatalogRepositorydocname_to_domain)SEP	ensuredirrelative_urirelpath)ParallelTasksSerialTasksmake_chunksparallel_available)Tags)NoneType)
directives)roles)Sphinxc            	          e Zd ZU dZdZdZdZdZee	j
                 ed<   dZdZdZdZg Zee         ed<   dZdZdAd	d
deddfdZdeddfdZdedee	j
                 fdZdede	j
        fdZdBdZdBdZdAdededefdZdAdedededefdZdeee e         f         fdZ!dee         fdZ"de#ddfdZ$de%e&         deddfd Z'dBd!Z(d"ee         ddfd#Z)dBd$Z*dBd%Z+d&ee         ddfd'Z,dBd(Z-	 dCd*e e         d+e.e         d,eddfd-Z/dee         fd.Z0d*ee         ddfd/Z1d*ee         d0e2ddfd1Z3deddfd2Z4dede	j5        ddfd3Z6dDd4e e         d5e7e         d,eddfd6Z8d*e7e         ddfd7Z9d*e7e         d0e2ddfd8Z:d*e%e         ddfd9Z;dede	j5        ddfd:Z<dede	j5        ddfd;Z=dBd<Z>dBd=Z?d>ed?edefd@Z@dS )EBuilderz6
    Builds target formats from the reST sources.
     Ndefault_translator_classnoneFTsupported_image_typesappr4   envreturnc                    |j         | _         |j        | _        |j        | _        |j        | _        t	          | j                   || _        |-|| _        | j                            | j        | j	                   n#t          j        dt          d           d | _        |j        | _        |j        | _        |j        | _        | j                            | j                   | j                            | j                   | j                            d| j        z             | j                            d| j        z             i | _        d| _        d| _        d| _        d | _        d S )Nz=The 'env' argument to Builder will be required from Sphinx 7.   
stacklevelz	format_%sz
builder_%sr7   F)srcdirconfdiroutdir
doctreedirr)   r;   r<   set_versioning_methodversioning_methodversioning_comparewarningswarnr   eventsconfigtagsaddformatnameimagesimagedirimgpathparallel_okfinish_tasks)selfr;   r<   s      e/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/builders/__init__.py__init__zBuilder.__init__Q   sQ   j{j.$/"""?),DHH**4+A+/+BD D D D MY2qB B B BDH$'J!j(		dk"""	di   	kDK/000	lTY./// ') !!%    c                     t          j        dt          d           || _        | j                            | j        | j                   dS )zStore BuildEnvironment object.zPBuilder.set_environment is deprecated, pass env to 'Builder.__init__()' instead.r?   r@   N)rI   rJ   r   r<   rF   rG   rH   )rV   r<   s     rW   set_environmentzBuilder.set_environmentu   sb     6.1	> 	> 	> 	> &&t'='+'>	@ 	@ 	@ 	@ 	@rY   argsc                 @    | j         j                            |           S )zReturn a class of translator.)r;   registryget_translator_classrV   r\   s     rW   r_   zBuilder.get_translator_class~   s    x 55d;;;rY   c                 2     | j         j        j        | g|R  S )zReturn an instance of translator.

        This method returns an instance of ``default_translator_class`` by default.
        Users can replace the translator class with ``app.set_translator()`` API.
        )r;   r^   create_translatorr`   s     rW   rb   zBuilder.create_translator   s$     3tx 24?$????rY   c                     dS )zoLoad necessary templates and perform initialization.  The default
        implementation does nothing.
        N rV   s    rW   initzBuilder.init   	     	rY   c                     | j         j        r) t          | j         j        d                      | _        dS ddlm}  |            | _        dS )z&Return the template bridge configured.ztemplate_bridge settingr   )BuiltinTemplateLoaderN)rL   template_bridger   	templatessphinx.jinja2glueri   )rV   ri   s     rW   create_template_bridgezBuilder.create_template_bridge   sj    ;& 	5F]4;+F+DF F H HDNNN @?????2244DNNNrY   docnametypc                     t           )zReturn the target URI for a document name.

        *typ* can be used to qualify the link characteristic for individual
        builders.
        NotImplementedError)rV   rn   ro   s      rW   get_target_urizBuilder.get_target_uri   s
     "!rY   from_toc                 p    t          |                     |          |                     ||                    S )zReturn a relative URI between two source filenames.

        May raise environment.NoUri if there's no way to return a sensible URI.
        )r*   rs   )rV   rt   ru   ro   s       rW   get_relative_urizBuilder.get_relative_uri   s9    
 D//66 //C88: : 	:rY   c                     t           )aD  Return an iterable of output files that are outdated, or a string
        describing what an update build will build.

        If the builder does not output individual files corresponding to
        source files, return a string here.  If it does, return an iterable
        of those files that need to be written.
        rq   re   s    rW   get_outdated_docszBuilder.get_outdated_docs   s
     "!rY   c                     g S )z;Return list of paths for assets (ex. templates, CSS, etc.).rd   re   s    rW   get_asset_pathszBuilder.get_asset_paths   s    	rY   doctreec                    t          | j                  }|                    t          j                  D ]}d|d         v rd|d         vr| j        D ]"}|d                             |d          }|r n#t          |d                   }|                    |d                   }|r2t          
                    t          d          | j        |||           n0t          
                    t          d          | j        ||           ||d<   n|d         }|| j        j        vr| j        j        |         d	         | j        |<   dS )
z+Pick the best candidate for all image URIs.?
candidates*Nuriz2a suitable image for %s builder not found: %s (%s))locationz-a suitable image for %s builder not found: %s   )r   r<   findallr   imager:   getsortedget_original_image_uriloggerwarningr   rP   rQ   )rV   r|   rQ   nodeimgtype	candidate	mimetypes	image_uris           rW   post_process_imageszBuilder.post_process_images   s   dh''OOEK00 	C 	CDd<((($|,,,#9  G $\ 2 6 6w E EI   !'tL'9 : :I & = =d5k J JI  Lr +4 (5 (5'+y)YQU ' W W W W r*Y'Z'Z'+y)d ' L L L'U K	//%)X_Y%?%BDK	""5	C 	CrY   catalogsmessagec                      j         j        sd S dt          dt          f fd}t                              t          t          d                    |z              t          |t          d          dt          |           j
        j        |          D ],}|                     j         j         j         j                   -d S )Ncatr=   c                     t          | j        j        j                                      t
          j        t                    S N)r+   mo_pathr<   rB   replacer   sepr(   )r   rV   s    rW   cat2relpathz-Builder.compile_catalogs.<locals>.cat2relpath   s+    3;88@@3OOOrY   zbuilding [mo]: writing output... 	darkgreen)stringify_func)rL   gettext_auto_buildr%   strr   infor#   r   r!   lenr;   	verbositywrite_molanguage gettext_allow_fuzzy_translations)rV   r   r   r   catalogs   `    rW   compile_catalogszBuilder.compile_catalogs   s    {- 	F	P[ 	PS 	P 	P 	P 	P 	P 	P 	D-..//'9:::&x4H1I1I;'*8}}dh6H6AC C C 	K 	KG T[1![IK K K K	K 	KrY   c                 "   t          | j        | j        j        | j        j        | j        j                  }t          d          t          t          |j	                            z  }| 
                    t          |j	                  |           d S )Nzall of %d po files)r&   rB   rL   locale_dirsr   source_encodingr   r   listr   r   set)rV   repor   s      rW   compile_all_catalogszBuilder.compile_all_catalogs   sx     dk.E!%!5t{7RT T)**Sdm1D1D-E-EEc$-00':::::rY   specified_filesc                     dt           dt          t                    f fd}t                      }t          t          ||                    }t	           j         j        j         j        j         j        j	                  }|j
        D ]4}|j        |v r)|                                r|                    |           5t          d          t          |          z  }                     ||           d S )Nfpathr=   c                     j                             t          j        |                     }|rt	          |j        j                  S d S r   )r<   path2docr   abspathr'   rL   gettext_compact)r   rn   rV   s     rW   	to_domainz4Builder.compile_specific_catalogs.<locals>.to_domain   sD    h''U(;(;<<G ($+2MNNNtrY   z*targets for %d po files that are specified)r   r	   r   mapr&   rB   rL   r   r   r   r   domainis_outdatedrN   r   r   r   )rV   r   r   r   domainsr   r   r   s   `       rW   compile_specific_catalogsz!Builder.compile_specific_catalogs   s    	S 	Xc] 	 	 	 	 	 	 55c)_5566 dk.E!%!5t{7RT T} 	& 	&G~((W-@-@-B-B(W%%%ABBS]]Rh00000rY   c                     t          | j        | j        j        | j        j        | j        j                  }d |j        D             }t          d          t          |          z  }| 	                    ||           d S )Nc                 :    h | ]}|                                 |S rd   )r   ).0cs     rW   	<setcomp>z2Builder.compile_update_catalogs.<locals>.<setcomp>  s%    @@@!@A@@@rY   z,targets for %d po files that are out of date)
r&   rB   rL   r   r   r   r   r   r   r   )rV   r   r   r   s       rW   compile_update_catalogszBuilder.compile_update_catalogs   sw     dk.E!%!5t{7RT T@@t}@@@CDDs8}}Th00000rY   c                 x    |                                   |                     dt          d          d           dS )zBuild all source files.Nzall source filesall)summarymethod)r   buildr   re   s    rW   	build_allzBuilder.build_all	  s;    !!###

4$6!7!7
FFFFFrY   	filenamesc                    g }|D ]}t          j        t          j        |                    }t          j        |          s)t                              t          d          |           f|                    | j                  s)t                              t          d          |           | j	        
                    |          }|s)t                              t          d          |           |                    |           |                     |           |                     |dt          d          t          |          z             dS )z>Only rebuild as much as needed for changes in the *filenames*.z.file %r given on command line does not exist, zIfile %r given on command line is not under the source directory, ignoringz?file %r given on command line is not a valid document, ignoringspecificz%%d source files given on command line)r   r   N)r   normpathr   isfiler   r   r   
startswithrB   r<   r   appendr   r   r   )rV   r   docnamesfilenamern   s        rW   build_specificzBuilder.build_specific  sm    ! 	% 	%H}T\(%;%;<<H;x(( r"RSS') ) )&&t{33 r #?  @  @AIK K Kh''11G r #7  8  89AC C COOG$$$$&&y111

8JEFFXV 	 	X 	X 	X 	X 	XrY   c                 8   |                                   |                                 }t          |t                    r|                     dg|           dS t          |          }|                     |t          d          t          |          z             dS )z8Only rebuild what was changed or added since last build.__all__z0targets for %d source files that are out of date)r   N)r   ry   
isinstancer   r   r   r   r   )rV   to_builds     rW   build_updatezBuilder.build_update-  s    $$&&&))++h$$ 	&JJ	{H-----H~~HJJx!"TUU8}} %  & & & & &rY   updater   r   r   c                 2   |r?t                               t          t          d          | j        z            |z              t          j                    5  t          |                                           }ddd           n# 1 swxY w Y   t          |          }t                               t          t          d                    d           | j
                            | j        |          D ]}|                    |           t          |          |z
  }|r)t                               t          d          |           n't                               t          d                     |rdd	lm} t!          t          d
                    5  t#          t%          j        | j        |          d          5 }	t+          j        | j
        |	t*          j                   ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   t0          j        | j        _        t!          t          d                    5  | j
                                         ddd           n# 1 swxY w Y   n>|dk    r8|s6t                               t          t          d                               dS t0          j        | j        _        |r#|dgk    rt          |          | j
        j        z  }t<          r7| j        j        dk    r'| j         r | j        !                    d          | _"        nd| _"        tG                      | _$        | %                    |tM          |          |           | '                                 | j$                                         dS )zaMain build method.

        First updates the environment, and then calls :meth:`write`.
        zbuilding [%s]: Nz"looking for now-outdated files... Tnonlz%d foundz
none foundr   )ENV_PICKLE_FILENAMEzpickling environmentwbzchecking consistencyr   zno targets are out of date.r   r   writeF)(r   r   r#   r   rP   r   pending_warningsr   readr   r<   check_dependentsr;   rN   sphinx.applicationr   r   openr   joinrE   pickledumpHIGHEST_PROTOCOLr"   CONSISTENCY_CHECKphasecheck_consistency	RESOLVING
found_docsr/   parallelallow_parallelis_parallel_allowedrT   r-   rU   r   r   finish)
rV   r   r   r   updated_docnamesdoccountrn   outdatedr   fs
             rW   r   zBuilder.build:  sM     	KKKR 122TY>??'IJJJ %'' 	0 	0"499;;//	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 '((D@AABBNNNx00;KLL 	* 	*G  ))))'((83 	*KK:1111KK<(())) 	>>>>>>!"%;"<"<== F F$)DO5HII4PP FTUK!V-DEEEF F F F F F F F F F F F F F FF F F F F F F F F F F F F F F
 (9DHN!"%;"<"<== - -**,,,- - - - - - - - - - - - - - - !!(!D$A!B!BCCDDD#-
  	;YK//8}}tx'::H  	%$("3a"7"7D<O"7#x;;GDDD$D (MM 	

8T"233V<<< 	 	     sZ   "BB
B)H=&G/#H/G3	3H6G3	7HH
H
I))I-0I-c                    t                               t          t          d                    d           | j                            | j        |            | j        j        t          k    }| j        	                    |          \  }}}| j
                            d| j        |||          D ]1}|                    t          |          | j        j        z             2|s|r,|                    | j        j        | j        j        z             |rKt!          j        | j        j        d          | j        j        pdz   }t                               d|d           t                               t          d          t'          |          t'          |          t'          |                     |D ]=}| j
                            d| j        |           | j                            |           >t+          ||z            }| j
                            d	| j        |           t,          r>t'          |          d
k    r+| j        j        dk    r| j                            d          }	nd}	|	r"|                     || j        j                   n|                     |           | j        j        | j        j        vr4t=          d| j                            | j        j                  z            | j
                            d| j                  D ]}
|
|                     |
           t          | j        _        t+          |          S )z(Re-)read all files new or changed since last update.

        Store all environment docnames in the canonical format (ie using SEP as
        a separator in place of os.path.sep).
        zupdating environment: Tr   zenv-get-outdatedr7   z[%s] z %s added, %s changed, %s removedenv-purge-doczenv-before-read-docs   r   r   Fnproczroot file %s not foundzenv-updated)!r   r   r#   r   r<   
find_filesrL   config_statusr   get_outdated_filesrK   emitr   r   r   glob_toctreesr   r   config_status_extrar   	clear_docr   r/   r;   r   r   _read_parallel_read_serialroot_docall_docsr   doc2pathextend)rV   updatedaddedchangedremoveddocsreasonrn   r   par_okretvals              rW   r   zBuilder.read  s    	D45566TBBBDK...8)Y6"&("="=g"F"Fw K$$%75'SZ[[ 	< 	<DNN3t99tx'::;;;;  	IG 	INN481DH4GGHHH 	4+/0FKKx39r;FKKdK333B9::JJGc'll	< 	< 	<  	( 	(GK_dh@@@Hw'''' %'/**/8DDD  	#h--!"3"38IA8M8MX11&99FFF 	(0ABBBBh''';tx'8886"h//0DEEF G G G k&&}dh?? 	( 	(F!''' "+hrY   c                    t          |t          d          dt          |          | j        j                  D ]R}| j                            d| j        |           | j                            |           | 	                    |           Sd S )Nreading sources... purpler   )
r!   r   r   r;   r   rK   r   r<   r   read_doc)rV   r   rn   s      rW   r  zBuilder._read_serial  s    &x4I1J1JH'*8}}dh6HJ J 	# 	#G K_dh@@@Hw'''MM'""""	# 	#rY   r   c                 L   	 t          ||          }t          |t          d          dt          |           j        j                  	|D ]=} j                            d j        |            j        	                    |           >dt          t                   dt          f fd}dt          t                   dt          dd f	 fd}t          |          }|D ]}|                    |||           |                                 t                               d	           d S )
Nr  r  r   r
  r=   c                     j         j        _         | D ]}                    |           t          j        j        t          j                  S r   )r;   r<   r  r   dumpsr   )r
  rn   rV   s     rW   read_processz,Builder._read_parallel.<locals>.read_process  sI    8DHL ' 'g&&&&<&*ABBBrY   otherenvc                     t          j        |          }j                            | |j                   t                     d S r   )r   loadsr<   merge_info_fromr;   next)r
  r  r<   progressrV   s      rW   mergez%Builder._read_parallel.<locals>.merge  s=    ,x((CH$$T3999NNNNNrY   r7   )r.   r!   r   r   r;   r   rK   r   r<   r   r   r   bytesr,   add_taskr   r   r   )
rV   r   r   chunksrn   r  r  taskschunkr  s
   `        @rW   r   zBuilder._read_parallel  sX   Xu-- #62.C+D+Dh#&v;;0BD D   	( 	(GK_dh@@@Hw''''	CtCy 	CU 	C 	C 	C 	C 	C 	C	S	 	U 	t 	 	 	 	 	 	 	 e$$ 	7 	7ENN<6666 	

BrY   c                 v   | j                             |           t          j        | j        d          }t          j        |          r| j                             |           | j                             |          }t          | j	        j
        j        |          }| j	        j                            | j	        |          }t                      |j        _        t#          | j                   5  t%          j        || j
        j                  5  t)          j        dt-          |                     |                    |           |                                 |j        }ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   t5          t7          j                    t          j        | j                             |                              | j         j        |<   | j         j                                         | j         j                                          | !                    ||           dS )z>Parse a file and add/update inventory entries for the doctree.zdocutils.confsphinx)source_pathN)"r<   prepare_settingsr   r   rC   r   note_dependencyr  r   r;   rL   source_suffixr^   get_publisherr   settingsrecord_dependenciesr$   r    default_rolecodecsregister_errorr   
set_sourcepublishdocumentmaxtimegetmtimer  	temp_dataclearref_contextwrite_doctree)rV   rn   docutilsconfr   filetype	publisherr|   s          rW   r  zBuilder.read_doc  s\   !!'*** y??;|$$ 	3H$$\2228$$W-- =xHHH%33DHhGG	 2@1A1A	.DH%% 	) 	)s'7AY'Z'Z 	) 	)!(,Eg,N,NOOO  X 666(G	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) &))-tx7H7H7Q7Q)R)R&T &T'" 	  """""$$$7G,,,,,s7   - FAE-!F-E1	1F4E1	5FFFc                    d|_         d|_        |j                                        |_        d|j        _        d|j        _        d|j        _        t          j        | j	        |dz             }t          t          j        |                     t          |d          5 }t          j        ||t          j                   ddd           dS # 1 swxY w Y   dS )zWrite the doctree to a file.Nz.doctreer   )reportertransformerr)  copywarning_streamr<   r*  r   r   rE   r)   dirnamer   r   r   r   )rV   rn   r|   doctree_filenamer   s        rW   r7  zBuilder.write_doctree  s	     " #+0022*.'#/3,9T_g
6JKK$,/00111"D)) 	=QKF$;<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   !CCCbuild_docnamesr   c                 z   ||dgk    r| j         j        }|dk    r t          |          t          |          z  }nt          |          }t                              t          d          d                    t          |                               t          |          D ]T}| j         j	        
                    |t                                D ]%}|| j         j        v r|                    |           &U|                    | j        j                   t          t          d                    5  |                     |           d d d            n# 1 swxY w Y   | j        r3|                     t          |          | j        j        dz
             d S |                     t          |                     d S )Nr   r   zdocnames to write: %sz, zpreparing documentsr   r   )r<   r   r   r   debugr   r   r   r   files_to_rebuildr   rN   rL   r  r   prepare_writingrT   _write_parallelr;   r   _write_serial)rV   rB  r   r   r   rn   
tocdocnames          rW   r   zBuilder.write   s   !^	{%B%B!X0NX>**S1A-B-BBHH>**HR/00$))F8<L<L2M2MNNN H~~ 	- 	-G"h7;;GSUUKK - -
!444LL,,,- 	T[)***b!67788 	+ 	+  ***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+  	1   !1!1'+x'81'< ! > > > > > vh//00000s   2EEEc           	         t          j                    5  t          |t          d          dt	          |          | j        j                  D ]u}t          j        | j        _	        | j
                            ||           }t          j        | j        _	        |                     ||           |                     ||           v	 d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r!   r   r   r;   r   r"   r   r   r<   get_and_resolve_doctreeWRITINGwrite_doc_serialized	write_doc)rV   r   rn   r|   s       rW   rH  zBuilder._write_serial=  s   %'' 	1 	1*8R8L5M5M{+.x==$(:LN N 1 1!+!5(::7DII!+!3))'7;;;w00001	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   B.CCCc                     dt           t          t          t          j        f                  dd f fd}|d         |dd          }}t
          j         j        _         j	        
                    |           }t
          j         j        _                             ||                                ||           t          |          }t          ||          }t!          |t#          d          dt%          |           j        j                  dt           t          t          t(          f                  d	t(          dd ffd
}t
          j         j        _        |D ]h}	g }
|	D ]J} j	        
                    |           }                     ||           |
                    ||f           K|                    ||
|           i|                                 t0                              d           d S )Nr
  r=   c                 p    t           j        j        _        | D ]\  }}                    ||           d S r   )r"   rL  r;   r   rN  )r
  rn   r|   rV   s      rW   write_processz.Builder._write_parallel.<locals>.write_processH  sD    '/DHN$( 1 1 w00001 1rY   r   r   r   r   r\   resultc                 &    t                     d S r   )r  )r\   rR  r  s     rW   on_chunk_donez.Builder._write_parallel.<locals>.on_chunk_done]  s    NNNNNrY   r7   )r   r   r   r   r0  r"   r   r;   r   r<   rK  rL  rM  rN  r,   r.   r!   r   r   r   r1   r   r  r   r   r   )rV   r   r   rQ  	firstnamer|   r   r  rT  r!  argrn   r  s   `           @rW   rG  zBuilder._write_parallelG  s   	1U3+>%? @ 	1T 	1 	1 	1 	1 	1 	1 'qk8ABB<8	#-(229dCC#+!!)W555y'***e$$Xu-- #62.B+C+C[#&v;;0BD D	U3=%9 : 	H 	QU 	 	 	 	 	 	 $- 	> 	>EC  / /(::7DII))'7;;;

GW-....NN=#}==== 	

BrY   c                     t           )z?A place where you can add logic before :meth:`write_doc` is runrq   )rV   r   s     rW   rF  zBuilder.prepare_writingm      !!rY   c                     t           )z5Where you actually write something to the filesystem.rq   rV   rn   r|   s      rW   rN  zBuilder.write_docq  rX  rY   c                     dS )zoHandle parts of write_doc that must be called in the main process
        if parallel build is active.
        Nrd   rZ  s      rW   rM  zBuilder.write_doc_serializedu  rg   rY   c                     dS )zWFinish the building process.

        The default implementation does nothing.
        Nrd   re   s    rW   r   zBuilder.finish{  	    
 	rY   c                     dS )zQCleanup any resources.

        The default implementation does nothing.
        Nrd   re   s    rW   cleanupzBuilder.cleanup  r]  rY   optiondefaultc                     	 | j         d|}t          | j        |          S # t          $ r |d|}t          | j        |          cY S w xY w)zReturn a builder specific option.

        This method allows customization of common builder settings by
        inserting the name of the current builder in the option key.
        If the key does not exist, use default as builder name.
        _)rP   getattrrL   AttributeError)rV   r`  ra  optnames       rW   get_builder_configzBuilder.get_builder_config  sn    	1!%FF3G4;000 	1 	1 	1!(&&1G4;00000	1s    # &AAr   )r=   N)Nr   )r   )A__name__
__module____qualname____doc__rP   rO   epilogr8   r   r   NodeVisitor__annotations__rG   rH   r   use_message_catalogr:   r   r   supported_remote_imagessupported_data_uri_imagesr   rX   r[   r   r_   rb   rf   rm   rs   rw   r   r   ry   r{   r   r   r   r%   r   r   r   r   r   r   r   r	   r   r   r  intr   r  r0  r7  r
   r   rH  rG  rF  rN  rM  r   r_  rg  rd   rY   rW   r6   r6   0   s         
 DF F 9=d5#45<<<N (*49)))# %"& "&H "&+; "&t "& "& "& "&H@#3 @ @ @ @ @<# <$u7H2I < < < <@s @u/@ @ @ @ @   5 5 5 5" "c " "s " " " ": :c :s : : : : : :"5hsm);#< " " " "c    C4 CD C C C CBK[)9 KC KD K K K K; ; ; ;1c 1t 1 1 1 1&1 1 1 1G G G GXS	 Xd X X X X<& & & & U]D! D! D!08D!NQD!	D! D! D! D!L> d3i >  >  >  > @#T#Y #4 # # # # tCy            D"- "- "- "- "- "-H=S =5> =d = = = =$1 1HSM 1Xc] 1\_ 1os 1 1 1 1:1hsm 1 1 1 1 1$ $c $d $ $ $ $L"C "T " " " "" "u~ "$ " " " "C %. T          1 1s 1s 1 1 1 1 1 1rY   r6   )Trk  r,  r   r2  rI   osr   typingr   r   r   r   r   r	   r
   r   r   r   r   docutilsr   docutils.nodesr   docutils.utilsr   sphinx.configr   sphinx.deprecationr   sphinx.environmentr   r   r   !sphinx.environment.adapters.assetr   sphinx.errorsr   sphinx.eventsr   sphinx.localer   sphinx.utilr   r   r   r   r   r    r!   sphinx.util.build_phaser"   sphinx.util.consoler#   sphinx.util.docutilsr$   sphinx.util.i18nr%   r&   r'   sphinx.util.osutilr(   r)   r*   r+   sphinx.util.parallelr,   r-   r.   r/   sphinx.util.tagsr0   sphinx.util.typingr1   r#  r2   r3   multiprocessingImportErrorr   r4   	getLoggerrh  r   r6   rd   rY   rW   <module>r     s{   * *          ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !             ) ) ) ) ) )             7 7 7 7 7 7 Q Q Q Q Q Q Q Q Q Q : : : : : : % % % % % % & & & & & &      A A A A A A A A A A A A A A A A A A . . . . . . $ $ $ $ $ $ / / / / / / N N N N N N N N N N D D D D D D D D D D D D \ \ \ \ \ \ \ \ \ \ \ \ ! ! ! ! ! ! ' ' ' ' ' '               OOO  *)))))) 
	8	$	$g	1 g	1 g	1 g	1 g	1 g	1 g	1 g	1 g	1 g	1s   C C! C!