U
    	f                     @  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                   @  s   e Zd ZU ded< ded< ddddddd	d
dZdddddZeeddddddddZeeddddddddZdddddddZ	ddd d!d"Z
d#S )$QuerystringArrayFormatarray_formatNestedFormatnested_formatr   r   r   r   None)r   r   returnc                C  s   || _ || _d S Nr   )selfr   r    r"   K/var/www/html/apigroqsegura/apigroq/lib/python3.8/site-packages/groq/_qs.py__init__   s    zQuerystring.__init__strzMapping[str, object])queryr   c                 C  s   t |S r    )r	   )r!   r&   r"   r"   r#   parse$   s    zQuerystring.parseParamsNotGivenOr[ArrayFormat]NotGivenOr[NestedFormat])paramsr   r   r   c                C  s   t | j|||dS )Nr   )r
   stringify_itemsr!   r+   r   r   r"   r"   r#   	stringify(   s    zQuerystring.stringifyz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"   r4   r#   r,   7   s    zQuerystring.stringify_itemsDatar7   )r2   r3   r5   r   c              	     sP  t |tr`g }|j}| D ]>\}}| |dkrB| d| n| d| d|| q|S t |ttfr2|j}|dkr|d	 fdd|D fgS |d	krg }|D ]}	| ||	| q|S |d
krt
dnV|dkrg }|d }|D ]}	| ||	| q|S t
d| dd	tt  |}
|
sFg S ||
fgS )Nr   .[]r   ,c                 3  s    | ]}|d k	r  |V  qd S r    )_primitive_value_to_str)r1   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   r8   extendr0   listtupler   joinNotImplementedErrorr   r   r>   )r!   r2   r3   r5   r8   r   subkeyZsubvaluer   r?   Z
serialisedr"   r@   r#   r0   E   sN    
$


zQuerystring._stringify_itemPrimitiveData)r3   r   c                 C  s,   |dkrdS |dkrdS |d kr$dS t |S )NTtrueFfalse )r%   )r!   r3   r"   r"   r#   r>   y   s    z#Querystring._primitive_value_to_strN)__name__
__module____qualname____annotations__r$   r'   r   r.   r,   r0   r>   r"   r"   r"   r#   r      s   
	4r   c                   @  s>   e Zd ZU ded< ded< efeeddddd	d
ddZdS )r7   r   r   r   r   r   r   r)   r*   r   )r/   r   r   r   c                C  s0   t |tr|jn|| _t |tr&|jn|| _d S r    )rB   r   r   r   )r!   r/   r   r   r"   r"   r#   r$      s    zOptions.__init__N)rM   rN   rO   rP   _qsr   r$   r"   r"   r"   r#   r7      s   
r7   )%
__future__r   typingr   r   r   r   r   r   urllib.parser	   r
   typing_extensionsr   r   _typesr   r   r   _utilsr   r   r   r   r%   intfloatboolrI   r9   r(   r   rQ   r'   r.   r,   r7   r"   r"   r"   r#   <module>   s"    m