
    JiL                       U d dl mZ d dlZd dlmZ d dlmZ d dlmZ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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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z,m-Z- d d	l.m/Z/m0Z0 d d
l1m2Z2 erd dlm3Z3 d dlm4Z4m5Z5 d dl1m6Z6 d dl7m8Z8 i de/jr                  de/jt                  de/jv                  de/jx                  de/jz                  de/j|                  de/j~                  de/j                  de/j                  de/j                  de/j                  de/j                  de/j                  de/j                  de/j                  de/j                  ZHd]d ZId]d!ZJd"d#	 	 	 	 	 	 	 	 	 d^d$ZKd_d%ZLd&ZMdeNd'<   d(ZOdeNd)<   d*ZPdeNd+<   d,ZQdeNd-<    ej                  d.eP d/eQ d0eP d1eQ d2	ej                  ej                  z        ZUd3eNd4<   eUZVd3eNd5<   eUZWd3eNd6<    ej                  d7eP d8eP d9eM d:eO d;eQ d<ej                  ej                  z        ZXd3eNd=<    ej                  d>      ZYd3eNd?<    ej                  d@      ZZd3eNdA<   d"d"d"dB	 	 	 	 	 	 	 	 	 	 	 	 	 d`dCZ[d"d#	 	 	 	 	 	 	 	 	 dadDZ\d"d"dE	 	 	 	 	 	 	 	 	 	 	 dbdFZ]d"dG	 	 	 	 	 	 	 	 	 dcdHZ^d"d#	 	 	 	 	 	 	 	 	 dddIZ_d"d#	 	 	 	 	 	 	 	 	 dedJZ`d"d#	 	 	 	 	 	 	 	 	 dfdKZad"d#	 	 	 	 	 	 	 	 	 dgdLZbd"d#	 	 	 	 	 	 	 	 	 dhdMZcd"d#	 	 	 	 	 	 	 	 	 didNZdd"d#	 	 	 	 	 	 	 	 	 djdOZed"d#	 	 	 	 	 	 	 	 	 dkdPZfd"d#	 	 	 	 	 	 	 	 	 dldQZg	 	 	 	 	 	 	 	 dmdRZhd"d#	 	 	 	 	 	 	 	 	 dndSZid"d"dT	 	 	 	 	 	 	 	 	 	 	 dodUZjdpdVZke/jt                  e\e/jv                  e]e/jx                  e^e/jr                  e_e/j                  ece/j                  ede/j                  eje/j                  eee/j                  efe/j                  ege/j                  ehe/j                  eie/jz                  e`e/j|                  eae/j~                  ebiZl G dW dXe	dYZ      ZmdYd"d"d"d"d[	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dqd\Zny)r    )annotationsN)suppress)dedent)TYPE_CHECKING	TypedDict)warn)DocstringAttributeDocstringClassDocstringFunctionDocstringModuleDocstringParameterDocstringRaiseDocstringReceiveDocstringReturnDocstringSectionDocstringSectionAdmonitionDocstringSectionAttributesDocstringSectionClassesDocstringSectionDeprecatedDocstringSectionExamplesDocstringSectionFunctionsDocstringSectionModulesDocstringSectionOtherParametersDocstringSectionParametersDocstringSectionRaisesDocstringSectionReceivesDocstringSectionReturnsDocstringSectionTextDocstringSectionTypeAliasesDocstringSectionTypeParametersDocstringSectionWarnsDocstringSectionYieldsDocstringTypeAliasDocstringTypeParameterDocstringWarnDocstringYield)docstring_warningparse_docstring_annotation)DocstringSectionKindLogLevel)ExprName)Pattern)AnyLiteral)Expr)	Docstring
deprecated
parameterszother parametersztype parametersreturnsyieldsreceivesraiseswarnsexamples
attributes	functionsmethodsclassesztype aliasesmodulesstrc                $    | j                          S )N)striplines    s/var/www/html/BankruptcyAI-uat/bankruptcy-ai/venv/lib/python3.12/site-packages/griffe/_internal/docstrings/numpy.py_is_empty_linerD   \   s    zz|    c                T    t        |        xr t        | j                  dd            S )N- )rD   replacerA   s    rC   _is_dash_linerJ   `   s%    d##Mt||C7L(MMrE   T)warningsc                  | j                   }|t        |      k\  rg |fS |}g }t        ||         r|dz  }t        ||         r||   g}|dz  }|t        |      k  r||   }t        |      r|j                  d       n|j	                  d      r|j                  |dd         n|j	                  d      rRt        |      t        |j                               z
  }	|j                  ||	d         |rNt        | |d|dz    d|	        n7|dz   t        |      k  rt        ||dz            rn(|j                  |       |g}|dz  }|t        |      k  r|r|j                  |       ||dz
  fS )N   rH   z        z,Confusing indentation for continuation line z' in docstring, should be 4 spaces, not )lineslenrD   append
startswithlstripr'   rJ   )
	docstringoffsetrK   optionsrP   
new_offsetitemscurrent_itemrB   cont_indents
             rC   _read_block_itemsr\   d   s    OOEU6zJE z*
+a
 z*
+ *%&L!OJ s5z
!Z $#__W%QR)__S!d)c$++-&88K[\ 23!B:PQ>BR S//:m= !^c%j(]5a;P-Q LL& 6La
? s5z
!B \"*q.  rE   c                  | j                   }|t        |      k\  rd|fS |}g }t        ||         r|dz  }t        ||         r|t        |      k  rt        ||         }|r#|t        |      dz
  k  rt        ||dz            rnM|r#|t        |      dz
  k  rt        ||dz            rn(|j	                  ||          |dz  }|t        |      k  rdj                  |      j                  d      |dz
  fS )NrH   rM      
)rP   rQ   rD   rJ   rR   joinrstrip)rU   rV   rW   rP   rX   blockis_emptys          rC   _read_blockrd      s   OOEU6zJE z*
+a
 z*
+
s5z
!!%
"34
SZ!^3eJYZNF[8\
SZ!^3eJYZNF[8\U:&'a
 s5z
! 99U""4(*q.88rE   z\{_RE_OBz\}_RE_CBz\*{0,2}[_a-z][_a-z0-9]*_RE_NAMEz.+_RE_TYPEz
    (?:
        (?P<nt_name>z)\s*:\s*(?P<nt_type>z4)  # name and type
        |  # or
        (?P<name>zu)\s*:\s*  # just name
        |  # or
        \s*:\s*$  # no name, no type
        |  # or
        (?::\s*)?(?P<type>z)\s*  # just type
    )
    r,   _RE_RETURNS
_RE_YIELDS_RE_RECEIVESz
    (?P<names>z(?:,\sz5)*)
    (?:
        \s:\s
        (?:
            (?:z(?P<choices>.+)z)|
            (?P<type>z)
        )?
    )?
    _RE_PARAMETERz^\s*<BLANKLINE>\s*$_RE_DOCTEST_BLANKLINEz(\s*#\s*doctest:.+)$_RE_DOCTEST_FLAGS)warn_unknown_paramswarn_missing_typesrK   c               j   g }t        | fd|i|\  }}|D ]o  }	t        j                  |	d         }
|
s|rt        | |d|	d    d       5|
j	                  d      j                  d      }|
j	                  d      xs d |
j	                  d      }d |r||j                  dd	      d   n<r:t        j                  d
      }
|
r"|
j	                  d      |
j	                  d      rj                  d      rd d t        |	      d	kD  r"dj                  |	d	d        j                         nd^|D ]D  }t        t        t              5  | j                  j                  |   j                   	 d d d         n2 |r/|r-t        | |d|        nt#        | t$        j&                        I|D ]D  }t        t        t              5  | j                  j                  |   j(                  	 d d d         n |rn|rlt        t              5  | j                  j                  }|D ]8  }||vsd| d}d| d| fD ]  }||v s|d| dz  } n t        | ||       : 	 d d d        |j+                  fd|D               r ||fS # 1 sw Y   `xY w# 1 sw Y   xY w# 1 sw Y   ExY w)NrV   r   Could not parse line ''names, typechoicesrM   8^(?P<annotation>.+),\s+default(?: |: |=)(?P<default>.+)$default
annotationz
, optionalir_   rH   z'No types or annotations for parameters 	log_levelzParameter 'z+' does not appear in the function signature***. Did you mean ''?c              3  <   K   | ]  }t        |         yw)valuerz   descriptionN)r   ).0namerz   ry   r   s     rC   	<genexpr>z#_read_parameters.<locals>.<genexpr>#  s&      
hlt7zWbcc
   )r\   rl   matchr'   groupsplitreendswithrQ   r`   ra   r   AttributeErrorKeyErrorparentr2   rz   r(   r*   debugry   extend)rU   rV   ro   rp   rK   rW   r2   rY   rX   itemr   rt   rw   r   paramsmessagestarred_namerz   ry   r   s                    @@@rC   _read_parametersr      s    ,.J *)NFNgNE: 7
##DG,!)Z;QRVWXRYQZZ[9\]G$**40[[(0D
++i( JmmD!,Q/GHHXZdeE++i0"[[6
*--l;#DS)J69$i!mdiiQR)002 pnh7 !*!1!1!<!<T!B!M!MJ p
  2%i?fglfm=no3J	U]UcUcdJ? nh7 '..99$?GGG 
 +.) 	J"))44! JD6)$/v5`"a/0Z2dV,E &L+v5 '-=l^2+N N %& *)ZIJ	J 	 
pu
 	
k7
r z!!?  
	J 	Js0   %J%J J)1J)	J)JJ&)J2	c               p    t        | f||d|\  }}|rt        |      |fS |rt        | |d|        d |fS )NrV   rK   z!Empty parameters section at line )r   r   r'   )rU   rV   rK   rW   r2   rX   s         rC   _read_parameters_sectionr   *  sX     .ieQYe]deJ
)*5zAA)Z3TU[T\1]^rE   )ro   rK   c               r    t        | f|d|d|\  }}|rt        |      |fS |rt        | |d|        d |fS )NF)rV   ro   rK   z'Empty other parameters section at line )r   r   r'   )rU   rV   ro   rK   rW   r2   rX   s          rC   _read_other_parameters_sectionr   9  sg     .!	
 J
 .z:JFF)Z3Z[aZb1cdrE   )ro   c               x   g }t        | fd|i|\  }}|D ]V  }t        j                  |d         }|st        | |d|d    d       3|j	                  d      j                  d      }	|j	                  d      xs d |j	                  d      }
d |
r|
|
j                  dd	      d   n<r:t        j                  d
      }|r"|j	                  d      |j	                  d      t        |      d	kD  r"dj                  |d	d        j                         ndJ|	D ]D  }t        t        t              5  | j                  j                  |   j                  	 d d d         n nt!        | t"        j$                        I|	D ]D  }t        t        t              5  | j                  j                  |   j&                  	 d d d         n |rt        t              5  | j                  j                  }|	D ]O  }||vsd| d| j                  j(                   d}d| d| fD ]  }||v s|d| dz  } n t        | ||       Q 	 d d d        |j+                  fd|	D               Y |rt-        |      |fS t        | |d|        d |fS # 1 sw Y   xY w# 1 sw Y   %xY w# 1 sw Y   exY w)NrV   r   rr   rs   rt   ru   rv   rw   rM   rx   ry   rz   r_   rH   r{   zType parameter 'z' does not appear in the z
 signaturer}   r~   r   r   c              3  <   K   | ]  }t        |         ywr   )r$   )r   r   boundry   r   s     rC   r   z0_read_type_parameters_section.<locals>.<genexpr>  s&      
gk"4w5Vabb
r   z&Empty type parameters section at line )r\   rl   r   r'   r   r   r   rQ   r`   ra   r   r   r   r   type_parametersrz   r(   r*   r   ry   kindr   r    )rU   rV   ro   rW   r   rY   rX   r   r   rt   rw   r   type_paramsr   r   r   ry   r   s                  @@@rC   _read_type_parameters_sectionr   O  s    57O *)NFNgNE: 1
##DG,i7MdSTgYVW5XYG$**40F#+t++i(EmmD!,Q/GHHXZ_`E++i0L169$i!mdiiQR)002= nh7 %,,<<TBMME 
 /ui8>>ZE? nh7 '..>>tDLLG 
 .) 	J'..>>! JD;.$4TF:ST]TdTdTiTiSjjt"u/0Z2dV,E &L+{: '-=l^2+N N %& *)ZIJ	J 	 
ot
 	
_1
f -o>
JJi/UV\U]-^_A  
	J 	Js0   7%J%J#  J0.J00J0J #J-0J9	c                  t        | f||d|\  }}|s|rt        | |d|        d |fS |rt        |      dkD  rt        | |d|        |d   }|d   }t        dj	                  |dd              }t        ||      |fS )Nr   z!Empty deprecated section at line rM   zToo many deprecated items at r   r_   )versiontext)r\   r'   rQ   r   r`   r   )	rU   rV   rK   rW   rY   rX   r   r   r   s	            rC   _read_deprecated_sectionr     s     *)aFXaY`aE:i7XY_X`5abZCJN)Z3PQWPX1YZ8D1gG$))DH%&D%gDA:MMrE   c                  t        | f||d|\  }}|s|rt        | |d|        d |fS g }t        |      D ]  \  }}t        j	                  |d         }	|	s|rt        | |d|d    d       8|	j                         }
|
d   xs |
d   }|
d   xs |
d	   }t        d
j                  |dd              }|7t        t        t        t              5  | j                  j                  r| j                  j                  }n3| j                  j                  r| j                  j                   }nt        t#        |      dkD  r|j$                  r|j&                  j(                  |   }n|j*                  r|j&                  }n,|j,                  r|j&                  j(                  d   }nt        t/        |t0              r|}n(|j$                  r|j&                  j(                  |   }n|}d d d        nt3        || t4        j6                        }|j9                  t;        |xs d||              t=        |      |fS # 1 sw Y   :xY w)Nr   zEmpty returns section at line r   rr   rs   nt_namer   nt_typerv   r_   rM   r^   r{   rH   r   rz   r   )r\   r'   	enumerateri   r   	groupdictr   r`   r   r   r   
ValueErrorr   is_functionr3   is_attributerz   rQ   is_tuplesliceelementsis_iteratoris_generator
isinstancer+   r(   r*   r   rR   r   r   )rU   rV   rK   rW   rY   rX   r3   indexr   r   groupsr   rz   r   return_items                  rC   _read_returns_sectionr     s:    *)aFXaY`aE:i7UV\U]5^_ZG ' &bt!!$q'*!)Z;QRVWXRYQZZ[9\]"i 2F6NI&8&.
diiQR)*.(J? 5##//!*!1!1!9!9J%%22!*!1!1!<!<J$$u:>!**%/%5%5%>%>u%E
%11*4*:*:K'44*4*:*:*C*CA*FK",,%k8<)4J(11)4):):)C)CE)JJ)4J-5 50 4J	U]UcUcdJDJB:[_`aM&bN #7+Z7755 5s   DH<<I	c                  t        | f||d|\  }}|s|rt        | |d|        d |fS g }t        |      D ]y  \  }}t        j	                  |d         }	|	s|rt        | |d|d    d       8|	j                         }
|
d   xs |
d   }|
d   xs |
d	   }t        d
j                  |dd              }|t        t        t        t        t              5  | j                  j                  }|j                  r|j                   }n,|j"                  r|j                   j$                  d   }nt        t'        |t(              r|}n(|j*                  r|j                   j$                  |   }n|}d d d        nt-        || t.        j0                        }|j3                  t5        |xs d||             | t7        |      |fS # 1 sw Y   :xY w)Nr   zEmpty yields section at line r   rr   rs   r   r   r   rv   r_   rM   r{   rH   r   )r\   r'   r   rj   r   r   r   r`   r   r   
IndexErrorr   r   r   rz   r   r   r   r   r   r+   r   r(   r*   r   rR   r&   r"   )rU   rV   rK   rW   rY   rX   r4   r   r   r   r   r   rz   r   
yield_items                  rC   _read_yields_sectionr     s    *)aFXaY`aE:i7TU[T\5]^ZF ' `t  a)!)Z;QRVWXRYQZZ[9\]"i 2F6NI&8&.
diiQR)*.*h
K ,&--88
))!+!1!1J,,!+!1!1!:!:1!=J$$j(3!+J((!+!1!1!:!:5!AJ!+J, , 4J	U]UcUcdJn$*"Y]^_;`< "&):55#, ,s   BGG	c               H   t        | f||d|\  }}|s|rt        | |d|        d |fS g }t        |      D ]O  \  }}t        j	                  |d         }	|	s|rt        | |d|d    d       8|	j                         }
|
d   xs |
d   }|
d   xs |
d	   }t        d
j                  |dd              }|t        t        t              5  | j                  j                  }|j                  rT|j                  j                  d   }t!        |t"              r|}n(|j$                  r|j                  j                  |   }n|}d d d        nt'        || t(        j*                        }|j-                  t/        |xs d||             R t1        |      |fS # 1 sw Y   :xY w)Nr   zEmpty receives section at line r   rr   rs   r   r   r   rv   r_   rM   r{   rH   r   )r\   r'   r   rk   r   r   r   r`   r   r   r   r   r3   r   r   r   r   r+   r   r(   r*   r   rR   r   r   )rU   rV   rK   rW   rY   rX   r5   r   r   r   r   r   rz   r   receives_items                  rC   _read_receives_sectionr     s    *)aFXaY`aE:i7VW]V^5_`ZH ' dt""47+!)Z;QRVWXRYQZZ[9\]"i 2F6NI&8&.
diiQR)*.(3 	3&--55
**$.$4$4$=$=a$@M!-:%2
&//%2%8%8%A%A%%H
%2
	3 	3 4J	U]UcUcdJ(djbZ]abc3d4 $H-z99	3 	3s   A7FF!	c                  t        | f||d|\  }}|s|rt        | |d|        d |fS g }|D ]J  }t        |d   |       }t        dj	                  |dd              }	|j                  t        ||	             L t        |      |fS )Nr   zEmpty raises section at line r   r_   rM   rz   r   )r\   r'   r(   r   r`   rR   r   r   )
rU   rV   rK   rW   rY   rX   r6   r   rz   r   s
             rC   _read_raises_sectionr   L  s     *)aFXaY`aE:i7TU[T\5]^ZF O/QC
diiQR)*n
MNO "&):55rE   c                  t        | f||d|\  }}|s|rt        | |d|        d |fS g }|D ]J  }t        |d   |       }t        dj	                  |dd              }	|j                  t        ||	             L t        |      |fS )Nr   zEmpty warns section at line r   r_   rM   r   )r\   r'   r(   r   r`   rR   r%   r!   )
rU   rV   rK   rW   rY   rX   r7   r   rz   r   s
             rC   _read_warns_sectionr   e  s     *)aFXaY`aE:i7STZS[5\]ZE M/QC
diiQR)*]jdKLM !'33rE   c               P   t        | f||d|\  }}|s|rt        | |d|        d |fS g }|D ]  }|d   }d|v r:|j                  dd      \  }	}
|	j                         }	|
j                         xs d }
n|}	d }
|
<t	        t
        t        t              5  | j                  |	   j                  }
d d d        nt        |
| t        j                        }
t        dj                  |dd              }|j                  t!        |	|
|              t#        |      |fS # 1 sw Y   RxY w)	Nr   z!Empty attributes section at line r   :rM   r{   r_   r   )r\   r'   r   r@   r   r   r   	TypeErrorr   rz   r(   r*   r   r   r`   rR   r	   r   )rU   rV   rK   rW   rY   rX   r9   r   	name_typer   rz   r   s               rC   _read_attributes_sectionr   ~  sJ    *)aFXaY`aE:i7XY_X`5abZ J bG	)(sA6D*::<D#))+3tJDJ.(I> ?&--d3>>
? ? 4J	U]UcUcdJdiiQR)*,$:[_`a!b" &j1:==? ?s   DD%	c                  t        | f||d|\  }}|s|rt        | |d|        d |fS g }|D ]  }|d   }d|v r6|j                  dd      d   }	|	j                         }	|j                         }
n|}	d }
t	        dj                  |dd              j                         }|j                  t        |	|
|              t        |      |fS )Nr   z(Empty functions/methods section at line r   (rM   r_   r   )	r\   r'   r   r@   r   r`   rR   r   r   )rU   rV   rK   rW   rY   rX   r:   r   name_signaturer   	signaturer   s               rC   _read_functions_sectionr     s     *)aFXaY`aE:i7_`f_g5hiZI 
_a. !''Q/2D::<D&,,.I!DIdiiQR)*002*X\]^
_ %Y/;;rE   c                  t        | f||d|\  }}|s|rt        | |d|        d |fS g }|D ]  }|d   }d|v r6|j                  dd      d   }	|	j                         }	|j                         }
n|}	d }
t	        dj                  |dd              j                         }|j                  t        |	|
|              t        |      |fS )Nr   zEmpty classes section at line r   r   rM   r_   r   )	r\   r'   r   r@   r   r`   rR   r
   r   )rU   rV   rK   rW   rY   rX   r<   r   r   r   r   r   s               rC   _read_classes_sectionr     s     *)aFXaY`aE:i7UV\U]5^_ZG 
Za. !''Q/2D::<D&,,.I!DIdiiQR)*002~4ISWXY
Z #7+Z77rE   c                  t        | fd|i|\  }}|st        | |d|        d |fS g }|D ]N  }|d   }t        dj                  |dd              j	                         }|j                  t        ||             P t        |      |fS )NrV   z#Empty type aliases section at line r   r_   rM   )r   r   )r\   r'   r   r`   r@   rR   r#   r   )	rU   rV   rW   rY   rX   type_aliasesr   r   r   s	            rC   _read_type_aliases_sectionr     s     *)NFNgNE:)Z3VW]V^1_`ZL MAwdiiQR)*002.DdKLM '|4j@@rE   c                  t        | f||d|\  }}|s|rt        | |d|        d |fS g }|D ]  }|d   }d|v r6|j                  dd      d   }	|	j                         }	|j                         }
n|}	d }
t	        dj                  |dd              j                         }|j                  t        |	|
|              t        |      |fS )Nr   zEmpty modules section at line r   r   rM   r_   r   )	r\   r'   r   r@   r   r`   rR   r   r   )rU   rV   rK   rW   rY   rX   r=   r   r   r   r   r   s               rC   _read_modules_sectionr     s     *)aFXaY`aE:i7UV\U]5^_ZG 
[a. !''Q/2D::<D&,,.I!DIdiiQR)*002DYTXYZ
[ #7+Z77rE   )trim_doctest_flagsrK   c               d   t        | f||d|\  }}g }d}d}	g }
g }|j                  d      D ]g  }t        |      rK|r7|r2|j                  t        j
                  dj                  |      f       g }d}H|
j                  |       Z|r@|r,t        j                  d|      }t        j                  d|      }|j                  |       |j                  d      r|	 }	|
j                  |       |	r|
j                  |       |j                  d      rp|
rA|j                  t        j                  dj                  |
      j                  d      f       g }
d}|rt        j                  d|      }|j                  |       W|
j                  |       j |
r@|j                  t        j                  dj                  |
      j                  d      f       n2|r0|j                  t        j
                  dj                  |      f       |rt        |      |fS |rt        | |d|        d |fS )	Nr   Fr_   rH   ```z>>>TzEmpty examples section at line )rd   r   rD   rR   r)   r8   r`   rn   subrm   rS   r   ra   r   r'   )rU   rV   r   rK   rW   r   rX   sub_sectionsin_code_examplein_code_blockcurrent_textcurrent_examplerB   s                rC   _read_examples_sectionr     s    #9ZVhZRYZD*hjLOM L!#O

4  "&$" '')=)F)F		RaHb(cd&(O"'##D)!(,,R6,00T:""4(__U# --M%%__U###%9%>%>		,@W@^@^_c@d$ef!"O!(,,R6""4( %E"&H 166		,8O8V8VW[8\]^	1::DIIo<VWX'5zAA)Z3RSYRZ1[\rE   c                `   |re|j                         j                  dd      }|dv r|d d }| j                  t        |dj	                  |      j                  d      |             y |rEt        |      r9| j                  t        dj	                  |      j                  d                   y y y )NrO   rG   )rK   notesr_   )r   r   title)lowerrI   rR   r   r`   ra   anyr   )sectionscurrentadmonition_titler   s       rC   _append_sectionr   Z  s    %%'//S9(( 9D&YYw'..t4&	
 
S\,TYYw-?-F-Ft-LMN "rE   c                  L    e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded<   y)	NumpyOptionsz.Options for parsing Numpydoc-style docstrings.boolignore_init_summaryr   ro   rp   rK   N)__name__
__module____qualname____doc____annotations__ rE   rC   r   r     s1    8JE3]N7rE   r   F)total)r   r   ro   rp   rK   c                  g }g }d}	d}
| j                   }|rt        dt        d       |||||d}|d   xr} | j                  duxrm | j                  j                  d	k(  xrR | j                  j
                  xr: | j                  j                  duxr  | j                  j                  j                  }|rdnd
}|t        |      k  rn||   j                         }|
r8|j                  d      j                  d      rd}
|j                  ||          n|j                  d      j                  d      rd}
|j                  ||          nt        ||         r|j                  d       n|t        |      dz
  k(  r&|j                  ||          t        |||	       d}	g }n~t        ||dz            rYt        |||	       g }|t        v r7d}	t         t        |      } || fd|dz   i|\  }}|r1|j                  |       n||   }	|dz  }n|j                  ||          |dz  }|t        |      k  rnt        |||	       |S )a  Parse a Numpydoc-style docstring.

    This function iterates on lines of a docstring to build sections.
    It then returns this list of sections.

    Parameters:
        docstring: The docstring to parse.
        ignore_init_summary: Whether to ignore the summary in `__init__` methods' docstrings.
        trim_doctest_flags: Whether to remove doctest flags from Python example blocks.
        warn_unknown_params: Warn about documented parameters not appearing in the signature.
        warn_missing_types: Warn about missing types/annotations for parameters, return values, etc.
        warnings: Whether to log warnings at all.
        **options: Swallowing keyword arguments for backward-compatibility.

    Returns:
        A list of docstring sections.
    rH   FzDPassing additional options is deprecated, these options are ignored.r^   )
stacklevel)r   r   ro   rp   rK   r   N__init__r   rO   r   TrM   rV   )rP   r   DeprecationWarningr   r   r   is_classrQ   r   rT   rS   rR   rD   r   rJ   _section_kind_section_reader)rU   r   r   ro   rp   rK   rW   r   current_sectionr   r   rP   ignore_summaryrV   
line_lowerreadersections                    rC   parse_numpyr    s   8 (*HOMOOE SUgtuv 1220G 	%& 	-D(	-!!Z/	- ((	- ##4/		-
 ##,,  !QaF
3u:
6]((*
   %007 %""5=1 s#..u5 M""5=1 E&M*""2& s5zA~%""5=1Ho7GH! O 5!,-Ho7GH O ]*#% (z)BC"("Q6A:"Q"QOOG, $)= ! ""5=1!e 3u:
j Ho/?@OrE   )rB   r>   returnr   )
rU   r0   rV   intrK   r   rW   r-   r  ztuple[list[list[str]], int])rU   r0   rV   r  rW   r-   r  ztuple[str, int])rU   r0   rV   r  ro   r   rp   r   rK   r   rW   r-   r  z$tuple[list[DocstringParameter], int])
rU   r0   rV   r  rK   r   rW   r-   r  z-tuple[DocstringSectionParameters | None, int])rU   r0   rV   r  ro   r   rK   r   rW   r-   r  z2tuple[DocstringSectionOtherParameters | None, int])
rU   r0   rV   r  ro   r   rW   r-   r  z1tuple[DocstringSectionTypeParameters | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z-tuple[DocstringSectionDeprecated | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z*tuple[DocstringSectionReturns | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z)tuple[DocstringSectionYields | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z+tuple[DocstringSectionReceives | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z)tuple[DocstringSectionRaises | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z(tuple[DocstringSectionWarns | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z-tuple[DocstringSectionAttributes | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z,tuple[DocstringSectionFunctions | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z*tuple[DocstringSectionClasses | None, int])rU   r0   rV   r  rW   r-   r  z.tuple[DocstringSectionTypeAliases | None, int])
rU   r0   rV   r  rK   r   rW   r-   r  z*tuple[DocstringSectionModules | None, int])rU   r0   rV   r  r   r   rK   r   rW   r-   r  z+tuple[DocstringSectionExamples | None, int])r   listr   z	list[str]r   r>   r  None)rU   r0   r   r   r   r   ro   r   rp   r   rK   r   rW   r-   r  zlist[DocstringSection])o
__future__r   r   
contextlibr   textwrapr   typingr   r   rK   r   "griffe._internal.docstrings.modelsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   !griffe._internal.docstrings.utilsr'   r(   griffe._internal.enumerationsr)   r*   griffe._internal.expressionsr+   r,   r-   r.   r/   griffe._internal.modelsr0   r1   r2   other_parametersr   r3   r4   r5   r6   r7   r8   r9   r:   r<   r   r=   r   rD   rJ   r\   rd   re   r   rf   rg   rh   compile
IGNORECASEVERBOSEri   rj   rk   rl   rm   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   rE   rC   <module>r     s*  ( # 	   +        @ \ H 1#11&11&11 ,== +;;	
 #++ ")) $-- ")) !'' $-- &11 %// #-- #++ (55  #++!(N 	;!;! ;! 	;!
 ;! !;!|92   *# *# !rzz
J28* =  $* %
 MMBJJW  "
G !#g ##
jxj ) xvh /Z  	 MMBJJw  ",,B!C w C'RZZ(?@ 7 @ !%#G"G" G" 	G"
 G" G" G" *G"\ 	  	
  3& !%  	
   84 !%	CC C 	C
 C 7CT 	NN N 	N
 N 3N< 	8888 88 	88
 88 088~ 	0606 06 	06
 06 /06n 	,:,: ,: 	,:
 ,: 1,:f 	66 6 	6
 6 /6: 	44 4 	4
 4 .4: 	$>$> $> 	$>
 $> 3$>V 	<< < 	<
 < 2<H 	88 8 	8
 8 08@AA A 	A
 4A0 	88 8 	8
 8 08H  $>> > 	>
 > > 1>BO( ##%=))+I((*G##%=!5 3!!#9##%=""$;  "7%%'A  "7  "7!5!!#9&89E 8$ !&# $#qq q 	q
 q q q q qrE   