
    7 fA              	      `   d Z ddlm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mZmZmZmZ ddlmZ dd	lmZ erddlZ	 dd
l	mZ n# e$ r dZY nw xY wede
diZd'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)dZ-d*dZ.d+d,dZ/	 d+d-d Z0d.d#Z1d$e0d%fiZ2d& Z3dS )/zThe composite types for Sphinx.    )annotationsN)Sequence)Struct)TracebackType)TYPE_CHECKINGAnyCallable
ForwardRefTypeVarUnion)nodes)Inliner)	UnionTypezstruct.Structztypes.TracebackTypeobjr   returnboolc                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    H/var/www/equiseq/venv/lib/python3.11/site-packages/sphinx/util/typing.pyis_invalid_builtin_classr      s5    ---   uus    
globalnsdict[str, Any] | Nonelocalnsdict[str, Any]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.inspectr   typingget_type_hints	NameErrorAttributeErrorr   KeyError)r   r   r   r   s       r   r!   r!   C   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.
__module__ r    )getattr
isinstancer   )r%   modnames     r   is_system_TypeVarr,   ^   s-    c<,,Gh;:c7#;#;;    fully-qualified-except-typingclstype | Nonemodestrc                ^   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 |                    |           r7t          j        dd         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 rht)          | d          rN| j        sd
| j	         d| j        dS d                    fd| j        D                       }d
| j	         d| dS d| j	        z  S |                    |           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t1          | j        d                   z  S d                    fd | j        D                       }d!|z  S |                    |           rt          | j        t2          j                  rt1          | j                  }nXt7          | d"d          r2| j        }	| j
        dk    rd#| j
         d|	 d}n&d
| | j
         d|	 d}nt1          | j                  }t7          | d$d          }
t)          | d          snbt;          d% | j        D                       rnB| j
        dk    r_| j        d&k    rTd                    fd'| j        dd         D                       }|d(| d)t1          | j        d                    dz  }n| j
        dk    rt7          |
d"d          d*k    rg }| j        D ]^}|                    |          r%|                    tA          |+                     <|                    tC          |                     _|d,d                    |          z  z  }~n3| j        r,|d,d                    fd-| j        D                       z  z  }|S t          | t2          j                  rd.| j
         d| j         dS t          j        dd         d/k    r!| t2          j"        u rd.| j
         d| j	         dS t)          | d0          r3| j
        dk    rd#| j
         d| j#         dS d
| | j
         d| j#         dS t          | tH                    r
d| j%        z  S | j
        dk    rd.| j
         d| j	         dS d1| | j
         d| j	         dS # tL          tN          f$ r |(                    |           cY S w xY w)2aw  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`...z:py:class:``.      
   z:py:class:`%s`    | c              3  <   K   | ]}|t          |          V  d S Nrestify.0ar1   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 rD   rE   rG   s     r   rJ   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 rD   rE   rH   argr1   s     r   rJ   zrestify.<locals>.<genexpr>   s-      -Y-YSgc4.@.@-Y-Y-Y-Y-Y-Yr-   r    c              3  8   K   | ]}t          |          V  d S rD   rE   rG   s     r   rJ   zrestify.<locals>.<genexpr>   sI       %A %A)* &-Q%5%5 %A %A %A %A %A %Ar-   z8:py:obj:`~typing.Optional`\ [:obj:`~typing.Union`\ [%s]]z :py:obj:`~typing.Optional`\ [%s]c              3  8   K   | ]}t          |          V  d S rD   rE   rG   s     r   rJ   zrestify.<locals>.<genexpr>   sA       !8 !8%& ")D!1!1 !8 !8 !8 !8 !8 !8r-   z:py:obj:`~typing.Union`\ [%s]_namez:py:class:`~
__origin__c              3  4   K   | ]}t          |          V  d S rD   r,   rH   rI   s     r   rJ   zrestify.<locals>.<genexpr>   s+      @@a&q))@@@@@@r-   r	   c              3  8   K   | ]}t          |          V  d S rD   rE   rG   s     r   rJ   zrestify.<locals>.<genexpr>   s-       M MaD!1!1 M M M M M Mr-   z\ [[], Literal)r1   z\ [%s]c              3  8   K   | ]}t          |          V  d S rD   rE   rG   s     r   rJ   zrestify.<locals>.<genexpr>   s-      -U-U1ga.>.>-U-U-U-U-U-Ur-   z
:py:obj:`~)r?      __qualname__z	:py:obj:`))sphinx.ext.autodoc.mockr5   r6   sphinx.utilr7   NoneTypeEllipsisr*   r2   __name__r'   r   r   	isNewTypesysversion_infor   lenrN   joinhasattrisgenericaliasrX   r   rF   r    _SpecialFormr)   rW   allisenumattributeappend_format_literal_enum_argreprr   ra   r
   __forward_arg__r#   r   object_description)r/   r1   r5   r6   r7   	modprefixargsconcatenated_argstextcls_nameoriginliteral_argsrI   s    `           r   rF   rF   d   s    =<<<<<<<######w			h/;#//##H__5S!! a	OJ\# _	O;;CL;;;;VC[[ ]	OLLCNLLS\LLLL%c** [	OKK,CC,HKKKKs## Y	O#w..PYPPPPPPP'#,66 S	O:c955 S	O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| NM#,MMCLMMMM$(II-Y-Y-Y-YCL-Y-Y-Y$Y$Y!LclLL8ILLLL'#,66$$S)) D	O.H,,.E))CL!!A%%R(H44s|$$q((99 %A %A %A %A.1l3B3.?%A %A %A A ADWZ^^^>QB/ B/ / / yy !8 !8 !8 !8*-,!8 !8 !8 8 87$>>##C(( 4	O#.&*=>> 	5s~t44gt,, 59>X--F#.FF8FFFDDPPCNPPXPPPDDs~t44S,55F3
++ V@@3<@@@@@ V.H,,i:--yy M M M M3<;L M M MMMKKKb1A4)H)HKKKK8++0N0NR[0[0[! 5 5A..q11 5$++,DQT,R,R,RSSSS$++DGG4444	DIIl$;$;;; L V	DII-U-U-U-U-U-U-U$U$UUUKV011 	O=======bqb!W,,
1B1B@@@@@@@S.)) 	O~))JcnJJs7GJJJJTYTTTAQTTTTZ(( 	O#c&999 ~))DCNDDS\DDDDN9NcnNNs|NNNNI& / / /))#...../s   X 	X X X #X !X %AX '	X 1A'X %X ?2X 23X &	X 0B$X X 3*X H)X ,X 58X .-X X 1X X .X &X,+X,
annotationc               n   ddl m}m} ddlm} dvrdd}t          |          dk    rd}nd	}t          | d
d	          }t          | dd	          }t          | dd	          }	|dk    }
t          | t                    r6| 	                    d          r| 
                    d          r
| dd         S | S t          | t                    r|
rdv r|	S || d|	 z   S  ||           r$t          j        dd         dk    r
|| d|	 z   S |	S | st          |           S | t          u rdS  ||           r||	z   S  ||           r
|| d|	 z   S t!          |           r|t"          |          z   S t          |           	                    d          rnb|dk    rQ|rOt          | dd          x}:|st          |           S d                    fd|D                       }| d| dS |S | t&          u rdS | d}t          | dd          }|s|
r|sdk    rd|z   }|
rdk    rd	}nd	}|
rJ|r|}nt          | d d	          }|r|}n|r|}nt)          | j        d                              d!d	          }nY|r|}nTt/          | d"          rt)          | j                  }n.t0          rt          | t0                    rd#}nt          |           S t          | dd          }|rQt          |t2          t4          f          sn3|d$v r!d%                    fd&|D                       S |d'k    rJd                    fd(|dd         D                       }t)          |d                   }| d)| d*| dS |d+k    r7dd,lm fd-}d                    t9          ||                    }| d.| dS t          |           	                    d          rt)          |d                   S t;          d/ |D                       r||z   S d                    fd0|D                       }| | d| dS ||z   S )1a  Stringify type annotation object.

    :param annotation: The annotation to stringified.
    :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   r4   )rg   >   fully-qualifiedr8   r.   zZ'mode' must be one of 'fully-qualified-except-typing', 'fully-qualified', or 'smart'; got r<   r8   r9   r(   ra   r'   rf   r    'rA   rT   >   r8   r.   Nr=   r>   Noneztyping.AnnotatedrM   rN   rP   c              3  8   K   | ]}t          |          V  d S rD   stringify_annotationrR   s     r   rJ   z'stringify_annotation.<locals>.<genexpr>(  s.      )Z)Zc*>sD*I*I)Z)Z)Z)Z)Z)Zr-   [rO   r:   rt   r.   rW   ztyping.rX   types.UnionType>   r   Optionalr   rB   c              3  8   K   | ]}t          |          V  d S rD   r   rG   s     r   rJ   z'stringify_annotation.<locals>.<genexpr>Y  s.      UU21d;;UUUUUUr-   r	   c              3  8   K   | ]}t          |          V  d S rD   r   rG   s     r   rJ   z'stringify_annotation.<locals>.<genexpr>[  s.      YYq1!T::YYYYYYr-   z
Callable[[r]   r^   )rp   c                     |           r7| j         }dk    r|j         d| j         S |j         d|j         d| j         S t	          |           S )Nr8   r<   )	__class__ra   namer'   rs   )rS   enumclsrp   r1   s     r   format_literal_argz0stringify_annotation.<locals>.format_literal_arga  sq    "?3'' U!mGw")"6CCCCC &0TT73GTT#(TTTCyy r-   zLiteral[c              3  4   K   | ]}t          |          V  d S rD   rZ   r[   s     r   rJ   z'stringify_annotation.<locals>.<genexpr>q  s+      ??!"1%%??????r-   c              3  8   K   | ]}t          |          V  d S rD   r   rG   s     r   rJ   z'stringify_annotation.<locals>.<genexpr>u  s.      TTq1!T::TTTTTTr-   )rb   r5   r6   r   rg   
ValueErrorr)   r*   r2   
startswithendswithr   rh   ri   rs   rd   r   r   rk   re   r   rX   replacerl   r   listtuplerp   mapro   )r}   r1   r5   r6   rg   msgmodule_prefixannotation_qualnameannotation_moduleannotation_nameannotation_module_is_typingrw   rx   annotation_forward_argqualnamerW   annotation_argsreturnsr   rp   s    `                 @r   r   r      s   $ =<<<<<<<------PPP?59? ? ?oow!*nbAA
L"==j*b99O"3x"?*c"" '  %% 	**=*=c*B*B 	ad##	J	(	( !& 	L43]+]+]"" &7#K#K/#K#KKK	:		 BQB7** &7#K#K/#K#KKK"" J	x		v	j	!	! ..	
		 "3GGoGGGG	!*	-	- 6zBBB	Z	#	#$6	7	7 	j	(	(-@	(J
D999DF (J''' $		)Z)Z)Z)ZUY)Z)Z)Z Z Z)@@,=@@@@&&	x		u(+++M$Z1BDII : CY 7??-/M& 	43R+R+RM"  ! 	)-HHJ44E ) $ )./)+J ')R((  
 
 &	\	*	*  '
(=tDD	  z*i88  $ Jj*d;;O "8/D%=99 !	8AAA::UUUU_UUUUUU##99YYYYOTWUWTWDXYYYYYD*?2+>EEG#BBtBBBBBB"";;;;;;
! 
! 
! 
! 
! 
! 99S!3_EEFFD#44T4444__''(:;; 	8'(:DAAA??????? 	8 8++99TTTTOTTTTTD#7X7777778##r-   rS   	enum.Enumc                  | j         }|dk    s|j        dk    rd|j         d|j         d| j         dS d|j         d|j         d| j         dS )Nr8   r    z:py:attr:`~r<   r;   z
:py:attr:`)r   r'   ra   r   )rS   r1   enum_clss      r   rr   rr   {  sq    }Hw(-99VX0VV83HVV38VVVVUH/UU(2GUU#(UUUUr-   	stringifyz'sphinx.util.typing.stringify_annotationc                    | t           vrdt          d| }t          |          ddlm} t           |          \  }} |t          | |d           |S )Nzmodule z has no attribute r   )_deprecation_warning)   r   )remove)_DEPRECATED_OBJECTSrf   r#   sphinx.deprecationr   )r   r   r   deprecated_objectcanonical_names        r   __getattr__r     ss    &&&>>>d>>S!!!777777(;D(A%~4GGGGr-   )r   r   r   r   )NN)r   r   r   r   r   r   r   r   )r%   r   r   r   )r.   )r/   r0   r1   r2   r   r2   )r1   r2   r}   r   r   r2   )rS   r   r1   r2   r   r2   )4__doc__
__future__r   rh   r    collections.abcr   structr   typesr   r   r   r	   r
   r   r   docutilsr   docutils.parsers.rst.statesr   enumr   ImportErrorr   r   TextTextElementTextlikeNodetyperd   r2   r   PathMatcherintdictr   r   Nodesystem_messageRoleFunction
OptionSpecTitleGetterInventoryItem	Inventoryr!   r,   rF   r   rr   r   r    r-   r   <module>r      s   % % " " " " " " 



  $ $ $ $ $ $             K K K K K K K K K K K K K K K K       / / / / / / KKK   III
 O(     UZ!223 4:: ud{# c3Wd38nhsmTd5:.U5I0JJKL M #xs
++,
 
|S() 	 d3-../	 X\    6< < < <{/ {/ {/ {/ {/B 0V$ V$ V$ V$ V$rV V V V &(QR 
	 	 	 	 	s   A AA