
    -Ph#                       U d Z ddlmZ ddlZddlZddlZddlZddl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 ddlm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mZ ddlmZ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/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddlImJZJ ddlKmLZL dd lMmNZN dd!lOmPZPmQZQ dd"lRmSZS dd#lTmUZU dd$lVmWZW dd%lXmYZY dd&lZm[Z[m\Z\m]Z] dd'l^m_Z_m`Z`maZambZbmcZcmdZd dd(lemfZf dd)lgmhZh er4dd*limjZjmkZk dd+lmlZlmmZm dd,lnmoZo dd-lpmqZq dd.lrmsZs dd/l-mtZt dd0lumvZv dd1lwmxZx d2Zy eHjz        e{          Z| ej}        d3          Z~eeee2         eeeee3         f                  ef         Zd4ed5<   d^d9Z G d: d;e&          Zd_dAZd_dBZd`dJZdadKZd_dLZd_dMZd_dNZd_dOZd_dPZdbdRZdcdTZe(dUdVfe*dWdVfdXZdYedZ<   ddd]ZdS )ezSeveral HTML builders.    )annotationsN)Path)NoneType)TYPE_CHECKINGquote)nodes)	Publisher)OptionParser)DocTreeInputStringOutput)__display_version__package_dir)version_info)bold)Builder)_CascadingStyleSheet_file_checksum_JavaScript)	BuildInfo)ENUM_deprecation_warning)Index
IndexEntry)ImageAdapter)IndexEntries)document_tocglobal_toctree_for_doc)ConfigError
ThemeError)PygmentsBridge)___)js_index)HTMLThemeFactory)logging)_StrPath)_format_rfc3339_microseconds)is_url)progress_messagestatus_iterator)new_document)
copy_asset)format_date)InventoryFile)DOTFILESMatcherpatmatch)SEP_last_modified_time_relative_pathcopyfile	ensuredirrelative_uri)
HTMLWriter)HTML5Translator)IteratorSet)Any	TypeAlias)Node)Reader)Sphinx)Config)BuildEnvironment)ExtensionMetadatazobjects.invz[
]+r?   DOMAIN_INDEX_TYPElocale
str | Nonereturnc                6    | r|                      dd          S dS )zdConvert a locale string to a language tag (ex. en_US -> en-US).

    refs: BCP 47 (:rfc:`5646`)
    r#   -N)replace)rG   s    ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/builders/html/__init__.pyconvert_locale_to_language_tagrN   a   s%    
  ~~c3'''t    c                  H    e Zd ZU dZdZdZ ed          ZeZ	dZ
dZdZdZeZded<   dZdZg dZdZdZd	ZdZdZd
ZdZd
ZdZdZded<   g Zded<   dw fdZdxdZ dydZ!dzdZ"d{dZ#d|dZ$dxd Z%dxd!Z&e'd}d#            Z(dxd$Z)d~d'Z*e'dd)            Z+dxd*Z,d~d+Z-e'dd-            Z.d{d.Z/dd0Z0dd4Z1dd7Z2dd<Z3dxd=Z4dd@Z5ddAZ6dxdBZ7 e8 edC                    dxdD            Z9dxdEZ: e8 edF                    dxdG            Z;dxdHZ<dxdIZ=dxdJZ>dxdKZ?dxdLZ@dxdMZAdxdNZBddPZCddQZDdxdRZEdxdSZFdxdTZGdxdUZHdxdVZIdxdWZJd fdYZKddZZLdd]ZM	 ddd`ZNddcZOddeZPddgZQdddjZR	 ddhdhdlddqZSddrZTdxdsZU e8 edt                    dxdu            ZVdxdvZW xZXS )StandaloneHTMLBuilderzBuilds standalone HTML docs.htmlz!The HTML pages are in %(outdir)s.Tz.htmlr>   indexer_format)zimage/svg+xmlz	image/pngz	image/gifz
image/jpegzsearchindex.jsF strimgpathzlist[DOMAIN_INDEX_TYPE]domain_indicesapprB   envrD   rI   Nonec           	     @   t                                          ||           t          | j        dz            | _        t          | j        dz            | _        t          | j        dz            | _        t          | j        dz            | _        g | _        g | _	        t          j        j                            d          }t          ||j        t!          |           t"          t%          d          	          }|                    dd
           || _        d S )N_static_sources
_downloads_imagesrestructuredtext)parser_nameunicodeencoding)readerparserwritersource_classdestinationT)output_encoding	traceback)super__init__r   outdir_static_dir_sources_dir_downloads_dir_images_dir
_css_files	_js_filesdocutilsreadersdoctreerA   r
   rf   r:   r   r   get_settings
_publisher)selfrX   rY   re   pub	__class__s        rM   rm   zStandaloneHTMLBuilder.__init__   s   c"""  i 788 z!9::"4;#=>>i 788 79 -/ (0'7'?'F'F* (G (
 (
 =d##%$i888
 
 
 	dCCCrO   c                   |                                  | _        d| _        i | _        d| _        |                                  |                                  |                                  |                                  | 	                    dd          }||| _
        | 	                    dd          }||| _        n| j
        | _        | 	                    dd          | _        d S )Nr_   rT   file_suffixrR   link_suffix	use_index)create_build_info
build_infoimagedir
secnumberscurrent_docnameinit_templatesinit_highlighterinit_css_filesinit_js_filesget_builder_config
out_suffixr   r   )rz   html_file_suffixhtml_link_suffixs      rM   initzStandaloneHTMLBuilder.init   s    0022!68$&22=&II'.DO22=&II'/D#D00fEErO   r   c                T    t          | j        | j        t          dh                    S )NrR   )r   configtags	frozensetrz   s    rM   r   z'StandaloneHTMLBuilder.create_build_info   s"    diF81D1DEEErO   Path | Nonec                v   | j         j        D ]6}t          || j         j        dd          }|                                r|c S 7t          j        d| j         j        dd          }|                                r|S t          t          j        ddd| j         j        d          }|                                r|S d S )NLC_MESSAGESz	sphinx.jsrG   sharesphinx)	r   locale_dirsr   languageis_filer   joinpathsysprefix)rz   dir_js_files      rM   _get_translations_jsz*StandaloneHTMLBuilder._get_translations_js   s    K+ 	 	D4!5}kRRG    &dk*M;
 
 ?? 	NJ8T[5I;
 
 ?? 	NtrO   Iterator[str]c              #     K   t          | j        j        t                    r| j        j        V  d S | j        j        | j        j        E d {V  d S | j        r| j        j        E d {V  d S dV  d S )Nzdefault.css)
isinstancer   
html_stylerU   themestylesheetsr   s    rM   _get_style_filenamesz*StandaloneHTMLBuilder._get_style_filenames   s      dk,c22 	 +(((((([#/{----------Z 	 z----------rO   'tuple[str, dict[str, str | int | bool]]c                2    | j         j        | j         j        fS N)r   
html_themehtml_theme_optionsr   s    rM   get_theme_configz&StandaloneHTMLBuilder.get_theme_config   s    {%t{'EEErO   c                   t          | j                  }|                                 \  }}|                    |          | _        || _        |                                  | j                            | | j                   d S r   )	r&   rX   r   creater   theme_optionscreate_template_bridge	templatesr   )rz   theme_factory
theme_namer   s       rM   r   z$StandaloneHTMLBuilder.init_templates   sv    (22$($9$9$;$;!
M"))*55
*##%%%D$*-----rO   c                <   | j         j        | j         j        }n| j        r| j        j        pd}nd}t	          d|          | _        | j        r| j        j        }nd }|  |4t	          d|          | _        | j        	                    ddd           d S d | _        d S )Nnoner   rR   pygments_dark.cssz(prefers-color-scheme: dark)pygments_dark_css)mediaid)
r   pygments_styler   pygments_style_defaultr"   highlighterpygments_style_darkdark_highlighterrX   add_css_file)rz   style
dark_styles      rM   r   z&StandaloneHTMLBuilder.init_highlighter   s    ;%1K.EEZ 	J5?EEE)&%88: 	7JJJ4!$26:$F$FD!H!!#4& "      %)D!!!rO   list[_CascadingStyleSheet]c                X    t          t          | j        j         dd           | j        S )Nz
.css_files	   r   remove)r   __name__r|   rs   r   s    rM   	css_fileszStandaloneHTMLBuilder.css_files	  s8    0<<<V	
 	
 	
 	
 rO   c                h   g | _         |                     dd           |                                 D ]}|                     |d           | j        j        j        D ]\  }} | j        |fi | |                     dd          D ])\  }}|                    dd            | j        |fi | *d S )Npygments.css   priorityr   rR   r      )rs   r   r   rY   	_registryr   r   
setdefaultrz   filenameattrss      rM   r   z$StandaloneHTMLBuilder.init_css_files  s    .37771133 	6 	6Hh5555#x1; 	1 	1OHeDh00%0000#66{FKK 	1 	1OHeZ---Dh00%0000	1 	1rO   r   kwargsc                    d|vrt          j        d|          }t          |fi |x}| j        vr| j                            |           d S d S N://r\   )	posixpathjoinr   rs   appendrz   r   r   assets       rM   r   z"StandaloneHTMLBuilder.add_css_file  se       ~i::H)(==f===EdoUUO""5))))) VUrO   list[_JavaScript]c                \    | j         j         d}t          t          |d           | j        S )Nz.script_filesr   r   )r|   r   r   rt   )rz   canonical_names     rM   script_filesz"StandaloneHTMLBuilder.script_files&  s2     N3BBBX~fEEEE~rO   c                   g | _         |                     dd           |                     dd           |                     dd           | j        j        j        D ]\  }} | j        |pdfi | |                     dd          D ]+\  }}|                    d	d
            | j        |pdfi | ,|                                 r|                     d           d S d S )Nzdocumentation_options.jsr   r   zdoctools.jszsphinx_highlight.jsrT   js_filesrR   r   r   translations.js)rt   add_js_filerY   r   r   r   r   r   r   s      rM   r   z#StandaloneHTMLBuilder.init_js_files,  s'   3cBBB555.===#x1: 	6 	6OHeDX^55u5555#66z6JJ 	6 	6OHeZ---DX^55u5555$$&& 	0./////	0 	0rO   c                    |rd|vrt          j        d|          }t          |fi |x}| j        vr| j                            |           d S d S r   )r   r   r   rt   r   r   s       rM   r   z!StandaloneHTMLBuilder.add_js_file<  sl     	;X-- ~i::H 44V444ET^KKN!!%((((( LKrO   rH   c                   |                      dd          }||S t          | j        j        j                  }t          |          dk    r|d         S t          |          dk    r|                    d           |d         S d S )Nmath_rendererrR      r      mathjax)r   listrY   r   html_inline_math_rendererslenr   )rz   name	rendererss      rM   math_renderer_namez(StandaloneHTMLBuilder.math_renderer_nameC  s    &&??K TX/JKKI9~~"" |#Y1$$  +++ |# trO   c              #    K   | j         dz  }	 t          j        |          }| j        |k    r|                    d          }	 t          j        ||           | j                            |           t          d          }t          
                    t          t          d                    |z              n# t          $ r Y nw xY w| j        j        E d {V  d S nJ# t          $ r2}t                              t          d          |           Y d }~nd }~wt          $ r Y nw xY w| j        rt%          | j                                        dz            }	 t)          |          }||k    rOt          
                    t          d          t          d          z   | j                                                   n# t,          $ r Y nw xY wd}| j        j        D ] }|| j        j        vr t                              d	|           |V  1|                     |          }		 t)          |	          }
n# t          $ r d}
Y nw xY w	 t)          | j                            |                    }t7          ||          }||
k    rJt                              d
|	t9          |
          t9          |          |t9          |                     |V  # t          $ r Y w xY wd S )N
.buildinfoz.buildinfo.bakz9build_info mismatch, copying .buildinfo to .buildinfo.bakzbuilding [html]: z"Failed to read build info file: %ri@B zOtemplate %s has been changed since the previous build, all docs will be rebuiltr   z![build target] did not in env: %rz?[build target] target_name %r(%s), template(%s), docname %r(%s))rn   r   loadr   	with_nameshutilmovedumpr$   loggerinfor   OSErrorrY   
found_docs
ValueErrorwarningr   intnewest_template_mtimer5   newest_template_name	Exceptionall_docsdebugget_output_pathdoc2pathmaxr)   )rz   build_info_pathr   build_info_backupmsgexctemplate_mtime	old_mtimedocnametarget_nametarget_mtime	doc_mtimesrcmtimes                rM   get_outdated_docsz'StandaloneHTMLBuilder.get_outdated_docsW  so     +4	"88J *,,$3$=$=>N$O$O!
EK1BCCCO((999
 S C KKR(;%<%< = = CDDDD    D  8........! -  	J 	J 	JNN2BCCSIIIIIIII 	 	 	D	, > 	 !E!E!G!G%!OPPN/@@	
 "I--KK0117 
 ;;==       Nx* 	 	Gdh///@'JJJ..w77K!2;?? ! ! ! !/0A0A'0J0JKK	y.99l**LLY#4\BB4^DD4Y??   "MMM   /	 	sf   C /B9 9
CC
D%((DD%$D%F> >
G
G#H33IIBK
KK	list[str]c                4    | j         j        | j         j        z   S r   )r   html_extra_pathhtml_static_pathr   s    rM   get_asset_pathsz%StandaloneHTMLBuilder.get_asset_paths  s    {*T[-IIIrO   nodeNode | Nonedict[str, str]c                    |ddiS t          d          }|                    |           | j                            |           | j                                         | j        j        j        S )z$Utility: Render a lone doctree node.NfragmentrT   z<partial node>)r-   r   ry   
set_sourcepublishrg   parts)rz   r  docs      rM   render_partialz$StandaloneHTMLBuilder.render_partial  sj    <##+,,

4""3'''!!!%++rO   docnamesSet[str]c                *   d | _         | j        r_ddlm} | j        j        p| j        j        } || j        || j        j        | j        j	                  | _         | 
                    |           t          |           | _        t          j                    5  t          j        dt                      t#          | j        j        | j        fd                                          | _        d d d            n# 1 swxY w Y   t+          | j        j                  | j        _        g | _        | j        j        x}rt5          |t*                    sd}t7          |          }nd}| j        j                                        D ]d}|j        D ]Z}|j         d|j         }|r||vr ||                                           \  }	}
|	r| j        !                    |||	|
f           [e| j        j"        x}7tG          |ptI          d	          | j        j        | j        j%         
          }nd }| j        j&        pd}| j        j'        pd}tQ          |          stR          j*        +                    |          }tQ          |          stR          j*        +                    |          }| j        ,                                | _-        g }| j.        r3|!                    dtI          d          dtI          d          f           | j        D ]1\  }}}}|j/        r#|!                    ||j0        d|j/        f           2| j        j1        j2        D ]\  }} | j3        |fi | | j        j1        j4        D ]\  }} | j5        |pdfi | tm          tn          8                    | j9                            | _:        tm          tn          8                    | j;                            | _<        tm          | =                                          }i d| j>        d| j        j?        dt          A                    d| j        jB                  d| j        jC        d|d| j        jD        d| j        jE        d| j        jE        d| j        jF        d| j        jG        d| j        jH        d| j        jI        d| j        jJ        d| j        jK        d| j        jL        d| j        jM        d | j        jN        i d!| jO        d"| jP        d#| j;        d$t          | j        j                  d%| j9        d&t          d't          d(t          jU        d d)         d*|d+|d,| j        d-g d.|d/tI          d0          | j        j?        z  d1|d2d| _V        | jW        rI| xjV        d3 | jW        X                    | jY                  Z                                D             z  c_V        | xjV        | j        j[        z  c_V        | j\        rt          | j^                   d S d S )4Nr   )IndexBuilderignore)categoryT)defaults
componentsread_config_filesFrK   z	%b %d, %Y)r   
local_timerT   genindexzGeneral IndexIindexembeddedprojectreleaseversionlast_updated	copyright
master_docroot_docuse_opensearch	docstitle
shorttitleshow_copyrightshow_search_summaryshow_sphinx
has_sourceshow_sourcesourcelink_suffixr~   r   r   r   r   sphinx_versionsphinx_version_tupledocutils_version_info   stylesrellinksbuilderparentslogo_urllogo_altz
Logo of %sfavicon_urlhtml5_doctypec                     i | ]\  }}d | |S )theme_ ).0keyvals      rM   
<dictcomp>z9StandaloneHTMLBuilder.prepare_writing.<locals>.<dictcomp>5  s4     # # #C # # #rO   )_indexersearchsphinx.searchr(  r   html_search_languager   rY   html_search_optionshtml_search_scorerload_indexerr:   	docwriterwarningscatch_warningsfilterwarningsDeprecationWarningr   settingsget_default_valuesdocsettingsboolhtml_compact_listscompact_listsrW   html_domain_indicesr   r   domainssortedindicesr   generater   html_last_updated_fmtr/   r#   html_last_updated_use_utc	html_logohtml_faviconr*   ospathbasenamecollect_relations	relationsr   	shortname	localnamer   r   r   r   r   r   dictfromkeysrs   _orig_css_filesrt   _orig_js_filesr   r2  r3  return_codes_resubr4  r5  r7  r9  html_use_opensearch
html_titlehtml_short_titlehtml_show_copyrighthtml_show_search_summaryhtml_show_sphinxhtml_copy_sourcehtml_show_sourcelinkhtml_sourcelink_suffixr   r   rN   r   rC  ru   __version_info__globalcontextr   get_optionsr   itemshtml_context
copysourcer8   rp   )rz   r%  r(  langindices_configcheck_namesdomain	index_cls
index_namecontentcollapselu_fmtr6  logofaviconrH  _content	_collapsecss_filenamer   js_filenamerG  s                         rM   prepare_writingz%StandaloneHTMLBuilder.prepare_writing  sX   ; 
	(222222;3Kt{7KD'</.	 DL h'''#D))$&& 	# 	##H7IJJJJ %1* N,"&% % % ! ""	 		# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# *.dk.L)M)M& !![<<> 	nd33 $"!*>!:!:#(*1133  !'  I$*K!B!B).!B!BJ" !z'G'G (1	&(9(9(B(B(D(D%GX +22&%#$	4     k77FD&(!K..-#{DD  LL  L {$*+*0bd|| 	*7##D))Dg 	0g&&w//G335546> 	OOOZ?););S!G**MNNN:>:M 	 	6J	8Y" ''	!    $(8#5#? 	5 	5L%Dl44e4444"&("4"= 	9 	9KD[.B88%8888  $DMM$/$B$BCC"4==#@#@AAd//1122"
"
t{*"
 **2t{/BCC"
 t{*	"

 L"
 ."
 $+."
 ,"
 dk="
 /"
 $+6"
 dk="
 "4;#G"
 4;7"
 $+6"
  4;;!"
"  !C#"
 "
$ 4?%"
& 4+'"
( DN)"
* 6t{7KLL+"
, -"
. 1/"
0 #N1"
2 $X%>rr%B3"
4 f5"
6 7"
8 ty9"
: r;"
< ="
> ,$+*==?"
@ 7A"
B TC"
 "
F : 	 # # $
 6 6t7I J J P P R R# # #  	dk66? 	)d'(((((	) 	)s   AC66C:=C:r  bodymetatagsdict[str, Any]c                   dx}}g }| j         d         dd         }| j                            |          }| j        j        }	|r|d         r	 |                     ||d                   |                     |	|d                            d         d}|                    |d         |d         dt          d          f           n# t          $ r d}Y nw xY w|r|d         r	 |                     ||d                   |                     |	|d                            d         d}|                    |d         |d         d	t          d
          f           n# t          $ r d}Y nw xY w|r|d         rt          j        t                    5  |                    |                     ||d                   |                     |	|d                            d         d           ddd           n# 1 swxY w Y   | j                            |d                   }|r|d         |r|                                 |                                 | j        j                            |          }
|
r|                     |
          d         nd}t          | j                            |d                    t#          |          d         }| j        j        r%||z   }|| j        j        k    r|| j        j        z  }nd}| j        j                            |          }t-          | j        || j                  }|                     |          d         }||||||||||| j        j        |         dk    |dS )z1Collect items for the template context of a page.NrH  r   title)linkr  Nnextr   Ppreviousr   rT   Fr  )rJ  prevr  r  metar  r  rH  
sourcenametocdisplay_tocpage_source_suffix)r  ru  getrY   titlesget_relative_urir$  r   r#   KeyError
contextlibsuppresspopreverse
longtitlesrU   r  r   r   r  r  metadatar   r   toc_num_entries)rz   r  r  r  r  r  rJ  rH  relatedr  
title_noder  source_suffixr  r  self_tocr  s                    rM   get_doc_contextz%StandaloneHTMLBuilder.get_doc_context?  s    t%j1!!!4.$$W-- 	wqz 	 11'71:FF!00
1CDDWM  T']C6 KLLLL    
	wqz 
		 11'71:FF!00
1CDDWM  T']C: OPPPP      	5'!* 	5$X..   11'71:FF!00
1CDDWM                     n((44G  	5'!* 	5  	 KKMMM X(,,W55
<FN##J//88B DH--gu==>>s7||~~N ;' 	 =0J BBBdk@@
J x $$W--  '49==!!(++J7   $ H4W=A"/
 
 	
s9   A6C CC!A6E E'&E'AG11G58G5c                    | j                             | j                   | j                             | j                   | j                             | j                   | j                                          d S r   )finish_tasksadd_taskcopy_download_filescopy_static_filescopy_extra_filesr   r   s    rM   copy_assetsz!StandaloneHTMLBuilder.copy_assets  sk    ""4#;<<<""4#9:::""4#8999     rO   rw   nodes.documentc                   t          d          }| j        |_        | j        j                            |i           | _        | j        j                            |i           | _        t          | 
                    |          d          | _        t          | 
                    |          d          | _        || _        | j                            ||           | j                                         | j        j        d         }| j        j        }|                     |||          }| j        j        |d<   |                     |||           d S )Nutf-8rc   r_   r^   r  has_maths_elements)	event_arg)r   rd  rb  rY   toc_secnumbersr  r   toc_fignumbers
fignumbersr9   get_target_urirV   dlpathr   r]  writeassemble_partsr"  
clean_metar  _has_maths_elementshandle_page)rz   r  rw   ri   r  r  ctxs          rM   	write_doczStandaloneHTMLBuilder.write_doc  s(   "G444+(155grBB(155grBB#D$7$7$@$@)LL"4#6#6w#?#?NN&Wk222%%'''~#J/>,""7D(;;$(N$F !#99999rO   c                4   t          |                     |          | j                  | _        |                     |           | j        j                            |          }|r|                     |          d         nd}| 	                    |||           d S )Nr  rT   )
r9   r  r   rV   post_process_imagesrY   r  r  r$  
index_page)rz   r  rw   r  r  s        rM   write_doc_serializedz*StandaloneHTMLBuilder.write_doc_serialized  s    #D$7$7$@$@$-PP  )))X(,,W55
<FN##J//88B%00000rO   c                d   | j                             | j                   | j                             | j                   | j                             | j                   | j                             | j                   | j                             | j                   |                                  d S r   )r  r  gen_indicesgen_pages_from_extensionsgen_additional_pagescopy_image_fileswrite_buildinfohandle_finishr   s    rM   finishzStandaloneHTMLBuilder.finish  s    ""4#3444""4#ABBB""4#<===""4#8999""4#7888 	rO   zgenerating indicesc                d    | j         r|                                  |                                  d S r   )r   write_genindexwrite_domain_indicesr   s    rM   r  z!StandaloneHTMLBuilder.gen_indices  s:     > 	"!!! 	!!#####rO   c                    | j                             d          D ]"}|D ]\  }}}|                     |||           #d S )Nhtml-collect-pages)eventsemitr  )rz   pagelistpagenamecontexttemplates        rM   r  z/StandaloneHTMLBuilder.gen_pages_from_extensions  sb    (()=>> 	> 	>H/7 > >+'8  7H====>	> 	>rO   zwriting additional pagesc                   | j         j                                        D ]9\  }}t                              d|d           |                     |i |           :| j        r3t                              dd           |                     di d           | j         j        rF| j        rAt                              dd           |                     di d	| j        d	z  
           d S d S d S )N%s Tnonlzsearch rW  zsearch.htmlzopensearch 
opensearchzopensearch.xml)outfilename)	r   html_additional_pagesr  r   r   r  rW  r~  ro   )rz   r  r  s      rM   r  z*StandaloneHTMLBuilder.gen_additional_pages  s    #'+"C"I"I"K"K 	5 	5HhKKxdK333Xr84444 ; 	:KK	K---Xr=999 ;* 	t{ 	KKDK111  ,/??	      	 	 	 	rO   c                   t          | j                                      |           }d |D             }||| j        j        d}t
                              dd           | j        j        rl|                     d|d           |                     d|d	           t          ||d
          D ])\  \  }}}||||d}|                     d|z   |d           *d S |                     d|d	           d S )Nc                F    g | ]\  }}t          d  |D                       S )c              3  H   K   | ]\  }\  }}}d t          |          z   V  dS )r   N)r   )rR  r#   subitemss      rM   	<genexpr>zBStandaloneHTMLBuilder.write_genindex.<locals>.<listcomp>.<genexpr>  s9      EE&9a)9!XqCMM!EEEEEErO   )sum)rR  _kentriess      rM   
<listcomp>z8StandaloneHTMLBuilder.write_genindex.<locals>.<listcomp>  sC     
 
 
G EEWEEEEE
 
 
rO   )genindexentriesgenindexcountssplit_indexz	genindex Tr  r/  zgenindex-split.htmlzgenindex-allzgenindex.html)strict)rS  r  countr  z	genindex-zgenindex-single.html)	r   rY   create_indexr   html_split_indexr   r   r  zip)rz   r/  indexcountsgenindexcontextrS  r  r   r  s           rM   r  z$StandaloneHTMLBuilder.write_genindex  sB     ))66t<<
 
'
 
 
  ();7
 

 	Kd+++;' 	KZ:OPPP^_oNNN),X{4)P)P)P Q Q%g&"'/	    s!2C9OPPPPQ Q Z/JJJJJrO   c                    | j         D ]F\  }}}}|j        ||d}t                              d|d           |                     ||d           Gd S )N)
indextitler  collapse_indexr  Tr  zdomainindex.html)rW   rw  r   r   r  )rz   r  r  r  r  index_contexts         rM   r  z*StandaloneHTMLBuilder.write_domain_indices  sy    8<8K 	L 	L4J	7H'1""* M
 KKzK555Z8JKKKK	L 	LrO   c                   | j         rt          | j                  j        }t	          | j                   t          | j         t          d          dt          | j                   | j	        j
        |          D ]|}| j         |         }	 t          | j        |z  | j        |z  d           3# t          $ r;}t                              t          d          | j        |z  |           Y d }~sd }~ww xY wd S d S )Nzcopying images... brownstringify_funcTforcezcannot copy image file '%s': %s)imagesr   rY   get_original_image_urir8   rr   r,   r$   r   rX   	verbosityr7   srcdirr  r   r   )rz   r  srcdesterrs        rM   r  z&StandaloneHTMLBuilder.copy_image_files  s<   ; 	)$(33JNd&'''&'((DK  "-     {3'	c)(4/"    
 !   NN<==t{S?PRU       %	 	 s   "B++
C051C++C0c                &    d fd} j         j        rt           j                   t	           j         j        t          d          dt           j         j                   j        j        |          D ]}	  j         j         j        |         d         z  }t          |j	                   t           j        |z  |d	
           R# t          $ r;}t                              t          d           j        |z  |           Y d }~d }~ww xY wd S d S )NfrU   rI   c                l    t          t          |           j                                                  S r   )r6   r   r  as_posix)r  rz   s    rM   
to_relpathz=StandaloneHTMLBuilder.copy_download_files.<locals>.to_relpath  s'    !$q''4;77@@BBBrO   zcopying downloadable files... r  r  r   Tr  z$cannot copy downloadable file %r: %s)r  rU   rI   rU   )rY   dlfilesr8   rq   r,   r$   r   rX   r  parentr7   r  r   r   r   )rz   r  r  r  r  s   `    rM   r  z)StandaloneHTMLBuilder.copy_download_files  sb   	C 	C 	C 	C 	C 	C 8 	d)***& 344DH$%%")    	.1A#1Fq1IIDdk***T[3.DAAAAA   NNABBc)       	 	 s   8AC
D1DDc                   | j         dz  }t          |dd          5 }|                    | j                                                   ddd           n# 1 swxY w Y   | j        rc| j         dz  }t          |dd          5 }|                    | j                                                   ddd           dS # 1 swxY w Y   dS dS )z!Create a style file for pygments.r   wr  rc   Nr   )ro   openr  r   get_stylesheetr   )rz   pyg_pathr  	dark_paths       rM   create_pygments_style_filez0StandaloneHTMLBuilder.create_pygments_style_file7  si   #n4(C'222 	7aGGD$3355666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7   	@(+>>Iiw777 @1-<<>>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @	@ 	@s#   -AAA-B>>CCc                j    |                                  x}rt          || j        dz  d           dS dS )z(Copy a JavaScript file for translations.r   Tr  N)r   r7   ro   )rz   r   s     rM   copy_translation_jsz)StandaloneHTMLBuilder.copy_translation_jsB  sX    //1117 	 #44     	 	rO   c                H   | j         t          | j         d          rL| j                                         D ]0}t          |          }t	          || j        |j        z  d           1dS | j                                         x}rt	          || j        dz  d           dS dS dS )z#Copy a JavaScript file for stemmer.Nget_js_stemmer_rawcodesTr  z_stemmer.js)rV  hasattrr(  r   r7   ro   r   get_js_stemmer_rawcode)rz   jsfilejs_pathjs_stemmer_rawcodes       rM   copy_stemmer_jsz%StandaloneHTMLBuilder.copy_stemmer_jsK  s    <#t|%>?? "lBBDD  F"6llG(7<7"      *.)L)L)N)NN% *(=8"      $# rO   r  c           
         dd}| j         r\t          | j                                                   D ]7}t          t	          |d          | j        t          || j        |d	
           6d S d S )Nr   rU   errorr  rI   rZ   c                \    t          d          }t                              || |           d S )Nz?Failed to copy a file in the theme's 'static' directory: %s: %r)r$   r   r   )r   r0  r  s      rM   onerrorz>StandaloneHTMLBuilder.copy_theme_static_files.<locals>.onerror_  s,    VWWCNN3%00000rO   staticTexcludedr  rendererr2  r  r   rU   r0  r  rI   rZ   )r   reversedget_theme_dirsr.   r   ro   r1   r   )rz   r  r2  entrys       rM   copy_theme_static_filesz-StandaloneHTMLBuilder.copy_theme_static_files^  s    	1 	1 	1 	1 : 
	!$*";";"="=>> 	 	))$%#!^#    
	 
		 	rO   c           
         dd}t          g | j        j        d          }| j        j        D ]*}t	          | j        |z  | j        ||| j        |d	
           +d S )Nr   rU   r0  r  rI   rZ   c                X    t                               t          d          | |           d S )Nz1Failed to copy a file in html_static_file: %s: %r)r   r   r$   )r   r0  s     rM   r2  z=StandaloneHTMLBuilder.copy_html_static_files.<locals>.onerrorp  s3    NNFGGSX    rO   z**/.*Tr4  r7  )r2   r   exclude_patternsr  r.   confdirro   r   )rz   r  r2  r5  r:  s        rM   copy_html_static_filesz,StandaloneHTMLBuilder.copy_html_static_fileso  s    	 	 	 	
 CT[9C7CDD[1 		 		Eu$ !    		 		rO   c                    | j         j        rNt          | j         j                  s7| j        | j         j        z  }t	          || j        |j        z  d           d S d S d S NTr  )r   ro  r*   r?  r7   ro   r   rz   source_paths     rM   copy_html_logoz$StandaloneHTMLBuilder.copy_html_logo  s}    ;  	0E)F)F 	,)>>K ;#33     	 	 	 	rO   c                    | j         j        rNt          | j         j                  s7| j        | j         j        z  }t	          || j        |j        z  d           d S d S d S rB  )r   rp  r*   r?  r7   ro   r   rC  s     rM   copy_html_faviconz'StandaloneHTMLBuilder.copy_html_favicon  s}    ;# 	F4;3K,L,L 	,)AAK ;#33     	 	 	 	rO   c                   	 t          t          d          d          5  | j                            dd           | j                                        }| j        ,|                    | j                                                   | 	                                 | 
                                 |                                  |                     |           |                     |           |                                  |                                  d d d            d S # 1 swxY w Y   d S # t           $ r3}t"                              t          d          |           Y d }~d S d }~ww xY w)Nzcopying static filesFr  TrJ  exist_okzcannot copy static file %r)r+   r$   ro   mkdirr  copyrV  updatecontext_for_searchtoolr$  r&  r.  r;  r@  rE  rG  r   r   r   )rz   r  r  s      rM   r  z'StandaloneHTMLBuilder.copy_static_files  s   	B!"%;"<"<5III ) ) &&td&CCC ,1133<+NN4<#F#F#H#HIII//111((***$$&&&,,W555++G444##%%%&&((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )   	B 	B 	BNN2:;;SAAAAAAAAA	Bs;   D1 C7D$D1 $D((D1 +D(,D1 1
E.;(E))E.c                   	 t          t          d          d          5  t          | j        j                  }| j        j        D ]"}t          | j        |z  | j        |d           #	 ddd           dS # 1 swxY w Y   dS # t          $ r3}t                              t          d          |           Y d}~dS d}~ww xY w)zCopy html_extra_path files.zcopying extra filesFr  T)r5  r  Nzcannot copy extra file %r)r+   r$   r2   r   r>  r  r.   r?  rn   r   r   r   )rz   r5  
extra_pathr  s       rM   r  z&StandaloneHTMLBuilder.copy_extra_files  s8   	A!"%:";";%HHH  "4;#?@@"&+"=  Jz1!)"	                       	A 	A 	ANN29::C@@@@@@@@@	As;   B A	A7*B 7A;;B >A;?B 
C(B<<Cc                    	 | j                             | j        dz             d S # t          $ r3}t                              t          d          |           Y d }~d S d }~ww xY w)Nr   z#Failed to write build info file: %r)r   r   rn   r   r   r   r$   )rz   r  s     rM   r  z%StandaloneHTMLBuilder.write_buildinfo  s}    	KO  |!;<<<<< 	K 	K 	KNN2CDDcJJJJJJJJJ	Ks   "& 
A#(AA#c                J    | j         r| j                                          d S d S r   )r   _cleanupr   s    rM   cleanupzStandaloneHTMLBuilder.cleanup  s0    : 	"J!!!!!	" 	"rO   r@   c                L   t                                          |           | j        j        r| j        r|                    t
          j                  D ]͊t          fddD                       st          j	        t
          j
                  r>dd         v rId         }t          j
        ddd          }|| j        v r)t          j        | j        | j        |                   |d	<   n||d	<                       |           |                               d
S d
S d
S )zsPick the best candidate for an image and link down-scaled images to
        their high resolution version.
        c              3      K   | ]}|v V  	d S r   rQ  )rR  rS  r  s     rM   r  z<StandaloneHTMLBuilder.post_process_images.<locals>.<genexpr>  s'      QQSC4KQQQQQQrO   )scalewidthheightzno-scaled-linkclassesurirT   T)internalrefuriN)rl   r  r   html_scaled_image_linkfindallr	   imageanyr   r  	referencer  r   r   rV   replace_selfr   )rz   rw   r[  rb  r  r|   s       @rM   r  z)StandaloneHTMLBuilder.post_process_images  sJ    	##G,,,;- 	'$2M 	'44 ' 'QQQQ4PQQQQQ  dk5?;; #tI665k!OBTBBB	$+%%*3.t{SVGW*X*XIh''*-Ih'!!),,,  &&&&)	' 	' 	' 	'' 'rO   c                x   | j         J t          | j        j                                      |          }	 | j        | j        z  }| j        rJt          |d          5 }| j         	                    || j
                   d d d            n# 1 swxY w Y   nHt          |d          5 }| j         	                    || j
                   d d d            n# 1 swxY w Y   n@# t          t          f$ r, |r't                              t          d                     Y nw xY w| j                             |           d S )Nr  rc   rbzcsearch index couldn't be loaded, but not all documents will be built: the index will be incomplete.)rV  setrY   r  
differencern   searchindex_filenameindexer_dumps_unicoder   r   rS   r   r   r   r   r$   prune)rz   r%  keepsearch_index_pathftfbs         rM   r\  z"StandaloneHTMLBuilder.load_indexer  s   |'''48$%%00::	 $d.G G) ?+g>>> ?"L%%b$*=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? +T22 ?bL%%b$*=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?$ 	 	 	 &   	 	4     sY   'C  !B?C  BC  BC  '!CC  CC  CC   :DDr  r  c                :   | j         |r| j                            |d          }| j        j                            |i           }d|v sd|v r,| j                             ||dt          d                     d S | j                             ||||           d S d S d S )NF)basez	no-searchnosearchrT   )rV  rY   r  r  r  feedr-   )rz   r  rw   r  r   r  s         rM   r  z StandaloneHTMLBuilder.index_page  s    <##x(((>>Hx(,,Xr::Hh&&**@*@!!(Hb,r:J:JKKKKK!!(HeWEEEEE $###rO   r  re  c                    d|vrd|d<   |                     d          dk    r|                    d           t          | j        || fd|i|}|                     |          d         S )NincludehiddenFmaxdepthrT   r  r  )r  r  r   rY   r$  )rz   r  r  r   toctrees        rM   _get_local_toctreez(StandaloneHTMLBuilder._get_local_toctree  s     &((&+F?#::j!!R''JJz"""(Hgt
 
.6
:@
 
 ""7++J77rO   	page_namer   c               <    t          | j        || j        z             S r   )r   rn   r   )rz   rx  s     rM   r  z%StandaloneHTMLBuilder.get_output_path  s    DKT_!<===rO   r(   c                F    t          |                     |                    S r   )r(   r  )rz   r  s     rM   get_outfilenamez%StandaloneHTMLBuilder.get_outfilename  s    ,,X66777rO   r  c                z   d	d}d }t          | j        j                  }|                     dd          }t	          d          }|                                D ]O\  }}	t          ||          r:|r4 ||          r) ||          rt                              ||||           K|}|	}Pt          |          |d<   d S )
NpatternrU   rI   re  c                :     t           fddD                       S )Nc              3      K   | ]}|v V  	d S r   rQ  )rR  charr}  s     rM   r  zKStandaloneHTMLBuilder.add_sidebars.<locals>.has_wildcard.<locals>.<genexpr>  s'      994tw999999rO   z*?[)ra  )r}  s   `rM   has_wildcardz8StandaloneHTMLBuilder.add_sidebars.<locals>.has_wildcard  s&    99995999999rO   sidebarsrR   z8page %s matches two patterns in html_sidebars: %r and %r)r}  rU   rI   re  )	r   r   sidebar_templatesr   r$   r  r3   r   r   )
rz   r  r  r  matchedr  html_sidebarsr  r}  pat_sidebarss
             rM   add_sidebarsz"StandaloneHTMLBuilder.add_sidebars  s    	: 	: 	: 	:  
455 //
FCCKLL%2%8%8%:%: 
	( 
	(!G\'** 	( ||G44 #|G,, HsHgwGGG !'x..JrO   Ntypc                0    t          |          | j        z   S r   )r   r   )rz   r  r  s      rM   r  z$StandaloneHTMLBuilder.get_target_uri-  s    W~~ 000rO   	page.html)r  r  addctxtemplatenamer  r  c                    j                                         }x|d<   |d<    j        j        |d<                                  }|                    dd          d         } j        j        r6t          j         j        j                                                 |d<   nd |d<   d|fd0 fd|d<   d1 fd}||d<    fd|d<    	                    |           |
                    |           dt           |                    t                    z  p	dt           |d<    j        j        d2 fd}	|	|d<   d3 fd}
|
|d <    j         j        d d <    j         j        d d <                        |||            j                            d!|||          x}r|}	 t-          |d"         d# $          |d"<   n# t.          $ r Y nw xY wt1          j        t.                    5  t-          |d%         d& $          |d%<   d d d            n# 1 swxY w Y   	  j                            ||          }nj# t8          $ r, t:                              t?          d'                     Y d S t@          $ r)}t?          d(          |fz  }tC          |          |d }~ww xY w|rtE          |          }n #                              }tI          |j%                   	 |&                    ||d         d)*           n@# tN          $ r3}t:                              t?          d+          ||           Y d }~nd }~ww xY w j(        rm|)                    d,          rZ j*        |d,         z  }|j%        +                    d-d-.           tY           j-        .                              |d-/           d S d S d S )4Nr  current_page_namerd   #r   r   pageurlFotherurirU   resourcere  baseurirI   c                    |rd| v r| S |s                     |           } t          ||           pd}|dk    r	j        s|}|S )Nr   r  )r  r9   allow_sharp_as_current_path)r  r  r  r[  rz   s       rM   pathtoz1StandaloneHTMLBuilder.handle_page.<locals>.pathtoI  se    
  9EX-- 9..x88w118SCczz$"BzJrO   r  r   c                z    | j         j        v rdS | dk    r	j        rdS | dk    o                    dd          S )NTrW  r/  r   rR   )rY   r  rW  r   )r   rz   s    rM   hasdocz1StandaloneHTMLBuilder.handle_page.<locals>.hasdocZ  sO    tx(((txDKt:%V$*A*A+v*V*VVrO   r  c                       j         fi | S r   )rw  )r   r  rz   s    rM   <lambda>z3StandaloneHTMLBuilder.handle_page.<locals>.<lambda>c  s    *A$*A(*U*Uf*U*U rO   rv  z...content_rootcssr   c                4   d | j                                         D             } t          j        | j                  d          }j        dvrt          | j                  x}r|d| z  }dd                    t          |                     d| d	S )
Nc                P    g | ]#\  }}|| dt          j        |d           d$S )N="Tr   "rR   escaperR  rS  values      rM   r  zFStandaloneHTMLBuilder.handle_page.<locals>.css_tag.<locals>.<listcomp>m  sL       C$ ;;$+e4888;;;$$$rO   Tr  >   epubhtmlhelp?v=z<link  z href="z" />)	
attributesr  rq  fspathr   r   r   r   rj  )r  r   r[  checksumrn   r  rz   s       rM   css_tagz2StandaloneHTMLBuilder.handle_page.<locals>.css_tagl  s     "%."6"6"8"8  E
 &3<004@@@C y 444-fclCCC8 ,++++CECHHVE]]33EECEEEErO   r  js_JavaScript | strc                H   t          | t                    sd | d           dS | j                            dd          }d | j                                        D             }| j        s1|r)dd	                    t          |                     d
| dS d| dS t          j	        | j                  } |d          }d|v rn*j
        dk    rt          | j                  x}r|d| z  }|r)dd	                    t          |                     d| dS d| dS )Nz<script src="Tr  z"></script>r  rT   c                \    g | ])\  }}|d k    || dt          j        |d           d*S )r  Nr  Tr   r  r  r  s      rM   r  zEStandaloneHTMLBuilder.handle_page.<locals>.js_tag.<locals>.<listcomp>  sT       C&==U%6 ;;$+e4888;;;%6%6%6rO   z<script r  >z	</script>z<script>zMathJax.js?r  r  z src=")r   r   r  r  r  r   r   rj  rq  r  r   r   )	r  r  r   js_filename_strr[  r  rn   r  rz   s	         rM   js_tagz1StandaloneHTMLBuilder.handle_page.<locals>.js_tag}  s}   b+.. NMvvb4'@'@'@MMMM=$$VR00D "$-"5"5"7"7  E ; 2 POchhve}}&=&=OOOOOO1$1111 i44O&4888C//
 f$$-fbkBBB8 ,++++C RQ#((6%=="9"9QQQQQQ333333rO   r  html-page-contextr   c                    | j         S r   r   )r  s    rM   r  z3StandaloneHTMLBuilder.handle_page.<locals>.<lambda>  s    BK rO   )rS  r   c                    | j         S r   r   )r  s    rM   r  z3StandaloneHTMLBuilder.handle_page.<locals>.<lambda>  s     rO   za Unicode error occurred when rendering the page %s. Please make sure all config values that contain non-ASCII content are Unicode strings.z6An error happened in rendering the page %s.
Reason: %rxmlcharrefreplace)rd   errorszerror writing file %s: %sr  TrI  r  )r  rU   r  re  r  rU   rI   rU   )r   rU   rI   re  )r  r   rI   rU   )r  r  rI   rU   )/r  rL  r   html_output_encodingr  rsplithtml_baseurlr   r   r  rM  r4   r   rX   rn   rz  rs   r{  rt   update_page_contextr  emit_firstresultrj  AttributeErrorr  r  r   renderUnicodeErrorr   r   r$   r  r!   r   r  r8   r  
write_textr   r  r  rp   rK  r7   rY   r  )rz   r  r  r  r  r  r  default_baseurir  r  r  new_templateoutputr  r  output_pathr  source_file_pathrn   r  s   ``                @@rM   r  z!StandaloneHTMLBuilder.handle_page0  sk     %%''5==J#12+:J--h77 *00a88;;# 	"&^($*=*=h*G*G C	NN "C	N #*	 	 	 	 	 	 	 H	W 	W 	W 	W 	W 	W HUUUUUI(C(((

6  *CzzO,A,A#,F,FFT9s99N	F 	F 	F 	F 	F 	F 	F 	F !I	4 	4 	4 	4 	4 	4 	4 	4B H "1 /qqq  <iHHH;77<i
 
 
< 	( (L	 #)N#)?)?# # #C  	 	 	
 D	  00 	V 	V%c+&6<T<TUUUC	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V 	V	+^**<==FF 		 		 		NN= 
    FF 	+ 	+ 	+NOOS C S//s*	+  	9{++KK..x88K+$%%%	N""Z9L #      	N 	N 	NNN29::KMMMMMMMM	N? 	Psww|44 	P#03|3DD#))$)FFFTX&&x002B$OOOOOO		P 	P 	P 	PsZ   1G 
GG6HH"%H"*I 2J-;	J-$J((J-,L 
M)MMc                    d S r   rQ  )rz   r  r  r  r  s        rM   r  z)StandaloneHTMLBuilder.update_page_context  s	     	rO   c                    | j                             | j                   | j                             | j                   d S r   )r  r  dump_search_indexdump_inventoryr   s    rM   r  z#StandaloneHTMLBuilder.handle_finish  s<    ""4#9:::""4#677777rO   zdumping object inventoryc                V    t          j        | j        t          z  | j        |            d S r   )r0   r   rn   INVENTORY_FILENAMErY   r   s    rM   r  z$StandaloneHTMLBuilder.dump_inventory  s'    4;);;TXtLLLLLrO   c                   | j         d S t          t          d          | j                                         z            5  | j                             | j        j                   | j        | j        z  }| j        | j         dz  }| j	        rKt          |dd          5 }| j                             || j                   d d d            n# 1 swxY w Y   nHt          |d          5 }| j                             || j                   d d d            n# 1 swxY w Y   t          |                              |           d d d            d S # 1 swxY w Y   d S )Nzdumping search index in %sz.tmpr  r  rc   wb)rV  r+   r$   labelrj  rY   r  rn   rh  ri  r   r   rS   r   rL   )rz   rl  search_index_tmprm  rn  s        rM   r  z'StandaloneHTMLBuilder.dump_search_index  s   <Fb!=>>ASASAUAUUVV 	> 	>Ltx0111 $d.G G#{0I-O-O-OO ) ?*C'BBB ?bL%%b$*=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *D11 ?RL%%b$*=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?!""**+<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s[    AE!C EC	EC	E(!D	ED	ED	%EEE)rX   rB   rY   rD   rI   rZ   )rI   rZ   )rI   r   )rI   r   )rI   r   )rI   r   )rI   r   )r   rU   r   r>   rI   rZ   )rI   r   )rI   rH   )rI   r  )r  r  rI   r  )r%  r&  rI   rZ   )r  rU   r  rU   r  rU   rI   r  )r  rU   rw   r  rI   rZ   )r  r  rI   rZ   )rw   r@   rI   rZ   )r  rU   rw   r  r  rU   rI   rZ   )T)r  rU   r  re  r   r>   rI   rU   )rx  rU   rI   r   )r  rU   rI   r(   )r  rU   r  r  rI   rZ   r   )r  rU   r  rH   rI   rU   )r  )r  rU   r  r  r  rU   r  r   r  r>   rI   rZ   )
r  rU   r  rU   r  r  r  r>   rI   rZ   )Yr   
__module____qualname____doc__r   formatr$   epilogr;   default_translator_classr  allow_parallelr   r   r%   rS   __annotations__ri  r^  supported_image_typessupported_remote_imagessupported_data_uri_imagesrh  add_permalinksr  r2  rW  r   download_supportrV   rW   rm   r   r   r   r   r   r   r   propertyr   r   r   r   r   r   r   r  r  r$  r  r  r  r  r  r  r+   r  r  r  r  r  r  r  r$  r&  r.  r;  r@  rE  rG  r  r  r  rT  r  r\  r  rw  r  r{  r  r  r  r  r  r  r  __classcell__)r|   s   @rM   rQ   rQ   l   s>        &&DFR344F.JNJK"N"""" !UUU" $+N"&HFIG.0N0000     :F F F F4F F F F   (       F F F F. . . .) ) ) )8    X1 1 1 1* * * *    X
0 0 0 0 ) ) ) )    X&H H H HTJ J J J	, 	, 	, 	,N) N) N) N)`N
 N
 N
 N
`! ! ! !: : : :$1 1 1 1    bb-..//$ $ $ 0/$> > > > bb34455   65*K K K K<L L L L   0   4	@ 	@ 	@ 	@      &   "   $      B B B B*A A A AK K K K" " " "
' ' ' ' ' '8! ! ! !.F F F F .2
8 
8 
8 
8 
8> > > >8 8 8 8) ) ) )81 1 1 1 1 (	nP $(nP nP nP nP nP nP`   
8 8 8 8 bb34455M M M 65M> > > > > > > >rO   rQ   rX   rB   r   rC   rZ   c                0   g }|j         D ]}t          |t                    r|                    |i f           /	 |\  }}|                    ||f           M# t          $ r+ t
                              t          d          |           Y w xY w||_         dS )z9Convert string styled html_css_files to tuple styled one.zinvalid css_file: %r, ignoredN)html_css_filesr   rU   r   r  r   r   r$   )rX   r   r  r:  r   r   s         rM   convert_html_css_filesr     s    79N& 	 	eS!! 	!!5"+...."'%%%x&78888   r"ABBEJJJ +F   A2BBc                0   g }|j         D ]}t          |t                    r|                    |i f           /	 |\  }}|                    ||f           M# t          $ r+ t
                              t          d          |           Y w xY w||_         dS )z8Convert string styled html_js_files to tuple styled one.zinvalid js_file: %r, ignoredN)html_js_filesr   rU   r   r  r   r   r$   )rX   r   r  r:  r   r   s         rM   convert_html_js_filesr    s    68M% 	 	eS!! 	  %----"'%$$h%67777   r"@AA5III )Fr  r  rU   r  r  r  rw   r@   c                   |d         }|                     d          }|r"t          |          s |d|z   d          |d<   |                     d          }|r$t          |          s |d|z   d          |d<   dS dS dS )zSet up relative resource paths.r  rM  z_static/Tr  rK  N)r  r*   )rX   r  r  r  rw   r  rM  rK  s           rM   setup_resource_pathsr  "  s     XF ++m,,K Q6+.. Q!'
[(@4!P!P!P {{:&&H Kx(( K$fZ(%:TJJJ
K K K KrO   c                    | j         j        dk    rd S | j         j        }|t          d          }t	          |          || j        j        vrt	          t          d          |z            d S )NrR   zEMany math_renderers are registered. But no math_renderer is selected.z"Unknown math_renderer %r is given.)rI  r  r   r$   r    registryr   )rX   r   r  s      rM   validate_math_rendererr  7  s|    
{V##;)D|S
 
 #3<:::"ABBTIJJJ ;:rO   c                   g }|j         D ]}| j        |z                                  }|                                rn| j        j        |j        k    rC|                    | j                  r)t                              t          d          |           |
                    |           t                              t          d          |           ||_         dS )zCheck html_extra_paths setting.z0html_extra_path entry %r is placed inside outdirz'html_extra_path entry %r does not existN)r  r?  resolveexistsrn   driveis_relative_tor   r   r$   r   )rX   r   r  r:  rP  s        rM   validate_html_extra_pathr  E  s    O' Q QkE)2244
 	Q
 J$444--cj99 5 IJJE     &&u----NN2GHH%PPPP,FrO   c                   g }|j         D ]}| j        |z                                  }|                                rn| j        j        |j        k    rC|                    | j                  r)t                              t          d          |           |
                    |           t                              t          d          |           ||_         dS )z Check html_static_paths setting.z1html_static_path entry %r is placed inside outdirz(html_static_path entry %r does not existN)r  r?  r  r  rn   r  r  r   r   r$   r   )rX   r   r  r:  static_paths        rM   validate_html_static_pathr  Y  s    ( R R{U*3355 	R
 K$555..sz:: 6 JKKU    !''....NN2HII5QQQQ.FrO   c                    |j         rk| j        |j         z                                  sLt          |j                   s:t                              t          d          |j                    d|_         dS dS dS dS )zCheck html_logo setting.zlogo file %r does not existN)ro  r?  r   r*   r   r   r$   rX   r   s     rM   validate_html_logor  m  s     	 v//88::  v'(( 
 	r788&:JKKK           rO   c                    |j         rk| j        |j         z                                  sLt          |j                   s:t                              t          d          |j                    d|_         dS dS dS dS )zCheck html_favicon setting.zfavicon file %r does not existN)rp  r?  r   r*   r   r   r$   r  s     rM   validate_html_faviconr  x  s     	#v22;;==# v*++#
 	r:;;V=PQQQ"# # # # # #rO   c                ,   i }|j                                         D ] \  }}t          |t                    r|g||<   !|sdS t	          d          }d                    t          t          |                    }|j         |z  }t          |||fz            )zSupport removed in Sphinx 2.NzValues in 'html_sidebars' must be a list of strings. At least one pattern has a string value: %s. Change to `html_sidebars = %r`.z, )	r  r  r   rU   r$   r   mapreprr    )rX   r   r  r}  r  r  bad_patternsfixeds           rM   $error_on_html_sidebars_string_valuesr    s    F!'!5!;!;!=!= - -lC(( 	-+nF7O 
	* C
 99Sv..//L 6)E
c\511
2
22rO   _appc                P    |j         rt          d          }t          |          dS )zError on HTML 4.z`HTML 4 is no longer supported by Sphinx. ("html4_writer=True" detected in configuration options)N)html4_writerr$   r    )r  r   r  s      rM   error_on_html_4r    s<     F
 
 # rO   rE   c                   |                      t                     |                     dddt          t          h                     |                     dg dt          t
          t          h                     |                     di dt          t          h                     |                     dd dt          t          h                     |                     d	d
 dt          t          h                     |                     dd dt          t
          t          t          h                     |                     dd dt          t          h                     |                     dd dt          t          h                     |                     dg dt          t
          t          h                     |                     dg dt          t
          t          h                     |                     dg dt          t
          t          h                     |                     dg dt          t
          t          h                     |                     dd dt          t          h                     |                     dddt          t          h                     |                     di dt          t          h                     |                     di dt          t          h                     |                     dddt          t          t
          t          t          h                     |                     dddt          t          h                     |                     dddt          t          h                     |                     dddt          t          h                     |                     dddt          t          h                     |                     dddt          t          h                     |                     dddt          t          h                     |                     d d!dt          t          h                     |                     d"d#dt          t          h                     |                     d$d dt          t          h                     |                     d%d dt          t          h                     |                     d&ddt          t          h                     |                     d'ddt          t          h                     |                     d(ddt          t          h                     |                     d)i dt          t          h                     |                     d*d+dt          t          h                     |                     d,ddt          t          h                     |                     d-d.dt          t          h                     |                     d/d dt          t          h                     |                     d0i dt          t          h                     |                     d1d#d#t          t          h                     |                     d2ddt          t          h                     |                     d3d#dt          t          h                     |                     d4d5dt          d6d5                     |                     d7d d8t          t          t          h                     |                     d9ddt          t          h                     |                     d:           |                     d;           |                     d<t          d=>           |                     d<t          d=>           |                     d<t           d=>           |                     d<t"          d=>           |                     d<t$          d=>           |                     d<t&          d=>           |                     d<t(          d=>           |                     d<t*          d=>           |                     d?t,                     |                     d;t.                     |                     d@           dAdddBS )CNr   	alabasterrR   )typeshtml_theme_pathr   r  c                >    t          d          | j        | j        fz  S )Nz%s %s documentation)r#   r3  r4  )cs    rM   r  zsetup.<locals>.<lambda>  s    !)**ai-CC rO   r  c                    | j         S r   )r  r   s    rM   r  zsetup.<locals>.<lambda>  s     rO   r   ro  rp  r  r  r  r  rm  rn  Fr  r  rh  Thtml_permalinkshtml_permalinks_icon   ¶html_use_indexr  r  r  r  z.txtr~  rT   r   r   r  r  r  r  r  r  rf  html_secnumber_suffixz. rY  rZ  r[  r^  r  html_codeblock_linenos_styleinlinetablehtml_math_rendererrY   r  r  r  zconfig-initedr   r   zbuilder-initedzsphinx.ext.mathjaxbuiltin)r5  parallel_read_safeparallel_write_safe)add_builderrQ   add_config_valuer   rU   r   tuplerx  re  rf  r   r   	add_eventconnectr  r  r  r  r  r  r  r  r  r  setup_extension)rX   s    rM   setupr    s   OO)*** {F)SEBRBRSSS*Biu>V>VWWW-r6D6ARARSSSCC	     88&	SVRWHXHX     dF)T34F*G*G     dF)SE:J:JKKKvYu=M=MNNN)2vYe}=U=UVVV"fItUm<T<TUUU+Ry$PU?W?WXXX*Biu>V>VWWW0$iQTPUFVFVWWW#UF)TF:K:K     "fItf<M<MNNN0"fItfDUDUVVVD#u566	     *D&	4&@Q@QRRR/vYPSuEUEUVVV)4y$?P?PQQQ+UF)TFBSBSTTT+T6D6ARARSSS/vYPTvEVEVWWW &&	3%8H8H     .F)SEBRBRSSS+T6C5AQAQRRR+T6C5AQAQRRR.fItfDUDUVVV"D&	4&8I8I     +T6D6ARARSSSV9dV;L;LMMMy#7G7G     -tV9dVCTCTUUU0$iQTPUFVFVWWW/vYPSuEUEUVVV.F)TFBSBSTTT-r2Yu=M=MNNN $i6G6G     V9cU;K;KLLL &&Wh@W@W     dEC?1K1K     i>O>OPPP MM&'''MM%&&& KK!7#KFFFKK!6KEEEKK!9CKHHHKK!:SKIIIKK!3cKBBBKK!6KEEEKK!EPSKTTTKK3K???KK "8999KK#%9::: ,--- "#  rO   z1sphinx.builders.html._assets._CascadingStyleSheetr   z(sphinx.builders.html._assets._JavaScript)
Stylesheet
JavaScriptz+dict[str, tuple[Any, str, tuple[int, int]]]_DEPRECATED_OBJECTSr   r>   c                    | t           vrdt          d| }t          |          ddlm} t           |          \  }}} |t          | ||           |S )Nzmodule z has no attribute r   r   r   )r"  r   r  sphinx.deprecationr   )r   r  r   deprecated_objectr   r   s         rM   __getattr__r&    su    &&&>>>d>>S!!!7777770CD0I-~v4GGGGrO   )rG   rH   rI   rH   )rX   rB   r   rC   rI   rZ   )rX   rB   r  rU   r  rU   r  r  rw   r@   rI   rZ   )rX   rB   rI   rZ   )r  rB   r   rC   rI   rZ   )rX   rB   rI   rE   )r   rU   rI   r>   )r  
__future__r   r  rR   rq  os.pathr   rer   r   r^  pathlibr   r  r   typingr   urllib.parser   docutils.readers.doctreeru   r	   docutils.corer
   docutils.frontendr   docutils.ior   r   r   r   r   r   rC  sphinx._cli.util.colourr   sphinx.buildersr   sphinx.builders.html._assetsr   r   r    sphinx.builders.html._build_infor   sphinx.configr   r$  r   sphinx.domainsr   r   !sphinx.environment.adapters.assetr   (sphinx.environment.adapters.indexentriesr   #sphinx.environment.adapters.toctreer   r   sphinx.errorsr    r!   sphinx.highlightingr"   sphinx.localer#   r$   rX  r%   sphinx.themingr&   sphinx.utilr'   sphinx.util._pathlibr(   sphinx.util._timestampsr)   sphinx.util._urir*   sphinx.util.displayr+   r,   sphinx.util.docutilsr-   sphinx.util.fileutilr.   sphinx.util.i18nr/   sphinx.util.inventoryr0   sphinx.util.matchingr1   r2   r3   sphinx.util.osutilr4   r5   r6   r7   r8   r9   sphinx.writers.htmlr:   sphinx.writers.html5r;   collections.abcr<   r=   r>   r?   docutils.nodesr@   docutils.readersrA   sphinx.applicationrB   rC   sphinx.environmentrD   sphinx.util.typingrE   r  	getLoggerr   r   compiler|  r  rU   typer   re  rF   r  rN   rQ   r  r  r  r  r  r  r  r  r  r  r  r"  r&  rQ  rO   rM   <module>rT     sl      " " " " " "      				      				  



                                          # # # # # # * * * * * * 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 1 1 1 1 1 1 ( ( ( ( ( ( # # # # # #         
 7 6 6 6 6 6       3 3 3 3 3 3 , , , , , , , , : : : : : : A A A A A A T T T T T T T T 1 1 1 1 1 1 1 1 . . . . . .         " " " " " " + + + + + +       ) ) ) ) ) ) @ @ @ @ @ @ # # # # # # A A A A A A A A - - - - - - + + + + + + ( ( ( ( ( ( / / / / / / < < < < < < < < < <                + * * * * * 0 0 0 0 0 0 
5--------%%%%%%%%######''''''))))))$$$$$$333333444444 # 		8	$	$"*Y''$KsD$$	%&
	   	 	 	 	   Q> Q> Q> Q> Q>G Q> Q> Q>h$+ + + +") ) ) )"K K K K*K K K K- - - -(/ / / /(       # # # #3 3 3 3$   e e e eV 	;
  JFSD D     	 	 	 	 	 	rO   