
    "i
                    d    S SK Jr  S SKrS SKrS SKJr  S SKJrJr  S SK	r	S SK
Jr  SS jrS	S jrg)
    )annotationsN)defaultdict)CallableUnion)Toolc                   [        [        5      nU (       d  U$ [        [        U 5      5      nU R                  5        Hr  nUR	                  5       R                  5       nUR                  S5      (       a  SnM;  UR                  S5      (       a  SnMU  X==   UR                  5        S3-  ss'   Mt     S nUS   R                  5        H  nUR                  5       nSU;   a  [        R                  " SUSS	9nUS
   R                  5       nUnUS   R                  5       n[        U5      S:  a0  US   (       a&  US   R                  SS5      S   R                  5       nXU'   M  U(       d  M  U(       d  M  X==   SU-   -  ss'   M     U$ )Nzargs:args)zreturns:zyields:zraises:_
:z(?:\(([^)]*)\)|:)\s*   )maxsplitr       )
r   strhash
splitlineslowerstrip
startswithresplitlen)	
doc_stringparsed_docstringkeylinelowered_linelast_keypartsarg_namearg_descriptions	            O/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/ollama/_utils.py_parse_docstringr%      sa    %	D###%d::<%%'Lw''c		 	 !C	D	Dc $**,r22 & (v&113d::<D
d{
 hh.qAeq!hh b	)o	UaE!H)//#q1"5;;=#2x 	dd C$J. ) 4, 
    c                l   [        [        [        R                  " U 5      5      5      n[	        [        R                  " U 5      5      n[        U R                  [        R                  4[        R                  " U 5      R                  R                  5        VVs0 s H5  u  p4X4R                  [        R                  :w  a  UR                  O[         _M7     snn[        R                  " U 5      X!   S.5      R                  5       nUR                  S0 5      R                  5        H  u  p4SU;   a1  UR                  S5       Vs1 s H  ofR                  SS5      iM     snOUR                  SS5      1nSU;   a%  US   R!                  U5        UR#                  S5        X#   SR%                  U5      S	.US   U'   M     ['        S
[&        R(                  " U R                  UR                  SS5      [&        R(                  R*                  " S0 UD6S9S9n[&        R,                  " U5      $ s  snnf s  snf )N)__annotations____signature____doc__
propertiesanyOftypestringnullrequiredz, )descriptionr-   functionr1    )namer1   
parameters)r-   r2    )r   r   inspectgetdocr%   r-   __name__pydantic	BaseModel	signaturer5   items
annotation_emptymodel_json_schemagetremovediscardjoinr   Function
Parametersmodel_validate)	funcdoc_string_hashr   kvschemattypestools	            r$   convert_function_to_toolrP   8   s   W^^D123/%gnnT&:;MMahararswax  bD  bD  bJ  bJ  bL  M  bLY]YZ!\\W^^-KQ\\QTT  bL  M((.!2  	 jjr*002daAHAaeeGn=nUU68$n=TUTYTYZ`bjTkSlEZ"mmF &(iiF< 3 
	]]==**]B/))3F3
$ 
		T	""7 M >s   <H+H1)r   zUnion[str, None]returnzdict[str, str])rH   r   rQ   r   )
__future__r   r7   r   collectionsr   typingr   r   r:   ollama._typesr   r%   rP   r6   r&   r$   <module>rV      s%    "  	 # "  (V"#r&   