
    P&iV                        d Z ddlZddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZ ej        d	k    rdd
lmZ nddlmZ  G d d          Z	 ddlmZ n# e$ r dZY nw xY wedediZdedefdZeej         ej!        f         Z" e#d          Z$ee%gef         Z&ee%e%e%e'ee	e%ef         ee%         geeej(                 eej)                 f         f         Z*e	e%ee%gef         f         Z+eej(        ge%f         Z,ee%e%e%e%f         Z-e	e%e	e%e-f         f         Z.	 d%dedee	e%ef                  dee	         de	e%ef         fdZ/dedefdZ0d&dee         de%de%fdZ1d&dee         de%de%fdZ2d&dee         de%de%fdZ3d&dede%de%fd Z4d&dede%de%fd!Z5d&dede%de%fd"Z6 ed#d$ee%gef         ie           dS )'zThe composite types for Sphinx.    N)Struct)TracebackType)
AnyCallableDict	GeneratorListOptionalTupleTypeTypeVarUnion)nodes)Inliner)RemovedInSphinx60Warningdeprecated_alias      )
ForwardRef)_ForwardRefc                   <    e Zd ZdZddededdfdZded	edefd
ZdS )r   z#A pseudo ForwardRef class for py36.Targis_argumentreturnNc                     || _         d S N)r   )selfr   r   s      _/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/util/typing.py__init__zForwardRef.__init__   s    DHHH    globalnslocalnsc                 V    t          | j                  }|                    ||          S r   )r   r   
_eval_type)r   r"   r#   refs       r   	_evaluatezForwardRef._evaluate   s%    dh''C>>(G444r!   )T)	__name__
__module____qualname____doc__r   boolr    r   r'    r!   r   r   r      sq        11	 	 	$ 	$ 	 	 	 		5d 	5T 	5c 	5 	5 	5 	5 	5 	5r!   r   )	UnionTypezstruct.Structztypes.TracebackTypeobjr   c                 8    	 | t           v S # t          $ r Y dS w xY w)z)Check *obj* is an invalid built-in class.F)INVALID_BUILTIN_CLASSES	TypeError)r/   s    r   is_invalid_builtin_classr3   (   s5    ---   uus    
r"   r#   c                     ddl m} 	 t          j        | ||          S # t          $ r  || di           cY S t
          $ r  || di           cY S t          $ r  || di           cY S t          $ r i cY S w xY w)zReturn a dictionary containing type hints for a function, method, module or class
    object.

    This is a simple wrapper of `typing.get_type_hints()` that does not raise an error on
    runtime.
    r   )safe_getattr__annotations__)sphinx.util.inspectr5   typingget_type_hints	NameErrorAttributeErrorr2   KeyError)r/   r"   r#   r5   s       r   r9   r9   H   s     100000$S(G<<< 8 8 8|C!2B77777 8 8 8|C!2B77777 8 8 8 |C!2B77777   			s     A5A5A5'A54A5typc                 Z    t          | dd          }|dk    ot          | t                    S )z&Check *typ* is system defined TypeVar.r)    r8   )getattr
isinstancer   )r=   modnames     r   is_system_TypeVarrC   d   s-    c<,,Gh;:c7#;#;;r!   fully-qualified-except-typingclsmodec                 P   ddl m}m} ddlm} dk    rd}nd}	 | 	| t
          u rdS | t          u rd	S t          | t                    r| S  ||           rd
|| j	        dS  ||           rd
|| j
        d| j	        dS t          |           rd
|t          |          dS |                    |           r/t          j        dk    rd
|| j
        d| j	        dS d| j	        z  S t           rt          | t                     rrt#          | j                  dk    r4d| j        v r+d                    fd| j        D                       }d|z  S d                    fd| j        D                       S | j
        dv rLt)          | d          r2d
| j	        dd                    fd| j        D                       dS d| j	        z  S t          j        dk    rt+          |           S t-          |           S # t.          t0          f$ r |                    |           cY S w xY w)aw  Convert python class to a reST reference.

    :param mode: Specify a method how annotations will be stringified.

                 'fully-qualified-except-typing'
                     Show the module name and qualified name of the annotation except
                     the "typing" module.
                 'smart'
                     Show the name of the annotation.
    r   ismockismockmoduleinspectsmart~r?   Nz:py:obj:`None`...:py:class:``.r   
   :py:class:`%s`    | c              3   <   K   | ]}|t          |          V  d S r   restify.0arF   s     r   	<genexpr>zrestify.<locals>.<genexpr>   s2      !N!NqA!N'!T"2"2!N!N!N!N!N!Nr!   zOptional[%s]c              3   8   K   | ]}t          |          V  d S r   rY   r[   s     r   r^   zrestify.<locals>.<genexpr>   s-      !I!Iq'!T"2"2!I!I!I!I!I!Ir!   )__builtin__builtins__args__z`\ [, c              3   8   K   | ]}t          |          V  d S r   rY   r\   r   rF   s     r   r^   zrestify.<locals>.<genexpr>   s-      IISgc400IIIIIIr!   ]r   )sphinx.ext.autodoc.mockrI   rJ   sphinx.utilrL   NoneTypeEllipsisrA   strr(   r)   r3   r1   	isNewTypesysversion_infor.   lenrb   joinhasattr_restify_py37_restify_py36r;   r2   object_description)rE   rF   rI   rJ   rL   	modprefixargss    `     r   rZ   rZ   j   s    =<<<<<<<######w			'/;#//##H__5S!!  	0J\# 	0 	0)2CLLLAAVC[[ 	0 	0,5Is~~~s|||TT%c** 	0 	0)24KC4P4P4PQQs## 	0')))09	3>>>3<<<XX'#,66 	0:c955 	03<  1$$)=)=zz!N!N!N!NCL!N!N!NNN%,,zz!I!I!I!ICL!I!I!IIII^:::sJ'' 7 7LLLIIIIIICLIIIIIII 
 (#,666))$S$///$S$///I& / / /))#...../s_   G< 	G< G< G< #G< !G< %9G< 	G< )A'G< %G< 7A
G< 	G< G< ,G< <&H%$H%c                    ddl m} dk    rd}nd}|                    |           r| j        dk    r| j        t
          u rt          | j                  dk    r}| j        d         t          u rit          | j                  d	k    r3d
	                    fd| j        dd         D                       }d|z  S dt          | j        d                   z  S d
	                    fd| j        D                       }d|z  S |                    |           rt          | j        t          j                  rt          | j                  }n[t          | dd          r5| j        dk    rd| j        d| j        d}n+d|| j        d| j        d}nt          | j                  }t          | dd          }t!          | d          snt#          d | j        D                       rn| j        dk    r_| j        dk    rTd
	                    fd| j        dd         D                       }|d|dt          | j        d                   dz  }n~| j        dk    r@t          |dd          dk    r+|dd
	                    d  | j        D                       z  z  }n3| j        r,|dd
	                    fd!| j        D                       z  z  }|S t          | t          j                  rd"| j        d| j        dS t$          j        d#k    r!| t          j        u rd"| j         d| j         dS t!          | d$          r3| j        dk    rd| j        d| j        dS d|| j        d| j        dS t          | t.                    r
d%| j        z  S | j        dk    rd"| j        d| j        dS d&|| j        d| j        dS )'z)Convert python class to a reST reference.r   rK   rM   rN   r?   r8   rV      rc   c              3   8   K   | ]}t          |          V  d S r   rY   r[   s     r   r^   z _restify_py37.<locals>.<genexpr>   s-       M MaD!1!1 M M M M M Mr!   Nz8:py:obj:`~typing.Optional`\ [:obj:`~typing.Union`\ [%s]] :py:obj:`~typing.Optional`\ [%s]c              3   8   K   | ]}t          |          V  d S r   rY   r[   s     r   r^   z _restify_py37.<locals>.<genexpr>   s-      DD!WQ--DDDDDDr!   :py:obj:`~typing.Union`\ [%s]_name:py:class:`~rR   rQ   rP   
__origin__rb   c              3   4   K   | ]}t          |          V  d S r   rC   r\   r]   s     r   r^   z _restify_py37.<locals>.<genexpr>   s+      <<!"1%%<<<<<<r!   r   c              3   8   K   | ]}t          |          V  d S r   rY   r[   s     r   r^   z _restify_py37.<locals>.<genexpr>   s-      II!WQ--IIIIIIr!   \ [[], rf   Literal\ [%s]c              3   4   K   | ]}t          |          V  d S r   reprr   s     r   r^   z _restify_py37.<locals>.<genexpr>   s(      )H)Ha$q'')H)H)H)H)H)Hr!   c              3   8   K   | ]}t          |          V  d S r   rY   r[   s     r   r^   z _restify_py37.<locals>.<genexpr>   s-      )Q)Qq'!T*:*:)Q)Q)Q)Q)Q)Qr!   
:py:obj:`~)r      r*   rU   	:py:obj:`)rh   rL   isgenericaliasr)   r   r   ro   rb   ri   rp   rZ   rA   r8   _SpecialFormr@   r~   rq   allrm   rn   r   r(   r*   r   __forward_arg__)rE   rF   rL   ru   rv   textorigins    `     r   rr   rr      sb   ######w			s## 7SNh&&3>U+B+Bs|q  S\"%5%A%A3<  1$$yy M M M M3<;L M M MMMSVZZZ:WS\RS_VZ=[=[[[99DDDDs|DDDDDD3d::				$	$ +Scnf&9:: 	13>400DDS'4(( 	1~)))/2~~~syyyI * 1:	3>>>3999U3>400DlD11sJ'' 	R<<s|<<<<< 		R^x''CI,C,C99IIIIs|CRC7HIIIIIDDtttWS\"5Et-L-L-L-LMMDD^x''GFGT,J,Ji,W,WI		)H)H3<)H)H)H H HHHDD\ 	RI		)Q)Q)Q)QCL)Q)Q)Q Q QQQD	C,	-	- S S%(^^^SYYY??		W	$	$
):):<CN<<S\<<<<	n	%	% S>X%%%+.>>>3;K;K;KLL & -6Is~~~sGWGWGWXX	C	$	$ S#"555 >X%%%),FF & +4)S^^^S\\\RRr!   c                    dk    rd}nd}t          | dd           }|dk    rt          | dd           r| j        }nt          | dd           r| j        }nt          | dd           r| j        }nxt          | d	d           rt	          | j                  }nRt          |                               d
d          }n.t          | d          r||d| j        }nt          |           }t          | t          j                  rXt          | d          sH|dk    rd|z  }nd||d}| j        }|r)d                    fd|D                       }|d|z  z   S |S t          | t          j                  r|dk    rd|z  }nd||d}| j        t          | j                  dk    r| j        }nm| j        t           k    r| j        }nUd                    fd| j        d d         D                       }t#          | j        d                   }	|d|d|	dz   S |r)d                    fd|D                       }|d|z  z   S |S t          | d	          r| j        t          j        u r| j        }|t          |          dk    ri|d         t&          u rZt          |          dk    r.d                    fd|d d         D                       }d|z  S dt#          |d                   z  S d                    fd|D                       }d |z  S d!S t          | d          r3| j        dk    rd"| j        d| j        dS d|| j        d| j        dS t          | d          r3| j        dk    rd#| j        d| j        dS d$|| j        d| j        dS t          | d%          r3| j        dk    rd#| j        d| j        dS d$|| j        d| j        dS | j        dk    rd#| j        d|dS d$|| j        d|dS )&NrM   rN   r?   r)   r8   r~   r*   r   r   typing.rR   __tuple_params__z:py:class:`~typing.%s`rP   rQ   rc   c              3   8   K   | ]}t          |          V  d S r   rY   r\   prF   s     r   r^   z _restify_py36.<locals>.<genexpr>
  -      !C!Cq'!T"2"2!C!C!C!C!C!Cr!   r   ry   c              3   8   K   | ]}t          |          V  d S r   rY   re   s     r   r^   z _restify_py36.<locals>.<genexpr>  s-      MMCWS$//MMMMMMr!   rx   r   r   rf   c              3   8   K   | ]}t          |          V  d S r   rY   r   s     r   r^   z _restify_py36.<locals>.<genexpr>  r   r!   rV   c              3   8   K   | ]}t          |          V  d S r   rY   r   s     r   r^   z _restify_py36.<locals>.<genexpr>(  s-      )P)Pq'!T*:*:)P)P)P)P)P)Pr!   z;:py:obj:`~typing.Optional`\ [:py:obj:`~typing.Union`\ [%s]]r{   r   c              3   8   K   | ]}t          |          V  d S r   rY   r   s     r   r^   z _restify_py36.<locals>.<genexpr>.  s-      %G%G1ga&6&6%G%G%G%G%G%Gr!   r}   z:py:obj:`Union`r   r   r   r(   )r@   r~   r*   r   	stringifyr   r   replacerq   rA   r8   	TupleMetarb   rp   GenericMetaro   r   rZ   r   ri   r)   r(   )
rE   rF   ru   modulequalnamereftextparams	param_strrv   results
    `        r   rs   rs      s    w			S,--F3&& 		8yHHS.$// 	8'HHS+T22 	8*HHS,-- 	8 00HHCyy((B77HH	n	%	%  )	66633C3CD993()) GO/00GOX.9GG  -6Ixxx@G 			!C!C!C!CF!C!C!CCCIY222N	C+	,	, :OX.9GG  -6Ixxx@G<3s|#4#4#9#9\FF^y((\FF99MMMM3<;LMMMMMDS\"-t44F7fff=== 			!C!C!C!CF!C!C!CCCIY)444N
#|
$
$ &O
.FL
(
(6{{Q6":#9#9v;;?? $		)P)P)P)PF3B3K)P)P)P P PI?AJK L ?PQTXAYAYYY II%G%G%G%G%G%G%GGG	7)CC$$	n	%	% O>X%%%+.>>>3;K;K;KLL & -6Is~~~sGWGWGWXX	g		 O>X%%%),CC & +4)S^^^SYYYOO	j	!	! O>X%%%),FF & +4)S^^^S\\\RR >X%%%),BB & +4)S^^^XXXNNr!   
annotationc                    ddl m}m} ddlm} |dk    rd}nd}t          | t                    r6|                     d          r|                     d          r
| dd	         S | S t          | t                    r:| j
        d
k    r|dv r| j        S |d                    | j
        | j        g          z   S |                    |           r+t          j        dk    r|| j
        d| j        z   S | j        S | st!          |           S | t"          u rdS  ||           r
|| j        z   S  ||           r|| j
        d| j        z   S t%          |           r|t&          |          z   S t          |                               d          rnWt)          | dd          dk    r7t)          | dd          r&t+          | d          rt!          |           S | j        S | t.          u rdS t          j        dk    rt1          | |          S t3          | |          S )a  Stringify type annotation object.

    :param mode: Specify a method how annotations will be stringified.

                 'fully-qualified-except-typing'
                     Show the module name and qualified name of the annotation except
                     the "typing" module.
                 'smart'
                     Show the name of the annotation.
                 'fully-qualified'
                     Show the module name and qualified name of the annotation.
    r   rH   rK   rM   rN   r?   'rV   rx   r8   )rD   rM   rR   rS   Nonetyping.Annotatedr)   Nra   r*   rb   rO   r   )rg   rI   rJ   rh   rL   rA   rk   
startswithendswithr   r)   r(   rp   rl   rm   rn   r   ri   r3   r1   r@   rq   r*   rj   _stringify_py37_stringify_py36)r   rF   rI   rJ   rL   ru   s         r   r   r   K  s    =<<<<<<<######w			*c"" %  %% 	**=*=c*B*B 	ad##	J	(	( !X--BBB&&sxx)>
@S(TUUUU			:	&	& g%%**?*?*?ATATUUU&& J	x		v	j	!	! :...	
		 j&;&;&;Z=P=PQQQ	!*	-	- 2:>>>	Z	#	#$6	7	7 	
*lD
1
1Z
?
?
*nd
3
3 @:z** 	+
###**	x		u
6!!z4000z4000r!   c                    t          | dd          }d}|dk    rt          | dd          r| j        }n|dk    rrt          | dd          r| j        }nAt          | dd          r| j        }n(t	          | j                                      dd          }d	k    rd
|z  }ndk    rd|z  }n}t          | d          rd	k    rd
|z  }nd|z  }| j        }nTt          | d          rt	          | j                  }n.t          rt          | t                    rd}nt          |           S t          | dd          rt          | j        t          t          f          sng|dv rt          | j                  dk    r| j        d         t          u rrt          | j                  dk    r9d                    fd| j        dd         D                       }|d|d|dS |dt	          | j        d                   dS d                    fd| j        D                       }|d|dS |dk    rqt          | j                  dk    r5d| j        v r,d                    d | j        D                       }|d|dS d                    d | j        D                       S |dk    rVd                    fd | j        dd         D                       }t	          | j        d                   }||d!|d"|dS |d#k    r.d                    d$ | j        D                       }||d%|dS t#          |                               d&          rt	          | j        d                   S t'          d' | j        D                       r||z   S d                    fd(| j        D                       }||d%|dS ||z   S ))zstringify() for py37+.r)   Nr?   r8   r   r~   r*   r   rM   ~%s.fully-qualified%s.r   ztypes.Unionrb   )r
   r   rV   rx   ry   rc   c              3   8   K   | ]}t          |          V  d S r   r   r[   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s-      $Z$ZAYq$%7%7$Z$Z$Z$Z$Z$Zr!   	Optional[Union[]]r   rf   c              3   8   K   | ]}t          |          V  d S r   r   r[   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s-       Q Q1d!3!3 Q Q Q Q Q Qr!   rW   c              3   8   K   | ]}|t          |          V  d S r   r   r   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s-      !Q!Q1q!Q)A,,!Q!Q!Q!Q!Q!Qr!   c              3   4   K   | ]}t          |          V  d S r   r   r   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s(      !L!L1)A,,!L!L!L!L!L!Lr!   r   c              3   8   K   | ]}t          |          V  d S r   r   r[   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s-      RRAYq$//RRRRRRr!   [[r   r   c              3   4   K   | ]}t          |          V  d S r   r   r   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s(      BBT!WWBBBBBBr!   [r   c              3   4   K   | ]}t          |          V  d S r   r   r   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s+      CC!"1%%CCCCCCr!   c              3   8   K   | ]}t          |          V  d S r   r   r[   s     r   r^   z"_stringify_py37.<locals>.<genexpr>  s-      MMAYq$//MMMMMMr!   )r@   r   r~   r*   r   r   r   rq   r.   rA   r   rb   listtuplero   ri   rp   rk   r   r   )r   rF   r   ru   r   rv   returnss    `     r   r   r     s   Zt44FIgj2CTJJ-	8		:w-- 	O!'HHZ66 	O!.HH !677??	2NNH7??II&&&I	^	,	,  7??III*	\	*	*  Z2D99	  z*i88    Jz:t,, #<*-e}== "	<...:&''!++
0CB0G80S0Sz*++a//99$Z$Z$Z$ZATUXVXUXAY$Z$Z$ZZZD8A		999dddSS/8yy/89LQ9OQU/V/V/V/VX X yy Q Q Q QZ=P Q Q QQQ(1		44488&&:&''!++
8K0K0Kzz!Q!Q
8K!Q!Q!QQQ+499ddd;;zz!L!L
8K!L!L!LLLL##99RRRR9LSbS9QRRRRRD
 3B 7>>G'0y(((DDD'''JJ""99BBj.ABBBBBD!*HHHddd;;__''(:;; 	<Z03T:::CCz/BCCCCC 	<x''99MMMM9LMMMMMD!*HHHddd;;xr!   c                 J   t          | dd          }d}|dk    rt          | dd          r| j        }n|dk    rt          | dd          r| j        }nbt          | dd          r| j        }nIt          | dd          rt	          | j                  }n#t          |                               d	d          }d
k    rd|z  }nDdk    rd|z  }n8t          | d          rd
k    rd|z  }nd|z  }| j        }nt          |           }t          | t          j                  rIt          | d          s9| j        }|r+d                    fd|D                       }||d|dS ||z   S t          | t          j                  rd}| j        t          | j                  dk    r| j        }nm| j        t           k    r| j        }nUd                    fd| j        dd         D                       }t	          | j        d                   }||d|d|dS |+d                    fd|D                       }||d|dS nt          | d          r| j        t          j        u r| j        }|t          |          dk    rr|d         t$          u rct          |          dk    r4d                    fd|dd         D                       }|d|d|dS |dt	          |d                   dS d                    fd|D                       }|d|dS ||z   S ) zstringify() for py36.r)   Nr?   r8   r   r~   r*   r   r   rM   r   r   r   r   rc   c              3   8   K   | ]}t          |          V  d S r   r   r   s     r   r^   z"_stringify_py36.<locals>.<genexpr>  -      !E!E)At"4"4!E!E!E!E!E!Er!   r   rf   ry   c              3   8   K   | ]}t          |          V  d S r   r   re   s     r   r^   z"_stringify_py36.<locals>.<genexpr>  s=       : :cYsD11 : : : : : :r!   rx   r   r   c              3   8   K   | ]}t          |          V  d S r   r   r   s     r   r^   z"_stringify_py36.<locals>.<genexpr>  r   r!   rV   c              3   8   K   | ]}t          |          V  d S r   r   r   s     r   r^   z"_stringify_py36.<locals>.<genexpr>  s-      )R)R)At*<*<)R)R)R)R)R)Rr!   r   r   r   r   c              3   8   K   | ]}t          |          V  d S r   r   r   s     r   r^   z"_stringify_py36.<locals>.<genexpr>  s-      %I%IQi4&8&8%I%I%I%I%I%Ir!   )r@   r   r~   r*   r   r   r   r   rq   rA   r8   r   rb   rp   r   ro   r   r   ri   )	r   rF   r   ru   r   r   r   rv   r   s	    `       r   r   r     s   Zt44FIgj2CTJJ-	8		:w-- 	?!'HHZ66 	?!.HHZt44 	? !677HHJ''//	2>>H7??II&&&I	^	,	, $7??III*
##:v/00 ">
$677">$ 	(		!E!E!E!Ef!E!E!EEEI!*HHHiii@@x''	J 2	3	3 >&#j.A*B*Ba*G*G(FF"i//(FF99 : : : : * 3CRC 8: : : : :Dz22677F'0y(((DDD&&&II		!E!E!E!Ef!E!E!EEEI!*HHHiii@@  *l
+
+ >

6<
/
/$6{{Q6":#9#9v;;?? $		)R)R)R)RfSbSk)R)R)R R RI8A		999iiiXX/8yy)F1It:T:T:T:TUU II%I%I%I%I&%I%I%III	(1		999==xr!   zsphinx.util.typingDirectiveOption)NN)rD   )7r+   rm   r8   structr   typesr   r   r   r   r   r	   r
   r   r   r   r   docutilsr   docutils.parsers.rst.statesr   sphinx.deprecationr   r   rn   r   r   r.   ImportErrorr1   r,   r3   TextTextElementTextlikeNodetyperi   rk   PathMatcherintNodesystem_messageRoleFunction
OptionSpecTitleGetterInventoryItem	Inventoryr9   rC   rZ   rr   rs   r   r   r   r-   r!   r   <module>r      s   % % 



              ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^       / / / / / / I I I I I I I If!!!!!!!""""""5 5 5 5 5 5 5 5   III
 O( # $     UZ!223 4:: ud{# c3Wd38nd3iPd5:.U5I0JJKL M #xs
++,
 
|S() c3S()d3-../	 TX 	 c3h0BJ4.	#s(^   8<3 <4 < < < <:/ :/$ :/s :/QT :/ :/ :/ :/z@S @Sx~ @SS @SWZ @S @S @S @SF^O ^Ox~ ^OS ^OWZ ^O ^O ^O ^OB?1 ?1# ?1S ?1s ?1 ?1 ?1 ?1DG  G  G 3 G UX G  G  G  G TA  A  A 3 A UX A  A  A  A H  %&#(< *	+ + + + +s   )A0 0A:9A: