3

U'íc›ã	@s¨ddlZddlZddlmZddlmZddlmZejdƒZ	dd„Z
eee
eeeeedƒhZejejddfdd	œd
d„Zdd
dœdd„Zdejdd	œdd„ZdS)éN)Úwrapsé)Ú_PassArg)Úpass_eval_contextÚVcs‡fdd„}|S)Ncsrtjˆƒ}|dk‰|tjkr0tjtdœdd„‰ntjtdœdd„‰tˆƒ‡‡‡‡fdd„ƒ}ˆrht|ƒ}d|_|S)N)ÚargsÚreturncSstjt|djƒS)Nr)ÚtÚcastÚboolÚis_async)r©r
ú4/tmp/pip-build-gk9425m9/Jinja2/jinja2/async_utils.pyrsz2async_variant.<locals>.decorator.<locals>.is_asynccSstjt|djjƒS)Nr)r	r
rÚenvironmentr)rr
r
rrscs0ˆ|ƒ}ˆr|dd…}|r&ˆ||ŽSˆ||ŽS)Nrr
)rÚkwargsÚb)Ú
async_funcrÚneed_eval_contextÚnormal_funcr
rÚwrappers
z1async_variant.<locals>.decorator.<locals>.wrapperT)	rZfrom_objrr	ZAnyrrrZjinja_async_variant)rZpass_argr)r)rrrrÚ	decorators

z async_variant.<locals>.decoratorr
)rrr
)rrÚ
async_variants r)ÚvaluercÃs@t|ƒtkrtjd|ƒStj|ƒr4tjd|ƒIdHStjd|ƒS)Nrzt.Awaitable[V])ÚtypeÚ_common_primitivesr	r
ÚinspectÚisawaitable)rr
r
rÚ
auto_await2s

rz*t.Union[t.AsyncIterable[V], t.Iterable[V]]zt.AsyncIterator[V])ÚiterablercCsjt|dƒrJxZtjd|ƒ2dHy3dH}Wn
tk
s<X|VqYWnxtjd|ƒD]
}|VqXWdS)NÚ	__aiter__zt.AsyncIterable[V]z
t.Iterable[V])Úhasattrr	r
ÚStopAsyncIteration)rÚitemr
r
rÚ
auto_aiter=s

*r#cÃsdd„t|ƒ2dHƒIdHS)Nc
Ós.g|y3dH}Wn
tk
s"X|‘qYS)N)r!)Ú.0Úxr
r
rú
<listcomp>Ksz auto_to_list.<locals>.<listcomp>)r#)rr
r
rÚauto_to_listHsr')rÚtypingr	Ú	functoolsrÚutilsrrZTypeVarrrÚintÚfloatrÚstrÚlistÚdictÚtuplerrÚUnionÚ	Awaitablerr#ÚListr'r
r
r
rÚ<module>s
$