o
    ØRWjá  ã                   @  sâ   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
mZ d dlmZ ddlmZmZmZmZ ddlmZ edƒZeeeeed	f Zeeee ee d
f Zeeef ZG dd„ dƒZeƒ ZejZej Z ej!Z!G dd„ dƒZ"d	S )é    )Úannotations)ÚAnyÚListÚTupleÚUnionÚMappingÚTypeVar)Úparse_qsÚ	urlencode)Úget_argsé   )ÚNotGivenÚArrayFormatÚNestedFormatÚ	not_given)ÚflattenÚ_TNzMapping[str, Any]c                   @  sr   e Zd ZU ded< ded< dddœd%d
d„Zd&dd„Zeedœd'dd„Zeedœd(dd„Zd)dd „Z	d*d"d#„Z
d$S )+ÚQuerystringr   Úarray_formatr   Únested_formatÚrepeatÚbrackets©r   r   ÚreturnÚNonec                C  s   || _ || _d S ©Nr   )Úselfr   r   © r   úY/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/openai/_qs.pyÚ__init__   s   
zQuerystring.__init__ÚqueryÚstrúMapping[str, object]c                 C  s   t |ƒS r   )r	   )r   r    r   r   r   Úparse    s   zQuerystring.parseÚparamsÚParamsúArrayFormat | NotGivenúNestedFormat | NotGivenc                C  s   t | j|||d�ƒS )Nr   )r
   Ústringify_items©r   r$   r   r   r   r   r   Ú	stringify$   s   ýÿzQuerystring.stringifyúlist[tuple[str, str]]c                  s*   t ˆ||d�‰ t‡ ‡fdd„| ¡ D ƒƒS )N)Úqsr   r   c                   s   g | ]\}}ˆ  ||ˆ ¡‘qS r   )Ú_stringify_item)Ú.0ÚkeyÚvalue©Úoptsr   r   r   Ú
<listcomp>?   s    z/Querystring.stringify_items.<locals>.<listcomp>)ÚOptionsr   Úitemsr)   r   r1   r   r(   3   s   ýzQuerystring.stringify_itemsr/   r0   ÚDatar2   r4   c              	     sz  t |tƒr0g }|j}| ¡ D ]\}}| ˆ  |dkr!|› d|› �n|› d|› d�||¡¡ q|S t |ttfƒr¯|j}|dkrM|d 	‡ fdd„|D ƒ¡fgS |d	krdg }|D ]}	| ˆ  ||	|¡¡ qU|S |d
kr…g }t
|ƒD ]\}
}	| ˆ  |› d|
› d�|	|¡¡ qn|S |dkr g }|d }|D ]}	| ˆ  ||	|¡¡ q‘|S td|› dd 	ttƒ¡› �ƒ‚ˆ  |¡}|s¸g S ||fgS )NÚdotsÚ.ú[ú]Úcommaú,c                 3  s"   � | ]}|d urˆ   |¡V  qd S r   )Ú_primitive_value_to_str)r.   Úitem©r   r   r   Ú	<genexpr>[   s   €  z.Querystring._stringify_item.<locals>.<genexpr>r   Úindicesr   z[]zUnknown array_format value: z, choose from z, )Ú
isinstancer   r   r5   Úextendr-   ÚlistÚtupler   ÚjoinÚ	enumerateÚNotImplementedErrorr   r   r=   )r   r/   r0   r2   r5   r   ÚsubkeyÚsubvaluer   r>   ÚiÚ
serialisedr   r?   r   r-   A   sT   
$üÿþÿ"ÿ

zQuerystring._stringify_itemÚPrimitiveDatac                 C  s,   |du rdS |du rdS |d u rdS t |ƒS )NTÚtrueFÚfalseÚ )r!   )r   r0   r   r   r   r=   x   s   z#Querystring._primitive_value_to_strN)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!   r0   r6   r2   r4   r   r+   )r0   rM   r   r!   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r#   r   r*   r(   r-   r=   r   r   r   r   r      s   
 ü
	ûû
7r   c                   @  s4   e Zd ZU ded< ded< efeedœddd„ZdS )r4   r   r   r   r   r   r,   r   r&   r'   r   r   c                C  s6   t |tƒr|jn|| _t |tƒr|j| _d S || _d S r   )rB   r   r   r   )r   r,   r   r   r   r   r   r   �   s    zOptions.__init__N)r,   r   r   r&   r   r'   r   r   )rQ   rR   rS   rT   Ú_qsr   r   r   r   r   r   r4   ‰   s   
 þûr4   )#Ú
__future__r   Útypingr   r   r   r   r   r   Úurllib.parser	   r
   Útyping_extensionsr   Ú_typesr   r   r   r   Ú_utilsr   r   r!   ÚintÚfloatÚboolrM   r6   r%   r   rU   r#   r*   r(   r4   r   r   r   r   Ú<module>   s      p