o
    7 h                  	   @   s   d dl Z d dlZd dlmZ d dlmZ ddlmZ ddlmZ ej	r'd dl
ZedZdd	 ZeeeeeeeedhZd
ejejd df ddfddZG dd deje Z				dddZd
ddejd fddZdS )    N)WRAPPER_ASSIGNMENTS)wraps   )_PassArg)pass_eval_contextVc                    s    fdd}|S )Nc                    s   t }|d u |t ju rdtjdtfddn
dtjdtfddd}ttt	|}t
|dt
 |dd	 fd
d}rJt|}d|_|S )Nargsreturnc                 S   s   t t| d jS Nr   )tcastboolis_asyncr    r   Z/var/www/html/figdemos/bartoux_crm/venv/lib/python3.10/site-packages/jinja2/async_utils.pyr      s   z2async_variant.<locals>.decorator.<locals>.is_asyncc                 S   s   t t| d jjS r
   )r   r   r   environmentr   r   r   r   r   r      s   )
__module____name____qualname__)assignedr   )r   updatedc                     s8   | }r| dd  } |r | i |S | i |S )Nr   r   )r   kwargsb)
async_funcr   need_eval_contextnormal_funcr   r   wrapper%   s   z1async_variant.<locals>.decorator.<locals>.wrapperT)r   from_objr   r   Anyr   tuplesetr   
differencer   r   jinja_async_variant)r   pass_argZasync_func_attrsZnormal_func_attrsr   r   )r   r   r   r   	decorator   s   


z async_variant.<locals>.decoratorr   )r   r&   r   r%   r   async_variant   s   (r'   valuer	   c                    s:   t | tv rtd| S t| rtd| I d H S | S )Nr   zt.Awaitable[V])type_common_primitivesr   r   inspectisawaitabler(   r   r   r   
auto_await>   s   
r.   c                   @   s.   e Zd ZdddZdddZdefd	d
ZdS )_IteratorToAsyncIteratoriteratort.Iterator[V]c                 C   s
   || _ d S N)	_iterator)selfr0   r   r   r   __init__J   s   
z!_IteratorToAsyncIterator.__init__r	   te.Selfc                 C   s   | S r2   r   )r4   r   r   r   	__aiter__M   s   z"_IteratorToAsyncIterator.__aiter__c              
      s4   zt | jW S  ty } zt|j|d }~ww r2   )nextr3   StopIterationStopAsyncIterationr(   )r4   er   r   r   	__anext__P   s   z"_IteratorToAsyncIterator.__anext__N)r0   r1   )r	   r6   )r   r   r   r5   r7   r   r<   r   r   r   r   r/   I   s    

r/   iterable*t.Union[t.AsyncIterable[V], t.Iterable[V]]t.AsyncIterator[V]c                 C   s   t | dr	|  S tt| S )Nr7   )hasattrr7   r/   iter)r=   r   r   r   
auto_aiterW   s   
rB   c                    s   dd t | 2 I d H S )Nc                    s   g | z3 d H W }|q6 S r2   r   ).0xr   r   r   
<listcomp>c   s    z auto_to_list.<locals>.<listcomp>)rB   r-   r   r   r   auto_to_list`   s   rF   )r=   r>   r	   r?   ) r+   typingr   	functoolsr   r   utilsr   r   TYPE_CHECKINGtyping_extensionsteTypeVarr   r'   intfloatr   strlistdictr    r)   r*   Union	Awaitabler.   Genericr/   rB   ListrF   r   r   r   r   <module>   s.    
,"
	