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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   )	NOT_GIVENNotGiven
NotGivenOr)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"   \/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/groq/_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NotGivenOr[ArrayFormat]NotGivenOr[NestedFormat]c                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"   r6   r#   r-   7   s   zQuerystring.stringify_itemsr4   r5   Datar7   r9   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)r3   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   r:   extendr2   listtupler   joinNotImplementedErrorr   r   r@   )r!   r4   r5   r7   r:   r   subkeysubvaluer   rA   
serialisedr"   rB   r#   r2   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!   r5   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   r0   )r4   r&   r5   r;   r7   r9   r   r0   )r5   rM   r   r&   )__name__
__module____qualname____annotations__r$   r(   r   r/   r-   r2   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 )r9   r   r   r   r   r   r1   r   r+   r,   r   r   c                C  s6   t |tr|jn|| _t |tr|j| _d S || _d S r    )rD   r   r   r   )r!   r1   r   r   r"   r"   r#   r$      s    zOptions.__init__N)r1   r   r   r+   r   r,   r   r   )rQ   rR   rS   rT   _qsr   r$   r"   r"   r"   r#   r9      s   
 r9   )%
__future__r   typingr   r   r   r   r   r   urllib.parser	   r
   typing_extensionsr   r   _typesr   r   r   _utilsr   r   r   r   r&   intfloatboolrM   r;   r*   r   rU   r(   r/   r-   r9   r"   r"   r"   r#   <module>   s$     m