o Fa @sddlZddlZddlmZddlmZddlmZedZ ddZ e e e eeeeedhZd ejejddfd dfd d Z  dddZd dd ejdfddZdS)N)wraps)_PassArg)pass_eval_contextVcsfdd}|S)Ncsvt}|du|tjurdtjdtfddn dtjdtfddtfdd}r6t|}d|_|S) NargsreturncSstt|djSNr)tcastboolis_asyncrr4/usr/lib/python3/dist-packages/jinja2/async_utils.pyr sz2async_variant..decorator..is_asynccSstt|djjSr )r r r environmentr rrrrr scs8|}r |dd}|r|i|S|i|S)Nrr)rkwargsb) async_funcr need_eval_context normal_funcrrwrappers  z1async_variant..decorator..wrapperT) rfrom_objrr Anyr rrjinja_async_variant)rpass_argrr)rr rr decorator s   z async_variant..decoratorr)rrrrr async_variant s  rvaluercsBt|tvr td|St|rtd|IdHStd|S)Nrzt.Awaitable[V])type_common_primitivesr r inspect isawaitablerrrr auto_await2s     r%iterable*t.Union[t.AsyncIterable[V], t.Iterable[V]]t.AsyncIterator[V]cCsNt|drtd|2z 3dHW}|Vq 6dStd|D]}|VqdS)N __aiter__zt.AsyncIterable[V]z t.Iterable[V])hasattrr r )r&itemrrr auto_aiter=s r,csddt|2IdHS)Ncsg|z3dHW}|q6S)Nr).0xrrr Ksz auto_to_list..)r,r$rrr auto_to_listHsr0)r&r'rr()r"typingr functoolsrutilsrrTypeVarrrintfloatr strlistdicttupler r!Union Awaitabler%r,Listr0rrrrs&    $"