U
    &Jj                     @  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                   @  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!   i/var/www/api.dyntland.com/public_html/python_social_comments/venv/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ArrayFormat | NotGivenNestedFormat | NotGiven)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!   r3   r"   r+   7   s    zQuerystring.stringify_itemsDatar6   )r1   r2   r4   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)r0   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   r7   extendr/   listtupler   joinNotImplementedErrorr   r   r=   )r    r1   r2   r4   r7   r   subkeyZsubvaluer   r>   Z
serialisedr!   r?   r"   r/   E   sN    
$


zQuerystring._stringify_itemPrimitiveData)r2   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    r2   r!   r!   r"   r=   y   s    z#Querystring._primitive_value_to_strN)__name__
__module____qualname____annotations__r#   r&   r   r-   r+   r/   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 )r6   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   )rA   r   r   r   )r    r.   r   r   r!   r!   r"   r#      s    zOptions.__init__N)rL   rM   rN   rO   _qsr   r#   r!   r!   r!   r"   r6      s   
r6   )$
__future__r   typingr   r   r   r   r   r   urllib.parser	   r
   typing_extensionsr   r   _typesr   r   Z_utilsr   r   r   r   r$   intfloatboolrH   r8   r'   r   rP   r&   r-   r+   r6   r!   r!   r!   r"   <module>   s"    m