
    P&iK                        U d 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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mZmZmZ ddl m!Z!m"Z"m#Z#m$Z$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l0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD ddlEmFZF erddlGmHZH  e/jI        eJ          ZK ejL        d          ZMeeNd<    ejL        d          ZOeeNd<   dePdePdePfdZQdePdePfdZR	 	 dbdePdeeFd f         d!eeFd f         deeP         fd"ZSd#eePePf         d$ePdePfd%ZT G d& d'eU          ZVdcd)ZWdcd*ZX G d+ d,eU          ZYd-ZZd.ed/         dePfd0Z[d1ePd2ePdeeP         fd3Z\ ejL        d4          Z] G d5 d6          Z^ G d7 d8          Z_d9ePd:e`dee`         fd;Zad<e`d=ePd>ePdeeP         fd?Zbd=ePd>ePdeeP         fd@ZcdddBe`dePfdCZddedDePdEeeP         defdFZedGePdeeeP         ePf         fdHZfdIePdePfdJZgdKePdehfdLZidMedePfdNZj edO          ZkdPejfdQeek         dRePdSePdTeegePf         deekddf         f
dUZldPddejfdQeek         dRePdSePdVe`dWe`dTeegePf         deekddf         fdXZm G dY dZen          Zo G d[ d\          Zpd]eqdePfd^Zrd_ePdeqfd`ZsdefdaZtdS )fzUtility functions for Sphinx.    N)datetime)import_module)pathmktimestrptime)IOTYPE_CHECKINGAnyCallableDict	GeneratorIterableListOptionalPatternSetTupleTypeTypeVar)	parse_qsl
quote_plus	urlencodeurlsplit
urlunsplit)RemovedInSphinx70Warning)ExtensionErrorFiletypeNotFoundErrorSphinxParallelError)__)logging)boldcolorizestrip_colorsterm_width_line)	patfilter)caption_ref_reexplicit_title_renested_parse_with_titlessplit_explicit_title)SEPcopyfile	copytimes	ensuredirmake_filenamemtimes_of_filesos_pathrelative_uri)PathMatcher)Sphinxz\s+ws_rez(?P<schema>.+)://.*url_rebasedocnamedocnamereturnc                 h    t          j        t          j        d| z   d|                    dd          S )N/z..   )	posixpathnormpathjoin)r7   r8   s     a/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/util/__init__.pydocname_joinrA   /   s9    s[($88: ::;""> >    filepathc                 p    t          j        dt          d           ddlm} |                    |           S )z+Normalize path separator and unicode stringz\'sphinx.util.path_stabilize' is deprecated, use 'sphinx.util.osutil.path_stabilize' instead.   
stacklevelr   )osutil)warningswarnr   sphinx.utilrH   path_stabilize)rC   rH   s     r@   rL   rL   4   sN    M A*q: : : : #"""""  ***rB    dirnameexclude_matchers.include_matchersc              #   (  	
K   t          j        dt          d           t          j        t          j        |                     } t          j        | d          D ]\  }	}t          j        ||           dk    rdt          fd	D                       }t          fd	|D                       }|D ]

fd
|D             }
fd|D             }t          	fd|D                       	dd<   t          |          D ]	\  }}|V  
dS )z}Get all file names in a directory, recursively.

    Exclude files and dirs matching some matcher in *exclude_matchers*.
    z'sphinx.util.get_matching_files' is deprecated, use 'sphinx.util.matching.get_matching_files' instead. Note thatthe types of the arguments have changed from callables to plain string glob patterns.rE   rF   T)followlinks. c              3   \   K   | ]&}t          t          j        |                    V  'd S NrL   r   r?   ).0dnrelativeroots     r@   	<genexpr>z%get_matching_files.<locals>.<genexpr>Q   sK       * *  )<)D)DEE * * * * * *rB   c              3   \   K   | ]&}t          t          j        |                    V  'd S rV   rW   )rX   fnrZ   s     r@   r[   z%get_matching_files.<locals>.<genexpr>S   sK       , ,! *$)L"*E*EFF , , , , , ,rB   c                 6    g | ]} |d                    |S r<   rM   rX   entrymatchers     r@   
<listcomp>z&get_matching_files.<locals>.<listcomp>V   s,    GGGuWWU1X5F5FGUGGGrB   c                 6    g | ]} |d                    |S r_   rM   r`   s     r@   rc   z&get_matching_files.<locals>.<listcomp>W   s,    IIIwwuQx7H7HIeIIIrB   c              3   .   K   | ]\  }}|         V  d S rV   rM   )rX   i_dirss      r@   r[   z%get_matching_files.<locals>.<genexpr>Y   s+      55Vaa555555rB   N)rI   rJ   r   r   r>   abspathoswalkrelpath	enumeratesorted)rN   rO   rP   rootfilesqdirsqfiles_ifilenamerh   rb   rZ   s            @@@r@   get_matching_filesru   >   s      M 0 2JVWY Y Y Y
 mDL1122GWW$???  dE|D'223L * * * *$(* * * * * , , , ,%*, , , , ,' 	J 	JGGGGGGGGEIIIIIIIFF5555u55555QQQ"6NN 	 	LBNNNN	 rB   source_suffixrt   c                 z    |                                  D ] \  }}|                    |          r|pdc S !t          )Nrestructuredtext)itemsendswithr   )rv   rt   suffixfiletypes       r@   get_filetyper}   _   sW    )//11 $ $V$$ 	211111	2 $#rB   c                       e Zd ZdZddZdededefdZdeddfdZd	ee         d
e	ee
ee         ef         f         ddfdZdee         fdZdee         ddfdZdS )FilenameUniqDictz
    A dictionary that automatically generates unique names for its keys,
    interpreted as filenames, and keeps track of a set of docnames they
    appear in.  Used for images and downloadable files in the environment.
    r9   Nc                 ,    t                      | _        d S rV   )set	_existingselfs    r@   __init__zFilenameUniqDict.__init__n   s    #&55rB   r8   newfilec                 H   || v r/| |         d                              |           | |         d         S t          j        |          }t          j        |          \  }}d}|| j        v r|dz  }|||}|| j        v |h|f| |<   | j                             |           |S )Nr   r<   )addr   basenamesplitextr   )r   r8   r   
uniquenamebaseextrf   s          r@   add_filezFilenameUniqDict.add_fileq   s    d??M!  )))=##]7++
M*--	cDN**FA%)T11cc2J DN** "J/W:&&&rB   c                     t          |                                           D ]<\  }\  }}|                    |           |s| |= | j                            |           =d S rV   )listry   discardr   )r   r8   rt   docsuniques        r@   	purge_doczFilenameUniqDict.purge_doc   sl    (,TZZ\\(:(: 	/ 	/$HntVLL!!! /N&&v...		/ 	/rB   docnamesotherc                     |                                 D ]3\  }\  }}|t          |          z  D ]}|                     ||           4d S rV   ry   r   r   )r   r   r   rt   r   _uniquedocs          r@   merge_otherzFilenameUniqDict.merge_other   sb    ). 	- 	-%HotWc(mm+ - -c8,,,,-	- 	-rB   c                     | j         S rV   r   r   s    r@   __getstate__zFilenameUniqDict.__getstate__   s
    ~rB   statec                     || _         d S rV   r   )r   r   s     r@   __setstate__zFilenameUniqDict.__setstate__   s    rB   r9   N)__name__
__module____qualname____doc__r   strr   r   r   r   r   r   r   r   r   rM   rB   r@   r   r   h   s        
) ) ) ) c c    / / / / / /-CH -T#uSXs]?S:S5T -Y] - - - -
c#h    #c( t      rB   r   rB   c                 t    	 t          j        | fi |S # t          $ r t          j        | fi |ddicY S w xY w)a3  Wrapper around hashlib.md5

    Attempt call with 'usedforsecurity=False' if we get a ValueError, which happens when
    OpenSSL FIPS mode is enabled:
    ValueError: error:060800A3:digital envelope routines:EVP_DigestInit_ex:disabled for fips

    See: https://github.com/sphinx-doc/sphinx/issues/7611
    usedforsecurityF)hashlibmd5
ValueErrordatakwargss     r@   r   r      sh    B{4**6*** B B B{4AA6AA5AAAAAAB     77c                 t    	 t          j        | fi |S # t          $ r t          j        | fi |ddicY S w xY w)zWrapper around hashlib.sha1

    Attempt call with 'usedforsecurity=False' if we get a ValueError

    See: https://github.com/sphinx-doc/sphinx/issues/7611
    r   F)r   sha1r   r   s     r@   r   r      sh    C|D++F+++ C C C|DBBFBBEBBBBBBCr   c                       e Zd ZdZdededefdZdeddfdZdee         d	eee	ee         e
f         f         ddfd
ZdS )DownloadFileszA special dictionary for download files.

    .. important:: This class would be refactored in nearly future.
                   Hence don't hack this directly.
    r8   rt   r9   c                 <   || vrjt          |                                                                          }|dt          j                            |          }t                      |f| |<   | |         d                             |           | |         d         S )Nr;   r   r<   )r   encode	hexdigestrj   r   r   r   r   )r   r8   rt   digestdests        r@   r   zDownloadFiles.add_file   s    4**++5577F$ffbg&6&6x&@&@&@AD!eeT]DNXqg&&&H~a  rB   Nc                     t          |                                           D ]"\  }\  }}|                    |           |s| |= #d S rV   )r   ry   r   )r   r8   rt   r   _dests        r@   r   zDownloadFiles.purge_doc   sV    '+DJJLL'9'9 	# 	##HmtULL!!! #N	# 	#rB   r   r   c                     |                                 D ]3\  }\  }}|t          |          z  D ]}|                     ||           4d S rV   r   )r   r   r   rt   r   r   r8   s          r@   r   zDownloadFiles.merge_other   sb    ',{{}} 	1 	1#HmtU#h--/ 1 1gx00001	1 	1rB   )r   r   r   r   r   r   r   r   r   r   r   r   rM   rB   r@   r   r      s         ! !s !s ! ! ! !# # # # # #1CH 1T#uSXs]?S:S5T 1Y] 1 1 1 1 1 1rB   r   z# Sphinx version: %s
# Python version: %s (%s)
# Docutils version: %s %s
# Jinja2 version: %s
# Last messages:
%s
# Loaded extensions:
appr4   c                    ddl }ddl}ddl}ddl}t	          j                    d         }t          |t                    rd|j        z   }nt          j	                    }t          j        dd          \  }}d}	| $d                    d	 | j        D                       }	t          j        |t           |j        |                                |                                |j        |j        |j        |	fz                                             | x| j                                        D ]^}
t3          |
j        d
d          }|
j        dk    r;t          j        |d|
j        d|
j        d|d                                           _t          j        ||                                           t          j        |           |S )z;Save the current exception's traceback in a temporary file.r   Nr<   z(Error in parallel process)
z.logzsphinx-err-rT   
c              3   ^   K   | ](}d t          |                                          z  V  )dS )z#   %sN)r$   strip)rX   ss     r@   r[   z!save_traceback.<locals>.<genexpr>   sM       % % |A,,...% % % % % %rB   __file__unknownbuiltinz#   z (z) from )platformdocutilsjinja2sphinxsysexc_info
isinstancer   	traceback
format_exctempfilemkstempr?   
messagelogrj   write_DEBUG_HEADER__display_version__python_versionpython_implementation__version____version_details__r   
extensionsvaluesgetattrmoduleversionnameclose)r   r   r   r   r   exc
exc_formatfdr   	last_msgsr   modfiles               r@   save_tracebackr      s   OOOOOOMMMMMM
,..
C#*++ ,4s}D

)++
66HBI
II % %^% % % % %	 HR--**,,1133')E%  &vxx) ) ) >((** 	J 	JCcj*i@@G{i''"xxxggg?@FJ J JHR""$$%%%HRLLLKrB   modname	attributec                     | d S t          |           }|}|                    d          D ]}|rt          ||          }t          |dd           S )NrS   r   )r   splitr   )r   r   r   valueattrs        r@   get_full_modnamer      sg     t7##F E$$ ) ) 	)E4((E5,---rB   zcoding[:=]\s*([-\w.]+)c                   B    e Zd ZdZdeddfdZdedeeef         fdZ	dS )UnicodeDecodeErrorHandlerz8Custom error handler for open() that warns and replaces.r8   r9   Nc                     || _         d S rV   )r8   )r   r8   s     r@   r   z"UnicodeDecodeErrorHandler.__init__      rB   errorc                    |j                             dd|j                  }|j                             d|j                  }|dk    rt	          |j                   }|j                             dd|j                  dz   }t                              t          d          |j         |dz   |j                 dz   |j         |j        |j	                 z   dz   |j         |j	        |         z   | j
        |f           d	|j	        fS )
N   
r   r<   z5undecodable source characters, replacing with "?": %rs   >>>s   <<<)location?)objectrfindstartfindlencountloggerwarningr    endr8   )r   r   	linestartlineendlinenos        r@   __call__z"UnicodeDecodeErrorHandler.__call__  s    L&&ua==	,##E5;77b==%,''G##E1ek::Q>rQRRY]5;%>?&HU[%:;<>DEUYw%678 "&v 6	 	 	8 	8 	8
 UYrB   )
r   r   r   r   r   r   UnicodeDecodeErrorr   intr  rM   rB   r@   r   r     sg        BB      0  U38_            rB   r   c                   >    e Zd ZdZdededdfdZdeddfdZd
d	ZdS )Teez2
    File-like object writing to two streams.
    stream1stream2r9   Nc                 "    || _         || _        d S rV   )r  r	  )r   r  r	  s      r@   r   zTee.__init__+  s    rB   textc                 n    | j                             |           | j                            |           d S rV   )r  r   r	  )r   r  s     r@   r   z	Tee.write/  s4    4   4     rB   c                     t          | j        d          r| j                                         t          | j        d          r| j                                         d S d S )Nflush)hasattrr  r  r	  r   s    r@   r  z	Tee.flush3  sb    4<)) 	!L   4<)) 	!L     	! 	!rB   r   )	r   r   r   r   r	   r   r   r   r  rM   rB   r@   r  r  '  s}          R D    !# !$ ! ! ! !! ! ! ! ! !rB   r  spectotalc                    g }|                      d          }|D ](}	 |                                                     d          }ddg|k    rt          t          |          dk    r,|                    t          |d                   dz
             nt          |          dk    rpt          |d         pd          }t          |d         pt          ||                    }||k    rt          |                    t          |dz
  |                     nt          # t          $ r}t          d| z            |d}~ww xY w|S )	z_Parse a line number spec (such as "1,2,4-6") and return a list of
    wanted line numbers.
    ,-rT   r<   r   rE   zinvalid line number spec: %rN)
r   r   r   r   appendr  maxextendrange	Exception)	r  r  ry   partspartbegendr   r   r   s	            r@   parselinenosr  :  sS    EJJsOOE M M	MZZ\\'',,FBx6!!  V!!S^^a/0000V!!F1IN++&)8s5%'8'8993;;$$U519c223333   	M 	M 	M;dBCCL	M Ls   C?D
E)D<<Entyper   c                     d |                     d| dz
            D             }t          d |D                       | k     rt          d|d|          |S )z@Split an index entry into a given number of parts at semicolons.c                 6    g | ]}|                                 S rM   )r   )rX   xs     r@   rc   zsplit_into.<locals>.<listcomp>W  s     8881QWWYY888rB   ;r<   c              3      K   | ]}|d V  	dS )r<   NrM   )rX   r  s     r@   r[   zsplit_into.<locals>.<genexpr>X  s'      
'
'$
'1
'
'
'
'
'
'rB   invalid  index entry )r   sumr   )r  r  r   r  s       r@   
split_intor(  U  si    88CQ 7 7888E

'
'
'
'
'''!++jeeDEEELrB   c                 d   | dk    r4	 t          dd|          }n# t          $ r t          dd|          }Y nyw xY w| dk    rt          dd|          }n]| dk    rt          dd|          }nE| dk    rt          dd|          }n-| dk    rt          dd|          }nt          d	| d
|          |S )NsinglerE   r<   pairtriple   seeseealsor%  r&  )r(  r   )r  r   results      r@   split_index_msgr1  ]  s    x	48U33FF 	4 	4 	48U33FFF	4	Avu--			Ax//	Aue,,			Aue,,jeeDEEEMs    88r<   r"  c                     t          j                    \  }}}g }t          j        |          }|||  d         z  }|t          j        ||          z  }d                    |          S )z?Format an exception with traceback, but only the last x frames.NrT   )r   r   r   	format_tbformat_exception_onlyr?   )r"  typvaltbrestbress         r@   format_exception_cut_framesr:  r  sc    <>>LCbC##E5!:C9*3444C773<<rB   objnamesourcec                    	 |                      d          }|                    d          }t          |          }|D ]:}|d|z   z  }	 t          ||          }# t          $ r t          |          }Y 7w xY w|S # t          t
          f$ r3}|rt          d| d|d|          |t          d| z  |          |d}~ww xY w)z!Import python object by qualname.rS   r   zCould not import z (needed for )zCould not import %sN)r   popr   r   AttributeErrorImportErrorr   )r;  r<  objpathr   objr   r   s          r@   import_objectrD  }  s   P--$$++a..G$$ 	- 	-DsTz!G-c4((! - - -#G,,- 
K( P P P 	P .")''666"3479 9>AB !!6!@#FFCOPs<   AA: AA: A52A: 4A55A: :B>.B99B>r   c                    |                      d          }t          |d          D ]\  }}	 d                    |d|                   }t          |           3# t          $ rm |d|dz
           rDd                    |d|dz
                     d                    ||dz
  d                   fcY c S dd                    |          fcY c S t
          $ r Y w xY w| dfS )a  Split full qualified name to a pair of modname and qualname.

    A qualname is an abbreviation for "Qualified name" introduced at PEP-3155
    (https://peps.python.org/pep-3155/).  It is a dotted path name
    from the module top-level.

    A "full" qualified name means a string containing both module name and
    qualified name.

    .. note:: This function actually imports the module to check its existence.
              Therefore you need to mock 3rd party modules if needed before
              calling this function.
    rS   r<   NrT   )r   rm   r?   r   rA  
IndexError)r   r  rf   _partr   s        r@   split_full_qualified_namerH    s    JJsOOEeQ'' 
 
5		hhuRaRy))G'"""" 	- 	- 	-Va!eV} -xxfq1uf..q1uvv0G0GGGGGGGSXXe__,,,,,, 	 	 	D	 8Os   ,AAC4C	CCuric                 r   t          t          |                     }|d                             d                              d          |d<   t	          |d                                         d          |d<   d t          |d                   D             }t          |          |d<   t          |          S )Nr<   idnaasciirE   r;   c                 @    g | ]\  }}||                                 fS rM   )r   )rX   qvs      r@   rc   zencode_uri.<locals>.<listcomp>  s(    ???!Qa_???rB   r-  )r   r   r   decoder   r   r   r   )rI  r   querys      r@   
encode_urirR    s    #EQxv&&--g66E!H%(//++S11E!H??9U1X+>+>???EE!HerB   urlc                     | rd| v rdS dS )zCheck *url* is URL or not.z://TFrM   )rS  s    r@   isurlrU    s    
 u||turB   chunkc                     t          | t          t          f          r;t          |           dk    rt	          | d                   S | d         d| d         S t	          |           S )Nr<   r   z .. r   )r   r   tupler   r   )rV  s    r@   display_chunkrY    s\    %$'' 2u::??uQx== "1XXXuRyy11u::rB   T	darkgreeniterablesummarycolorstringify_funcc              #   J  K   d}| D ]y}|dk    r+t                               t          |          d           d}t                                ||          |d           t                               dd           |V  z|dk    rt                               d           d S d S )Nr   Tnonlr<   )r^  rb   rT   )r   infor"   )r\  r]  r^  r_  litems         r@   old_status_iteratorrg    s       	
A  66KKWDK111ANN4((DAAACd###



AvvB vrB   length	verbosityc           
   #   |  K   |dk    rt          | |||          E d {V  d S d}t          |          }| D ]c}|dz  }d|d|z  |z  t          | ||                    fz  }|r|dz  }nt          |          }t                              |d           |V  d|dk    rt                              d           d S d S )	Nr   r<   z%s[%3d%%] %sd   r   Tra  rT   )rg  r"   r#   r%   r   rd  )	r\  r]  r^  rh  ri  r_  re  rf  r   s	            r@   status_iteratorrl    s       {{&x%PPPPPPPPP	A7mmG  	QgsQw'7%X\I]I]9^9^__ 	#IAA""AAD!!!



1uuB urB   c                       e Zd ZdS )SkipProgressMessageN)r   r   r   rM   rB   r@   rn  rn    s        DrB   rn  c                   Z    e Zd ZdeddfdZddZdee         dedede	fd	Z
d
edefdZdS )progress_messagemessager9   Nc                     || _         d S rV   )rq  )r   rq  s     r@   r   zprogress_message.__init__  r   rB   c                 h    t                               t          | j        dz             d           d S )Nz... Tra  )r   rd  r"   rq  r   s    r@   	__enter__zprogress_message.__enter__  s-    D.//d;;;;;rB   exc_type	exc_valuer   c                 X   t          |t                    rCt                              t	          d                     |j        rt          j        |j          dS |r(t                              t	          d                     n't                              t	          d                     dS )NskippedTfaileddoneF)r   rn  r   rd  r    args)r   ru  rv  r   s       r@   __exit__zprogress_message.__exit__  s    i!455 	$KK9&&&~ -Y^,,4 	$KK8%%%%KK6

###urB   fc                 v     t          j                  dt          dt          dt          f fd            }|S )Nr{  r   r9   c                  L    5   | i |cd d d            S # 1 swxY w Y   d S rV   rM   )r{  r   r}  r   s     r@   wrapperz*progress_message.__call__.<locals>.wrapper  s     * *q$)&))* * * * * * * * * * * * * * * * * *s   )	functoolswrapsr   )r   r}  r  s   `` r@   r  zprogress_message.__call__  sX    				*3 	*# 	*# 	* 	* 	* 	* 	* 	* 
		* rB   r   )r   r   r   r   r   rt  r   r  r   boolr|  r   r  rM   rB   r@   rp  rp    s             < < < <i Y SV [_    ( x      rB   rp  epochc                 \    ddl m} t          j        |           }d} |||d          dz   S )z)Convert datetime format epoch to RFC1123.r   )format_datetimezEEE, dd LLL yyyy hh:mm:ssen)localez GMT)babel.datesr  r   fromtimestamp)r  r  dtfmts       r@   epoch_to_rfc1123r    sE    ++++++			&	&B
%C?2s4000699rB   rfc1123c                 <    t          t          | d                    S )Nz%a, %d %b %Y %H:%M:%S %Zr   )r  s    r@   rfc1123_to_epochr    s    (7$>??@@@rB   c                     dddgdddgddgd	d
gddgddgddgddgddgddgddgddgddgddgg} dd d!d"gd#d$d%gd&d'gg}d0d)t           d*t          d+t          ffd, |           } |          }t          j        d-|d.|d(|d/          S )1N:AZrg   az   À   Ö   Ø   ö   øu   ˿u   Ͱu   ͽu   Ϳu   ῿u   ‌u   ‍u   ⁰u   ↏u   Ⰰu   ⿯u   、u   ퟿u   豈u   ﷏u   ﷰu   �u   𐀀u   󯿿z\-z\.09   ·u   ̀u   ͯu   ‿u   ⁀|entriessplitterr9   c                     g }| D ]O}t          |t                    r#|                    d |d          z             :|                    |           P|                    |          S )Nz[%s]r  )r   r   r  r?   )r  r  resultsra   converts       r@   r  z xmlname_checker.<locals>.convert/  sv     	& 	&E%&& &vs(;(;;<<<<u%%%%}}W%%%rB   (z)(z)*)r  )r   r   recompile)name_start_chars
name_charsstart_chars_regexname_chars_regexr  s       @r@   xmlname_checkerr  !  s0    	c3ZsCj8X*>	8x2Xx4H	8x2Xx4H	8x2Xx4H	8|\:< 	usCj(Xx,@	8J
& & & &c & & & & & &   011wz**::,,,.>.>.>@ A A ArB   )rM   rM   )rB   r_   rV   )ur   r  r   rj   r=   r  r   r   r   rI   r   	importlibr   r   timer   r   typingr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   urllib.parser   r   r   r   r   sphinx.deprecationr   sphinx.errorsr   r   r   sphinx.localer    rK   r!   sphinx.util.consoler"   r#   r$   r%   sphinx.util.matchingr&   sphinx.util.nodesr'   r(   r)   r*   sphinx.util.osutilr+   r,   r-   r.   r/   r0   r1   r2   sphinx.util.typingr3   sphinx.applicationr4   	getLoggerr   r   r  r5   __annotations__r6   r   rA   rL   ru   r}   dictr   r   r   r   r   r   r   
_coding_rer   r  r  r  r(  r1  r:  rD  rH  rR  r  rU  rY  rZ  rg  rl  r  rn  rp  floatr  r  r  rM   rB   r@   <module>r     s   # # #      				     				 



             # # # # # #       ! ! ! ! ! ! ! !B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B O O O O O O O O O O O O O O 7 7 7 7 7 7 T T T T T T T T T T             M M M M M M M M M M M M * * * * * *O O O O O O O O O O O OH H H H H H H H H H H H H H H H H H H H * * * * * * *)))))) 
	8	$	$ F##w # # #"*344 4 4 4
>c >C >C > > > >
+S +S + + + + DFCE  ).{C/?)@).{C/?)@JRSV-   B$S#X $# $# $ $ $ $' ' ' ' 't ' ' 'TB B B B C C C C1 1 1 1 1D 1 1 18"* "s " " " "J.c .c .hsm . . . .$ RZ122
               ,! ! ! ! ! ! ! !&s 3 49    6# S  c    # c d3i    * 3 s    P P3 P P P P P P,C E(3-2D,E    <C C    s t          GCLL KV?L (1+  C (0#(<&q$}5     GR"#a;H hqk C  03$,cUCZ$8 #1dD=1   ,	 	 	 	 	) 	 	 	       ::E :c : : : :Ac Ae A A A AA A A A A A ArB   