File: //opt/alt/python38/lib/python3.8/site-packages/jinja2/__pycache__/async_utils.cpython-38.opt-1.pyc
U
F��a� � @ s� d dl Z d dlZd dlmZ ddlmZ ddlmZ e�d�Z dd� Z
eee
eeeeed�hZejejd df dd �d
d�Zdd
d�dd�Zdejd d �dd�ZdS )� N)�wraps� )�_PassArg)�pass_eval_context�Vc s � fdd�}|S )Nc sr t ���}|d k�|t jkr0tjtd�dd��ntjtd�dd��t��� ���fdd��}�rht|�}d|_|S )N)�args�returnc S s t �t| d j�S �Nr )�t�cast�bool�is_async�r � r �C/opt/alt/python38/lib/python3.8/site-packages/jinja2/async_utils.pyr
s z2async_variant.<locals>.decorator.<locals>.is_asyncc S s t �t| d jj�S r )r
r r �environmentr
r r r r r
s c s0 �| �}�r| dd � } |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 Zfrom_objr r
ZAnyr r r Zjinja_async_variant)r Zpass_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 | �tkrt�d| �S t�| �r4t�d| �I d H S t�d| �S )Nr zt.Awaitable[V])�type�_common_primitivesr
r �inspectZisawaitable�r r r r �
auto_await2 s
r z*t.Union[t.AsyncIterable[V], t.Iterable[V]]zt.AsyncIterator[V])�iterabler c C sJ t | d�r.t�d| �2 z3 d H W }|V q6 nt�d| �D ]
}|V q:d S )N� __aiter__zt.AsyncIterable[V]z
t.Iterable[V])�hasattrr
r )r! �itemr r r �
auto_aiter= s
r% c � s dd� t | �2 �I d H S )Nc � s g | z3 d H W }|�q6 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 Zutilsr r ZTypeVarr r �int�floatr �str�list�dict�tupler r ZUnion� Awaitabler r% ZListr) r r r r �<module> s
$ ��