
    iE              
         S SK Jr  S SKJr  S SKJrJr  S SKJrJ	r	J
r
Jr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJr  S SKJrJr  \(       a  S SKJr  S S	KJr  \ " S
5      r!\ " S5      r"\ " S5      r#\ " S5      r$\ " S5      r%\ " S5      r&\ " S5      r'\" SS9 " S S5      5       r(\ " S S5      5       r)\ " S S5      5       r* " S S\SS9r+SSS.         S0S jjr,SSS.             S1S jjr-S2S  jr.SS!.           S3S" jjr/SS!.           S4S# jjr0SS!.           S4S$ jjr1SS!.           S4S% jjr2SS!.           S4S& jjr3SSS'.             S5S( jjr4SS!.           S4S) jjr5S6S* jr6SS!.S7S+ jjr7S8S, jr8S9S- jr9S:S. jr:\(" \"\05      \(" \!\-5      \(" \$\25      \(" \#\15      \(" \'\35      \(" \%\45      \(" \&\55      /r;g/);    )annotations)suppress)	dataclassfield)TYPE_CHECKINGAnyCallable	TypedDict)warn)
DocstringAttributeDocstringParameterDocstringRaiseDocstringReturnDocstringSectionDocstringSectionAttributesDocstringSectionParametersDocstringSectionRaisesDocstringSectionReturnsDocstringSectionText)docstring_warningparse_docstring_annotation)Expr)	Docstring)param	parameterargargumentkeykeyword)type)varivarcvar)vartype)returnsreturn)rtype)raisesraiseexcept	exceptionT)frozenc                  8    \ rS rSr% SrS\S'   S\S'   S
S jrSrg	)
_FieldType+   z)Maps directive names to parser functions.zfrozenset[str]namesz.Callable[[Docstring, int, _ParsedValues], int]readerc                B   ^ [        U4S jU R                   5       5      $ )zCheck if a line matches the field type.

Parameters:
    line: Line to check against

Returns:
    True if the line matches the field type, False otherwise.
c              3  L   >#    U  H  nTR                  S U 35      v   M     g7f):N)
startswith).0namelines     \/home/james-whalen/.local/lib/python3.13/site-packages/griffe/_internal/docstrings/sphinx.py	<genexpr>%_FieldType.matches.<locals>.<genexpr>;   s#     F:44??Qtf:..:s   !$)anyr0   )selfr8   s    `r9   matches_FieldType.matches2   s     F4::FFF     N)r8   strr&   bool)__name__
__module____qualname____firstlineno____doc____annotations__r>   __static_attributes__rA   r@   r9   r.   r.   +   s    3::	Gr@   r.   c                  P    \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
rS\S'   Srg)_ParsedDirective>   z<Directive information that has been parsed from a docstring.rB   r8   int
next_index	list[str]directive_partsvalueFrC   invalidrA   N)rD   rE   rF   rG   rH   rI   rS   rJ   rA   r@   r9   rL   rL   >   s$    F
IOJGTr@   rL   c                      \ rS rSr% Sr\" \S9rS\S'   \" \	S9r
S\S'   \" \	S9rS\S	'   \" \	S9rS
\S'   \" \	S9rS\S'   \" \S9rS\S'   SrS\S'   SrS\S'   Srg)_ParsedValuesI   z@Values parsed from the docstring to be used to produce sections.)default_factoryrP   descriptionzdict[str, DocstringParameter]
parameterszdict[str, str | Expr]param_typeszdict[str, DocstringAttribute]
attributeszdict[str, str]attribute_typeszlist[DocstringRaise]
exceptionsNzDocstringReturn | Nonereturn_value
str | Nonereturn_typerA   )rD   rE   rF   rG   rH   r   listrX   rI   dictrY   rZ   r[   r\   r]   r^   r`   rJ   rA   r@   r9   rU   rU   I   sx    J"48K805d0KJ-K).t)DK&D05d0KJ-K&+D&AO^A',T'BJ$B+/L(/"K"r@   rU   c                  0    \ rS rSr% SrS\S'    S\S'   Srg)SphinxOptionsW   z,Options for parsing Sphinx-style docstrings.rC   warn_unknown_paramswarningsrA   N)rD   rE   rF   rG   rH   rI   rJ   rA   r@   r9   rd   rd   W   s    63N7r@   rd   F)totalrf   rg   c               x   [        5       nU(       a  [        S[        SS9  UUS.nU R                  nSnU[	        U5      :  an  XV   n[
         H/  nUR                  U5      (       d  M  UR                  " XU40 UD6n  O   UR                  R                  U5        US-  nU[	        U5      :  a  Mn  [        U5      $ )aP  Parse a Sphinx-style docstring.

Parameters:
    docstring: The docstring to parse.
    warn_unknown_params: Warn about documented parameters not appearing in the signature.
    warnings: Whether to log warnings at all.
    **options: Swallowing keyword arguments for backward-compatibility.

Returns:
    A list of docstring sections.
zDPassing additional options is deprecated, these options are ignored.   )
stacklevelri   r      )rU   r   DeprecationWarninglineslen_field_typesr>   r1   rX   append_parsed_values_to_sections)		docstringrf   rg   optionsparsed_valuesro   curr_line_indexr8   
field_types	            r9   parse_sphinxry   `   s    & "OM SUgtuv  3G
 OOEO
CJ
&%&J!!$''","3"3IP]"iah"i	 ' %%,,T21 CJ
& &m44r@   c                  [        XUS9nUR                  (       a  UR                  $ S n[        UR                  5      S:X  a  UR                  S   nO[        UR                  5      S:X  a)  [        UR                  S   U 5      nUR                  S   nOy[        UR                  5      S:  a2  UR                  S   nU(       a  [        U SSUR                   S35        O.U(       a  [        U SSUR                   S35        UR                  $ XR                  ;   a$  U(       a  [        U SS	U S35        UR                  $ U(       an  U(       ag  [        [        5         U R                  R                  n	X;  a4  S
U S3n
SU 3SU 34 H  nX;   d  M
  U
SU S3-  n
  O   [        U SU
5        S S S 5        [        XXrUS9n[        X5      n[        UUUR                  US9UR                  U'   UR                  $ ! , (       d  f       NS= f)Nrg   rk   rm      r   &Failed to parse field directive from ''zDuplicate parameter entry for 'zParameter 'z+' does not appear in the function signature*z**z. Did you mean 'z'?)r7   
annotationrX   rR   )_parse_directiverS   rO   rp   rQ   r   r   r8   rY   r   AttributeErrorparent_determine_param_annotation_determine_param_defaultr   rR   )rt   offsetrv   rf   rg   ru   parsed_directivedirective_typer7   paramsmessagestarred_namer   defaults                 r9   _read_parameterr      s    (	HM***N
++,1//2	--	.!	33,,Q/
  //2	--	.	2  //3i.TUeUjUjTkkl,mni.TUeUjUjTkkl,mn***'''i.MdVST,UV***'n%%%00F!'v-XY'(Z2dV$=L#-%5l^2#FF %> ")Q8 & -YnfnoJ&y7G%7$**	&MT" &&&) &%s   2G;G;;
H	c                     U R                   R                  UR                  5          R                  $ ! [        [
        4 a     g f = f)N)r   rY   lstripr   r   KeyError)rt   r7   s     r9   r   r      sA    **4;;=9AAAH% s   03 AAr{   c               \   S nUR                   R                  U5      nUb  UnUb  UnU(       a  Ub  Ub  [        U SSU S35        Uc4   U R                  R                  UR                  5          R                  nU$ U$ ! [        [        4 a    U(       a  [        U SSU S35         U$ f = f)Nr   %Duplicate parameter information for 'r   zNo matching parameter for ')	rZ   getr   r   rY   r   r   r   r   )rt   r7   r   rv   rg   r   parsed_param_types          r9   r   r      s     %)J%1155d;$&
!#
N.3D3P)Q*OPTvUV(WX	W"))44T[[]CNNJ
 :	 ) 	W!)Q2MdVST0UV		Ws   
1A? ?(B+*B+c               *   [        XUS9nUR                  (       a  UR                  $ [        UR                  R                  5       5      n[        X`5      n[        UR                  5      S:X  a  UR                  S   nO.U(       a  [        U SSUR                   S35        UR                  $ XrR                  U'   UR                  R                  U5      n	U	b0  U	R                  c  Xyl        UR                  $ [        U SSU S35        UR                  $ )Nr{   rk   rm   r   z#Failed to get parameter name from 'r   r   )r   rS   rO   _consolidate_descriptive_typerR   stripr   rp   rQ   r   r8   rZ   rY   r   r   )
rt   r   rv   rg   ru   r   param_type_str
param_type
param_namer   s
             r9   _read_parameter_typer      s    (	HM***23C3I3I3O3O3QRN+NFJ
++,1%55a8
i.QRbRgRgQhhi,jk***,6j)$$((4E#) &&& i.ST^S__`,ab&&&r@   c                  [        XUS9nUR                  (       a  UR                  $ [        UR                  5      S:X  a  UR                  S   nO.U(       a  [        U SSUR                   S35        UR                  $ S nUR                  R                  U5      nUb  UnO;[        [        [        [        5         U R                  U   R                  nS S S 5        XbR                  ;   a$  U(       a  [        U SSU S35        UR                  $ [!        UUUR"                  S9UR                  U'   UR                  $ ! , (       d  f       No= f)	Nr{   rk   rm   r   r~   r   zDuplicate attribute entry for 'r7   r   rX   )r   rS   rO   rp   rQ   r   r8   r\   r   r   r   r   	TypeErrorr   r   r[   r   rR   )	rt   r   rv   rg   ru   r   r7   r   parsed_attribute_types	            r9   _read_attributer     s=    (	HM***
++,1//2i.TUeUjUjTkkl,mn***$(J *99==dC(*
 nh	:"))$/::J ; '''i.MdVST,UV &&& *<!(..*
  & &&& ;:s   ;D>>
Ec               "   [        XUS9nUR                  (       a  UR                  $ [        UR                  R                  5       5      n[        UR                  5      S:X  a  UR                  S   nO.U(       a  [        U SSUR                   S35        UR                  $ XbR                  U'   UR                  R                  U5      nUb7  UR                  c  Xhl        UR                  $ U(       a  [        U SSU S35        UR                  $ )Nr{   rk   rm   r   z#Failed to get attribute name from 'r   z%Duplicate attribute information for ')r   rS   rO   r   rR   r   rp   rQ   r   r8   r\   r[   r   r   )	rt   r   rv   rg   ru   r   attribute_typeattribute_name	attributes	            r9   _read_attribute_typer   G  s    (	HM***23C3I3I3O3O3QRN
++,1)99!<i.QRbRgRgQhhi,jk***4B!!.1((,,^<I'#1  &&& i.STbSccd,ef&&&r@   c               l   [        XUS9nUR                  (       a  UR                  $ [        UR                  5      S:X  aG  UR                  S   nUR
                  R                  [        XeR                  S95        UR                  $ U(       a  [        U SSUR                   S35        UR                  $ )Nr{   rk   rm   )r   rX   r   z*Failed to parse exception directive from 'r   )r   rS   rO   rp   rQ   r]   rr   r   rR   r   r8   )rt   r   rv   rg   ru   r   ex_types          r9   _read_exceptionr   e  s     (	HM***
++,1"2215  '''WmWm(no &&& 
)Q*TUeUjUjTkkl(mn&&&r@   )warn_missing_typesrg   c               r   [        XUS9nUR                  (       a  UR                  $ UR                  b  UR                  nO U R                  R
                  n[        SXvR                  S9Ul        UR                  $ ! [         a.    U(       a"  U(       a  [        U SSUR                   S35        S n N\f = f)Nr{   r   z!No return type or annotation at 'r    r   )r   rS   rO   r`   r   r   r   r   r8   r   rR   r^   )rt   r   rv   r   rg   ru   r   r   s           r9   _read_returnr   z  s     (	HM***   ,"..
	"))44J "1bZ]s]s!tM&&&  	.!)Q2STdTiTiSjjk0lmJ	s   A> >5B65B6c                   [        XUS9nUR                  (       a  UR                  $ [        UR                  R                  5       5      nXbl        UR                  nUb  Xgl        UR                  $ )Nr{   )	r   rS   rO   r   rR   r   r`   r^   r   )rt   r   rv   rg   ru   r   r`   r^   s           r9   _read_return_typer     si     (	HM***/0@0F0F0L0L0NOK + --L"-&&&r@   c                l   SR                  [        U R                  5      5      n[        U5      /nU R                  (       a=  [        U R                  R                  5       5      nUR                  [        U5      5        U R                  (       a=  [        U R                  R                  5       5      nUR                  [        U5      5        U R                  b%  UR                  [        U R                  /5      5        U R                  (       a$  UR                  [        U R                  5      5        U$ )N
)join_strip_blank_linesrX   r   rY   ra   valuesrr   r   r[   r   r^   r   r]   r   )rv   textresultparam_valuesattribute_valuess        r9   rs   rs     s    99'(A(ABCD&:4&@%AFM44;;=>0>? 8 8 ? ? AB01ABC!!--}/I/I.JKL,]-E-EFGMr@   c          	        [        U R                  U5      u  p4 UR                  SS5      u  pVnUR                  5       n[        X4UR                  S	5      U5      $ ! [         a'    U(       a  [	        U SSU S35        [        X4/ SSS9s $ f = f)
Nr4   rk   r   z-Failed to get ':directive: value' pair from 'r   r   T)rS    )_consolidate_continuation_linesro   split
ValueErrorr   rL   r   )rt   r   rg   r8   rO   _	directiverR   s           r9   r   r     s    6yODH"jja0e KKMEDiooc.BEJJ  Hi.[\`[aab,cd"b$GGHs   A .BBc                l   UnX   R                  5       /nUS-  nU[        U 5      :  ag  X   R                  S5      (       dO  UR                  X   R                  5       5        US-  nU[        U 5      :  a  X   R                  S5      (       d  MO  SR	                  U5      R                  S5      US-
  4$ )Nrm   r4   r   r   )r   rp   r5   rr   r   rstrip)ro   r   rw   blocks       r9   r   r     s    O#**,-E qO
CJ
&u/E/P/PQT/U/UU+22451 CJ
&u/E/P/PQT/U/U 88E?!!$'1)<<<r@   c                &    U R                  SS5      $ )Nz or z | )replace)descriptive_types    r9   r   r     s    ##FE22r@   c                    U (       d  U $ SnSnSn[        U 5       H5  u  pEU(       a  UR                  5       (       a  U(       d  US-  nM/  M1  SnUnM7     XUS-    $ )NFr   rm   T)	enumerateisspace)ro   content_foundinitial_contentfinal_contentindexr8   s         r9   r   r     si     MOM 't||~~ 1$ ! !M!M ( =1#455r@   N)
rt   r   rf   rC   rg   rC   ru   r   r&   list[DocstringSection])rt   r   r   rN   rv   rU   rf   rC   rg   rC   ru   r   r&   rN   )rt   r   r7   rB   r&   r_   )rt   r   r7   rB   r   zstr | Expr | Nonerv   rU   rg   rC   r&   r   )rt   r   r   rN   rv   rU   rg   rC   ru   r   r&   rN   )rt   r   r   rN   rv   rU   r   rC   rg   rC   ru   r   r&   rN   )rv   rU   r&   r   )rt   r   r   rN   rg   rC   r&   rL   )ro   rP   r   rN   r&   ztuple[str, int])r   rB   r&   rB   )ro   rP   r&   rP   )<
__future__r   
contextlibr   dataclassesr   r   typingr   r   r	   r
   rg   r   "griffe._internal.docstrings.modelsr   r   r   r   r   r   r   r   r   r   !griffe._internal.docstrings.utilsr   r   griffe._internal.expressionsr   griffe._internal.modelsr   	frozenset_PARAM_NAMES_PARAM_TYPE_NAMES_ATTRIBUTE_NAMES_ATTRIBUTE_TYPE_NAMES_RETURN_NAMES_RETURN_TYPE_NAMES_EXCEPTION_NAMESr.   rL   rU   rd   ry   r   r   r   r   r   r   r   r   r   rs   r   r   r   r   rq   rA   r@   r9   <module>r      s   #  ( : :    \11 TUi( 45 !,/ /0z* GH  $G G G$    
# 
# 
#8IU 8 !%	-5-5 -5 	-5 -5 -5j !%<'<'<' !<'
 <' <' <' 	<'~   
  &  !	    	 P ''' !'
 ' ' 	'H ,',',' !,'
 ,' ,' 	,'h ''' !'
 ' ' 	'F ''' !'
 ' ' 	'4  $''' !'
 ' ' ' 	'N ''' !'
 ' ' 	'*  MQ 
K
=36&  "67|_-$&:;11}l+!#45r@   