o knh @sddlZddlZddlmZddlmZddlmZddlmZej r'ddl Z e dZ dd ZeeeeeeeedhZd ejejddfd dfd d ZGdddeje Z   dddZd dd ejdfddZdS)N)WRAPPER_ASSIGNMENTS)wraps)_PassArg)pass_eval_contextVcsfdd}|S)Ncst}|du|tjurdtjdtfddn dtjdtfddd}ttt |}t |dt |dd fd d }rJt |}d |_ |S) NargsreturncSstt|djSNr)tcastboolis_asyncrr=/usr/local/lib/python3.10/dist-packages/jinja2/async_utils.pyrsz2async_variant..decorator..is_asynccSstt|djjSr )r r r environmentrrrrrrs) __module____name__ __qualname__)assignedr)rupdatedcs8|}r |dd}|r|i|S|i|S)Nrr)rkwargsb) async_funcrneed_eval_context normal_funcrrwrapper%s  z1async_variant..decorator..wrapperT) rfrom_objrr Anyr tuplesetr differencerrjinja_async_variant)rpass_argasync_func_attrsnormal_func_attrsrr)rrrr decorators     z async_variant..decoratorr)rr(rr'r async_variants (r)valuer cs:t|tvr td|St|rtd|IdHS|S)Nrzt.Awaitable[V])type_common_primitivesr r inspect isawaitabler*rrr auto_await>s    r0c@s.eZdZd ddZd ddZdefd d Zd S)_IteratorToAsyncIteratoriterator t.Iterator[V]cCs ||_dSN) _iterator)selfr2rrr__init__Js z!_IteratorToAsyncIterator.__init__r te.SelfcCs|Sr4r)r6rrr __aiter__Msz"_IteratorToAsyncIterator.__aiter__c s4zt|jWSty}zt|j|d}~wwr4)nextr5 StopIterationStopAsyncIterationr*)r6errr __anext__Ps  z"_IteratorToAsyncIterator.__anext__N)r2r3)r r8)rrrr7r9rr>rrrrr1Is  r1iterable*t.Union[t.AsyncIterable[V], t.Iterable[V]]t.AsyncIterator[V]cCst|dr |Stt|S)Nr9)hasattrr9r1iter)r?rrr auto_aiterWs  rDcsddt|2IdHS)Ncsg|z3dHW}|q6Sr4r).0xrrr csz auto_to_list..)rDr/rrr auto_to_list`srH)r?r@r rA) r-typingr functoolsrrutilsrr TYPE_CHECKINGtyping_extensionsteTypeVarrr)intfloatr strlistdictr r+r,Union Awaitabler0Genericr1rDListrHrrrrs.     ,"