File: //opt/alt/python38/lib/python3.8/site-packages/jinja2/__pycache__/async_utils.cpython-38.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
�Anyr 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 �inspect�isawaitable�r r r r �
auto_await2 s
r"