o
    hL                     @  sX  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rd dlm3Z3 d dlm4Z4m5Z5 d dl1m6Z6 d dl7m8Z8 i de/j9de/j:de/j;de/j<de/j=de/j>de/j?de/j@de/jAde/jBde/jCde/jDde/jDde/jEde/jFde/jGZHdd#d$ZIdd%d&ZJd'd(dd1d2ZKdd4d5ZLd6ZMd eNd7< d8ZOd eNd9< d:ZPd eNd;< d<ZQd eNd=< eRd>eP d?eQ d@eP dAeQ dB	ejSejTB ZUdCeNdD< eUZVdCeNdE< eUZWdCeNdF< eRdGeP dHeP dIeM dJeO dKeQ dLejSejTB ZXdCeNdM< eRdNZYdCeNdO< eRdPZZdCeNdQ< d'd'd'dRddVdWZ[d'd(ddYdZZ\d'd'd[dd]d^Z]d'd_ddadbZ^d'd(ddddeZ_d'd(ddgdhZ`d'd(ddjdkZad'd(ddmdnZbd'd(ddpdqZcd'd(ddsdtZdd'd(ddvdwZed'd(ddydzZfd'd(dd|d}ZgdddZhd'd(dddZid'd'ddddZjdddZke/j:e\e/j;e]e/j<e^e/j9e_e/j@ece/jAede/jBeje/jCeee/jDefe/jEege/jFehe/jGeie/j=e`e/j>eae/j?ebiZlG dd de	ddZmdd'd'd'd'ddddZndS )    )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linestrreturnboolc                 C  s
   |    S )N)stripr=    rC   b/var/www/html/openai_agents/venv/lib/python3.10/site-packages/griffe/_internal/docstrings/numpy.py_is_empty_line\   s   
rE   c                 C  s   t |  ot | ddS )N- )rE   replacerB   rC   rC   rD   _is_dash_line`   s   rI   T)warnings	docstringr/   offsetintrJ   optionsr,   tuple[list[list[str]], int]c          
      K  sL  | j }|t|krg |fS |}g }t|| r!|d7 }t|| s|| g}|d7 }|t|k r|| }t|r>|d nQ|drM||dd   nB|drvt|t|  }	|||	d   |rut| |d|d  d|	  n|d t|k rt||d  rn|| |g}|d7 }|t|k s0|r|| ||d fS )N   rG   z        z,Confusing indentation for continuation line z' in docstring, should be 4 spaces, not )lineslenrE   append
startswithlstripr&   rI   )
rK   rL   rJ   rN   rS   
new_offsetitemscurrent_itemr=   cont_indentrC   rC   rD   _read_block_itemsd   sJ   


 
!
r\   tuple[str, int]c                K  s   | j }|t|krd|fS |}g }t|| r!|d7 }t|| s|t|k rdt|| }|r@|t|d k r@t||d  r@n$|rS|t|d k rSt||d  rSn|||  |d7 }|t|k s'd|d|d fS )NrG   rP      
)rS   rT   rE   rI   rU   joinrstrip)rK   rL   rN   rS   rX   blockis_emptyrC   rC   rD   _read_block   s$   $$rd   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_typesrJ   ro   rp   $tuple[list[DocstringParameter], int]c             
     s  g }t | fd|i|\}}|D ]5}	t|	d }
|
s+|r*t| |d|	d  d q|
dd}|
dp9d  |
d}d |rN| |dd	d n rbtd
 }
|
rb|
d|
d  ro dro d d  t|	d	krd	|	d	d  
 nd d u r|D ] }ttt | jj| j 	 W d     n1 sw   Y  q|r|rt| |d|  nt | tjd d u r|D ] }ttt | jj| j	 W d     n	1 sw   Y  q|r8|r8tt? | jj}|D ]0}||vr'd| d}d| d| fD ]}||v r|d| d7 } nqt| || qW d    n	1 s3w   Y  | fdd|D  q||fS )NrL   r   Could not parse line ''names, typechoicesrP   8^(?P<annotation>.+),\s+default(?: |: |=)(?P<default>.+)$default
annotationz
, optionalir_   rG   z'No types or annotations for parameters 	log_levelzParameter 'z+' does not appear in the function signature***. Did you mean ''?c                 3       | ]}t | d V  qdS )valuerz   descriptionN)r   .0namerz   ry   r   rC   rD   	<genexpr>#      
z#_read_parameters.<locals>.<genexpr>)r\   rl   matchr&   groupsplitreendswithrT   r`   ra   r   AttributeErrorKeyErrorparentr1   rz   r'   r)   debugry   extend)rK   rL   ro   rp   rJ   rN   r1   rY   rX   itemr   rt   rw   r   paramsmessagestarred_namerC   r   rD   _read_parameters   st   	



&""



r   -tuple[DocstringSectionParameters | None, int]c                K  sH   t | f||d|\}}|rt||fS |r t| |d|  d |fS )NrL   rJ   z!Empty parameters section at line )r   r   r&   )rK   rL   rJ   rN   r1   rX   rC   rC   rD   _read_parameters_section*  s   r   )ro   rJ   2tuple[DocstringSectionOtherParameters | None, int]c                K  sJ   t | f|d|d|\}}|rt||fS |r!t| |d|  d |fS )NF)rL   ro   rJ   z'Empty other parameters section at line )r   r   r&   )rK   rL   ro   rJ   rN   r1   rX   rC   rC   rD   _read_other_parameters_section9  s   
r   )ro   1tuple[DocstringSectionTypeParameters | None, int]c             
     s  g }t | fd|i|\}}|D ]}t|d }|s)t| |d|d  d q|dd}	|dp7d  |d}
d |
rL|
 |
dd	d n r`td
 }|r`|d|d t|d	krqd|d	d  	 nd d u r|	D ] }t
tt | jj| j 	 W d     n1 sw   Y  qynt | tjd d u r|	D ] }t
tt | jj| j	 W d     n	1 sw   Y  q|rt
tC | jj}|	D ]4}||vrd| d| jj d}d| d| fD ]}||v r|d| d7 } nqt| || qW d    n	1 sw   Y  | fdd|	D  q|r5t||fS t| |d|  d |fS )NrL   r   rr   rs   rt   ru   rv   rw   rP   rx   ry   rz   r_   rG   r{   zType parameter 'z' does not appear in the z
 signaturer}   r~   r   r   c                 3  r   r   )r#   r   boundry   r   rC   rD   r     r   z0_read_type_parameters_section.<locals>.<genexpr>z&Empty type parameters section at line )r\   rl   r   r&   r   r   r   rT   r`   ra   r   r   r   r   type_parametersrz   r'   r)   r   ry   kindr   r   )rK   rL   ro   rN   r   rY   rX   r   r   rt   rw   r   type_paramsr   r   rC   r   rD   _read_type_parameters_sectionO  sp   



&""



r   -tuple[DocstringSectionDeprecated | None, int]c          	      K  s   t | f||d|\}}|s|rt| |d|  d |fS |r/t|dkr/t| |d|  |d }|d }td|dd  }t||d|fS )Nr   z!Empty deprecated section at line rP   zToo many deprecated items at r   r_   )versiontext)r\   r&   rT   r   r`   r   )	rK   rL   rJ   rN   rY   rX   r   r   r   rC   rC   rD   _read_deprecated_section  s   
r   *tuple[DocstringSectionReturns | None, int]c             	   K  s  t | f||d|\}}|s|rt| |d|  d |fS g }t|D ]\}}t|d }	|	s@|r?t| |d|d  d q$|	 }
|
d pK|
d }|
d pS|
d	 }td
|dd  }|d u rtt	t
tS | jjrs| jj}n| jjr|| jj}ntt|dkr|jr|jj| }n'|jr|j}n|jr|jjd }ntt|tr|}n|jr|jj| }n|}W d    n1 sw   Y  nt|| tjd}|t|pd||d q$t||fS )Nr   zEmpty returns section at line r   rr   rs   nt_namer   nt_typerv   r_   rP   r^   r{   rG   r   rz   r   )r\   r&   	enumerateri   r   	groupdictr   r`   r   r   r   
ValueErrorr   is_functionr2   is_attributerz   rT   is_tuplesliceelementsis_iteratoris_generator
isinstancer*   r'   r)   r   rU   r   r   )rK   rL   rJ   rN   rY   rX   r2   indexr   r   groupsr   rz   r   return_itemrC   rC   rD   _read_returns_section  sT   	


r   )tuple[DocstringSectionYields | None, int]c             	   K  s  t | f||d|\}}|s|rt| |d|  d |fS g }t|D ]\}}t|d }	|	s@|r?t| |d|d  d q$|	 }
|
d pK|
d }|
d pS|
d	 }td
|dd  }|d u rtt	t
tt3 | jj}|jrv|j}n|jr|jjd }ntt|tr|}n|jr|jj| }n|}W d    n1 sw   Y  nt|| tjd}|t|pd||d q$t||fS )Nr   zEmpty yields section at line r   rr   rs   r   r   r   rv   r_   rP   r{   rG   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   rU   r%   r!   )rK   rL   rJ   rN   rY   rX   r3   r   r   r   r   r   rz   r   
yield_itemrC   rC   rD   _read_yields_section  sF   

r   +tuple[DocstringSectionReceives | None, int]c             	   K  sj  t | f||d|\}}|s|rt| |d|  d |fS g }t|D ]\}}t|d }	|	s@|r?t| |d|d  d q$|	 }
|
d pK|
d }|
d pS|
d	 }td
|dd  }|d u rtt	t
) | jj}|jr|jjd }t|tr~|}n|jr|jj| }n|}W d    n1 sw   Y  nt|| tjd}|t|pd||d q$t||fS )Nr   zEmpty receives section at line r   rr   rs   r   r   r   rv   r_   rP   r{   rG   r   )r\   r&   r   rk   r   r   r   r`   r   r   r   r   r2   r   r   r   r   r*   r   r'   r)   r   rU   r   r   )rK   rL   rJ   rN   rY   rX   r4   r   r   r   r   r   rz   r   receives_itemrC   rC   rD   _read_receives_section  s@   

r   )tuple[DocstringSectionRaises | None, int]c          
      K     t | f||d|\}}|s|rt| |d|  d |fS g }|D ]}t|d | }td|dd  }	|t||	d q"t||fS )Nr   zEmpty raises section at line r   r_   rP   rz   r   )r\   r&   r'   r   r`   rU   r   r   )
rK   rL   rJ   rN   rY   rX   r5   r   rz   r   rC   rC   rD   _read_raises_sectionL     
r   (tuple[DocstringSectionWarns | None, int]c          
      K  r   )Nr   zEmpty warns section at line r   r_   rP   r   )r\   r&   r'   r   r`   rU   r$   r    )
rK   rL   rJ   rN   rY   rX   r6   r   rz   r   rC   rC   rD   _read_warns_sectione  r   r   -tuple[DocstringSectionAttributes | None, int]c             	   K  s  t | f||d|\}}|s|rt| |d|  d |fS g }|D ]_}|d }d|v r?|dd\}	}
|	 }	|
 p=d }
n|}	d }
|
d u rdtttt | j|	 j	}
W d    n1 s^w   Y  nt
|
| tjd}
td|dd  }|t|	|
|d q"t||fS )	Nr   z!Empty attributes section at line r   :rP   r{   r_   r   )r\   r&   r   rA   r   r   r   	TypeErrorr   rz   r'   r)   r   r   r`   rU   r   r   )rK   rL   rJ   rN   rY   rX   r8   r   	name_typer   rz   r   rC   rC   rD   _read_attributes_section~  s.   
r   ,tuple[DocstringSectionFunctions | None, int]c                K     t | f||d|\}}|s|rt| |d|  d |fS g }|D ]6}|d }d|v r=|ddd }	|	 }	| }
n|}	d }
td|dd   }|t|	|
|d q"t||fS )Nr   z(Empty functions/methods section at line r   (rP   r_   r   )	r\   r&   r   rA   r   r`   rU   r
   r   )rK   rL   rJ   rN   rY   rX   r9   r   name_signaturer   	signaturer   rC   rC   rD   _read_functions_section  "   	
r   *tuple[DocstringSectionClasses | None, int]c                K  r   )Nr   zEmpty classes section at line r   r   rP   r_   r   )	r\   r&   r   rA   r   r`   rU   r	   r   )rK   rL   rJ   rN   rY   rX   r;   r   r   r   r   r   rC   rC   rD   _read_classes_section  r   r   .tuple[DocstringSectionTypeAliases | None, int]c          	      K  s   t | fd|i|\}}|st| |d|  d |fS g }|D ]}|d }td|dd   }|t||d qt||fS )NrL   z#Empty type aliases section at line r   r_   rP   )r   r   )r\   r&   r   r`   rA   rU   r"   r   )	rK   rL   rN   rY   rX   type_aliasesr   r   r   rC   rC   rD   _read_type_aliases_section  s   r   *tuple[DocstringSectionModules | None, int]c                K  r   )Nr   zEmpty modules section at line r   r   rP   r_   r   )	r\   r&   r   rA   r   r`   rU   r   r   )rK   rL   rJ   rN   rY   rX   r<   r   r   r   r   r   rC   rC   rD   _read_modules_section  r   r   )trim_doctest_flagsrJ   r   +tuple[DocstringSectionExamples | None, int]c                K  s  t | f||d|\}}g }d}d}	g }
g }|dD ]x}t|r<|r6|r3|tjd|f g }d}q|
| q|rR|rLtd|}t	d|}|| q|
dr`|	 }	|
| q|	rh|
| q|
dr|
r|tjd|
df g }
d}|rtd|}|| q|
| q|
r|tjd|
df n|r|tjd|f |rt||fS |rt| |d|  d |fS )	Nr   Fr_   rG   ```z>>>TzEmpty examples section at line )rd   r   rE   rU   r(   r7   r`   rn   subrm   rV   r   ra   r   r&   )rK   rL   r   rJ   rN   r   rX   sub_sectionsin_code_examplein_code_blockcurrent_textcurrent_exampler=   rC   rC   rD   _read_examples_section  sT   

r   sectionslistcurrent	list[str]admonition_titleNonec                 C  s~   |r&|  dd}|dv r|d d }| t|d|d|d d S |r;t|r=| td|d d S d S d S )NrR   rF   )rJ   notesr_   )r   r   title)lowerrH   rU   r   r`   ra   anyr   )r   r   r   r   rC   rC   rD   _append_sectionZ  s   r   c                   @  sB   e Zd ZU dZded< 	 ded< 	 ded< 	 ded< 	 ded< dS )	NumpyOptionsz.Options for parsing Numpydoc-style docstrings.r@   ignore_init_summaryr   ro   rp   rJ   N)__name__
__module____qualname____doc____annotations__rC   rC   rC   rD   r     s   
 r   F)total)r   r   ro   rp   rJ   r   list[DocstringSection]c                K  s  g }g }d}	d}
| j }|rtdtdd |||||d}|d o9| jduo9| jjd	ko9| jjo9| jjduo9| jjj}|r>dnd
}|t|k r||  }|
r`|	d
drXd}
|||  nz|	d
drrd}
|||  nht|| r~|d n\|t|d kr|||  t|||	 d}	g }nBt||d  rt|||	 g }|tv rd}	tt|  }|| fd|d i|\}}|r|| n|| }	|d7 }n|||  |d7 }|t|k sFt|||	 |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.
    rG   FzDPassing additional options is deprecated, these options are ignored.r^   )
stacklevel)r   r   ro   rp   rJ   r   N__init__r   rR   r   TrP   rL   )rS   r   DeprecationWarningr   r   r   is_classrT   r   rW   rV   rU   rE   r   rI   _section_kind_section_reader)rK   r   r   ro   rp   rJ   rN   r   current_sectionr   r   rS   ignore_summaryrL   
line_lowerreadersectionrC   rC   rD   parse_numpy  st   	

	

5r  )r=   r>   r?   r@   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   rO   )rK   r/   rL   rM   rN   r,   r?   r]   )rK   r/   rL   rM   ro   r@   rp   r@   rJ   r@   rN   r,   r?   rq   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )rK   r/   rL   rM   ro   r@   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   ro   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )rK   r/   rL   rM   rN   r,   r?   r   )
rK   r/   rL   rM   rJ   r@   rN   r,   r?   r   )rK   r/   rL   rM   r   r@   rJ   r@   rN   r,   r?   r   )r   r   r   r   r   r>   r?   r   )rK   r/   r   r@   r   r@   ro   r@   rp   r@   rJ   r@   rN   r,   r?   r   )o
__future__r   r   
contextlibr   textwrapr   typingr   r   rJ   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.modelsr/   r0   r1   other_parametersr   r2   r3   r4   r5   r6   r7   r8   r9   r;   r   r<   r  rE   rI   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  rC   rC   rC   rD   <module>   s$   	



>


NJ?73+$
 $
A