
    i                    X   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          Z e            Zej        Zej         Z ej!        Z! G 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                  l    e Zd ZU ded<   ded<   ddddd
Zd dZeedd!dZeedd"dZd#dZ	d$dZ
dS )%Querystringr   array_formatr   nested_formatrepeatbracketsr   r   returnNonec               "    || _         || _        d S Nr   )selfr   r   s      Q/home/piyush/.hermes/hermes-agent/venv/lib/python3.11/site-packages/openai/_qs.py__init__zQuerystring.__init__   s     )*    querystrMapping[str, object]c                     t          |          S r   )r
   )r   r#   s     r    parsezQuerystring.parse    s    r"   paramsParamsArrayFormat | NotGivenNestedFormat | NotGivenc               L    t          |                     |||                    S )Nr   )r   stringify_items)r   r(   r   r   s       r    	stringifyzQuerystring.stringify$   s7       )+ !  
 
 	
r"   list[tuple[str, str]]c                    t           ||          t           fd|                                D                       S )N)qsr   r   c                D    g | ]\  }}                     ||          S  )_stringify_item).0keyvalueoptsr   s      r    
<listcomp>z/Querystring.stringify_items.<locals>.<listcomp>?   s/    ```:3,,S%>>```r"   )Optionsr   items)r   r(   r   r   r8   s   `   @r    r-   zQuerystring.stringify_items3   sX     %'
 
 

 `````QWQ]Q]Q_Q_```aaar"   r6   r7   Datar8   r:   c           
         t          |t                    rbg }|j        }|                                D ]B\  }}|                                         |dk    r| d| n| d| d||                     C|S t          |t          t          f          r1|j        }|dk    r$|d	                     fd|D                       fgS |dk    r3g }|D ],}	|                                         ||	|                     -|S |d	k    rIg }t          |          D ]5\  }
}	|                                         | d|
 d|	|                     6|S |d
k    r8g }|dz   }|D ],}	|                                         ||	|                     -|S t          d| dd	                    t          t                                                              |          }|sg S ||fgS )Ndots.[]comma,c              3  F   K   | ]}|                     |          V  d S r   )_primitive_value_to_str)r5   itemr   s     r    	<genexpr>z.Querystring._stringify_item.<locals>.<genexpr>[   s7       j jY]Yi!=!=d!C!CYiYiYiYi j jr"   r   indicesr   z[]zUnknown array_format value: z, choose from z, )
isinstancer   r   r;   extendr4   listtupler   join	enumerateNotImplementedErrorr   r   rE   )r   r6   r7   r8   r;   r   subkeysubvaluer   rF   i
serialiseds   `           r    r4   zQuerystring._stringify_itemA   s    eW%% 	+-E .M$)KKMM   ((-:f-D-D3)))))SJ\J\SYJ\J\J\ 	     LedE]++ 	,Lw&&  j j j jPU j j jjj  ))! H HDLL!5!5c4!F!FGGGG**(// R RGAtLL!5!5mmqmmmT4!P!PQQQQ++Dj! H HDLL!5!5c4!F!FGGGG)q<qqtyyYabmYnYnOoOoqq   11%88
 	Ij!""r"   PrimitiveDatac                @    |du rdS |du rdS |dS t          |          S )NTtrueFfalse )r$   )r   r7   s     r    rE   z#Querystring._primitive_value_to_strx   s4    D==6e^^7]25zzr"   N)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/   )r6   r$   r7   r<   r8   r:   r   r/   )r7   rT   r   r$   )__name__
__module____qualname____annotations__r!   r'   r   r.   r-   r4   rE   r3   r"   r    r   r      s         
 %-&0	+ + + + + +    091:
 
 
 
 
 
& 091:b b b b b b5# 5# 5# 5#n     r"   r   c                  8    e Zd ZU ded<   ded<   efeedddZdS )r:   r   r   r   r   r   r1   r   r*   r+   r   r   c                   t          |t                    r|j        n|| _        t          |t                    r|j        n|| _        d S r   )rI   r   r   r   )r   r1   r   r   s       r    r!   zOptions.__init__   sH     0:,/Q/QcBOOWc1;M81T1TgR--Zgr"   N)r1   r   r   r*   r   r+   r   r   )rY   rZ   r[   r\   _qsr   r!   r3   r"   r    r:   r:      sg          h 091:h h h h h h h hr"   r:   )#
__future__r   typingr   r   r   r   r   r	   urllib.parser
   r   typing_extensionsr   _typesr   r   r   r   _utilsr   r   r$   intfloatboolrT   r<   r)   r   r_   r'   r.   r-   r:   r3   r"   r    <module>ri      s   " " " " " " < < < < < < < < < < < < < < < < , , , , , , , , & & & & & & B B B B B B B B B B B B      WT]]c3tT12 ]DIuSz3FFG	d	m m m m m m m m` kmm	M	%h h h h h h h h h hr"   