+
    ÃìÜj£  ã                   ó~   € ^ RI Ht ^ RIHtHtHtHtHtHt ^ RI	H
t
Ht ^ RIHt ^ RIHtHt ]tR.t ! R R]4      tR# )	é    )Úiscoroutine)ÚAnyÚCallableÚcastÚDictÚOptionalÚTuple)ÚDeferredÚensureDeferred©ÚFailure)ÚEventEmitterÚ	PyeeErrorÚTwistedEventEmitterc                   ól   a a€ ] tR t^t oRtV3R lV 3R lltV3R lR ltV3R lV 3R lltRtVt	V ;t
# )	r   a@  An event emitter class which can run twisted coroutines and handle
returned Deferreds, in addition to synchronous blocking functions. For
example:

```py
@ee.on('event')
@inlineCallbacks
def async_handler(*args, **kwargs):
    yield returns_a_deferred()
```

or:

```py
@ee.on('event')
async def async_handler(*args, **kwargs):
    await returns_a_deferred()
```


When async handlers fail, Failures are first emitted on the `failure`
event. If there are no `failure` handlers, the Failure's associated
exception is then emitted on the `error` event. If there are no `error`
handlers, the exception is raised. For consistency, when handlers raise
errors synchronously, they're captured, wrapped in a Failure and treated
as an async failure. This is unlike the behavior of EventEmitter,
which have no special error handling.

For twisted coroutine event handlers, calling emit is non-blocking.
In other words, you do not have to await any results from emit, and the
coroutine is scheduled in a fire-and-forget fashion.

Similar behavior occurs for "sync" functions which return Deferreds.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )é   ÚselfÚreturnN)ÚSelf)ÚformatÚ__classdict__s   "€ÚJ/opt/render/project/src/.venv/lib/python3.14/site-packages/pyee/twisted.pyÚ__annotate__Ú TwistedEventEmitter.__annotate__5   s   ø€ ÷ 4ñ 4‘tð 4 ñ 4ó    c                ó,   <€ \         \        V `  4        R # )N)Úsuperr   Ú__init__)r   Ú	__class__s   &€r   r   ÚTwistedEventEmitter.__init__5   s   ø€ ÜÔ! 4Ñ1Ö3r   c          
      ó`   <€ V ^8„  d   QhRS[ RS[RS[S[R3,          RS[S[S[3,          RR/# )r   r   ÚfÚargs.Úkwargsr   N)r   r   r	   r   r   Ústr)r   r   s   "€r   r   r   8   sK   ø€ ÷ "ñ "Ùð"áð"ñ ‘C˜�H�oð"ñ ‘S™#�X•ð	"ð
 
ñ"r   c                ó*  a € R p V! V/ VB p\        V4      '       d   \        V4      pM#\        V\        4      '       d   TpM
V'       g   R # R V 3R llpVP	                  V4       R #   \
         d    S P                  R\        4       4        R # i ; i)Nc                ó(   € V ^8„  d   QhR\         RR/# )r   Úfailurer   Nr   )r   s   "r   r   Ú3TwistedEventEmitter._emit_run.<locals>.__annotate__K   s   € ÷ 2ñ 2¤ð 2¨Tñ 2r   c                 ó@   <€ V '       d   SP                  R V 4       R# R# )r)   N)Úemit)r)   r   s   &€r   ÚerrbackÚ.TwistedEventEmitter._emit_run.<locals>.errbackK   s   ø€ ßØ—I‘I˜i¨Ö1ñ r   r)   )r   r   Ú
isinstancer
   Ú
addErrbackÚ	Exceptionr,   r   )r   r#   r$   r%   ÚdÚresultr-   s   f&&&   r   Ú	_emit_runÚTwistedEventEmitter._emit_run8   s†   ø€ ð &*ˆð	"Ù˜Ð' Ñ'ˆFô ˜6×"Ò"Ü" 6Ó*‘Ü˜F¤H×-Ò-Ø‘ßÙ÷2ð 2ð �L‰L˜Ö!øô ô 	,Ø�I‰I�i¤£×+ð	,ús   …A) Á)%BÂBc                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r   r   ÚeventÚerrorr   N)r   r&   r   )r   r   s   "€r   r   r   Q   s)   ø€ ÷ ñ ©4ð ¹ð ÁCð ÈDñ r   c                ó¬  <€ VR 8X  dt   \        V\        4      '       d    VP                  4        R# \        V\        4      '       d   V P	                  RV4       R# V P	                  R\        RV 24      4       R# \        \        \        \        V 4      4      P                  W4       R#   \         d   pT P	                  RT4        Rp?R# Rp?ii ; i)r)   r8   NzUnexpected failure object: )r/   r   ÚraiseExceptionr1   r,   r   r   r   r   r   Ú_emit_handle_potential_error)r   r7   r8   Úexcr    s   &&& €r   r;   Ú0TwistedEventEmitter._emit_handle_potential_errorQ   s¤   ø€ Ø�IÔÜ˜%¤×)Ò)ð,Ø×(Ñ(Ö*ô ˜E¤9×-Ò-Ø—	‘	˜' 5Ö)à—	‘	˜'¤9Ð/JÈ5È'Ð-RÓ#SÖTä””eÔ/°Ó6Ó7×TÑTØöøô !ô ,Ø—I‘I˜g s×+Ò+ûð,ús    B+ Â+CÂ6CÃC© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r4   r;   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r    r   s   @@r   r   r      s.   ù‡ € ñ!÷F4ó 4÷"ð "÷2÷ ó r   N)Úasyncior   Útypingr   r   r   r   r   r	   Útwisted.internet.deferr
   r   Útwisted.python.failurer   Ú	pyee.baser   r   r   Ú__all__r   r>   r   r   Ú<module>rM      s6   ðõ  ß =× =ç ;Ý *ç -à
€ð !Ð
!€ôN˜,ö Nr   