o
    h                     @  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mZ ddlmZmZ ddlmZ edZed	 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)Literalget_args   )NotGiven	not_given)flatten_T)commarepeatindicesbrackets)dotsr   Nz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 )+QuerystringArrayFormatarray_formatNestedFormatnested_formatr   r   r   r   returnNonec                C  s   || _ || _d S Nr   )selfr   r    r!   K/var/www/html/openai_agents/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>C   s    z/Querystring.stringify_items.<locals>.<listcomp>)Optionsr   itemsr-   r!   r5   r"   r,   7   s   zQuerystring.stringify_itemsr3   r4   Datar6   r8   c              	     sH  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rlt
d|dkrg }|d }|D ]}	| ||	| qx|S t
d| dd	tt  |}
|
sg S ||
fgS )Nr   .[]r   ,c                 3  s"    | ]}|d ur  |V  qd S r   )_primitive_value_to_str)r2   itemr    r!   r"   	<genexpr>_   s     z.Querystring._stringify_item.<locals>.<genexpr>r   r   z-The array indices format is not supported yetr   z[]zUnknown array_format value: z, choose from z, )
isinstancer   r   r9   extendr1   listtupler   joinNotImplementedErrorr   r   r?   )r    r3   r4   r6   r9   r   subkeysubvaluer   r@   
serialisedr!   rA   r"   r1   E   sN   
$

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    r4   r!   r!   r"   r?   y   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/   )r3   r%   r4   r:   r6   r8   r   r/   )r4   rL   r   r%   )__name__
__module____qualname____annotations__r#   r'   r   r.   r,   r1   r?   r!   r!   r!   r"   r      s   
 
	
4r   c                   @  s4   e Zd ZU ded< ded< efeeddddZdS )r8   r   r   r   r   r   r0   r   r*   r+   r   r   c                C  s6   t |tr|jn|| _t |tr|j| _d S || _d S r   )rC   r   r   r   )r    r0   r   r   r!   r!   r"   r#      s    zOptions.__init__N)r0   r   r   r*   r   r+   r   r   )rP   rQ   rR   rS   _qsr   r#   r!   r!   r!   r"   r8      s   
 r8   )$
__future__r   typingr   r   r   r   r   r   urllib.parser	   r
   typing_extensionsr   r   _typesr   r   _utilsr   r   r   r   r%   intfloatboolrL   r:   r)   r   rT   r'   r.   r,   r8   r!   r!   r!   r"   <module>   s$     m