U
    ±[Öe›  ã                	   @   s¨   d dl Z d dlZd dlmZ ddlmZ ddlmZ e d¡Z	dd„ Z
eeeeeeeedƒhZejejd df dd	œd
d„Zdddœdd„Zdejd d	œdd„ZdS )é    N)Úwrapsé   )Ú_PassArg)Úpass_eval_contextÚVc                    s   ‡ fdd„}|S )Nc                    sr   t  ˆ¡}|d k‰|t jkr0tjtdœdd„‰ntjtdœdd„‰tˆƒ‡ ‡‡‡fdd„ƒ}ˆrht|ƒ}d|_|S )N)ÚargsÚreturnc                 S   s   t  t| d j¡S ©Nr   )ÚtÚcastÚboolÚis_async©r   © r   úT/var/www/html/services/stratfitenv/lib/python3.8/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    c                     s0   ˆ| ƒ}ˆr| dd … } |r&ˆ | |ŽS ˆ| |ŽS )Nr   r   )r   ÚkwargsÚb)Ú
async_funcr   Úneed_eval_contextÚnormal_funcr   r   Úwrapper   s    
z1async_variant.<locals>.decorator.<locals>.wrapperT)	r   Zfrom_objr   r
   ÚAnyr   r   r   Zjinja_async_variant)r   Zpass_argr   ©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krt d| ¡S t | ¡r4t d| ¡I d H S t d| ¡S )Nr   zt.Awaitable[V])ÚtypeÚ_common_primitivesr
   r   ÚinspectÚisawaitable©r   r   r   r   Ú
auto_await2   s
    
r"   z*t.Union[t.AsyncIterable[V], t.Iterable[V]]zt.AsyncIterator[V])Úiterabler   c                 C  sJ   t | dƒr.t d| ¡2 z3 d H W }|V  q6 nt d| ¡D ]
}|V  q:d S )NÚ	__aiter__zt.AsyncIterable[V]zt.Iterable[V])Úhasattrr
   r   )r#   Úitemr   r   r   Ú
auto_aiter=   s
    
r'   c                 Ã   s   dd„ t | ƒ2 ƒI d H S )Nc                 Ó   s   g | z3 d H W }|‘q6 S )Nr   )Ú.0Úxr   r   r   Ú
<listcomp>K   s     z auto_to_list.<locals>.<listcomp>)r'   r!   r   r   r   Úauto_to_listH   s    r+   )r   Útypingr
   Ú	functoolsr   Úutilsr   r   ÚTypeVarr   r   ÚintÚfloatr   ÚstrÚlistÚdictÚtupler   r   ÚUnionÚ	Awaitabler"   r'   ÚListr+   r   r   r   r   Ú<module>   s   
$ þþ