+
    ÃìÜj…!  ã                   óª   € ^ RI Ht ^ RIHt ^ RIHtHtHtHtH	t	H
t
HtHtHtHtHt ]t ! R R]4      t ! R R]4      t]! R]R	7      t ! R
 R4      tR# )é    )ÚOrderedDict)ÚLock)ÚAnyÚCallableÚDictÚListÚMappingÚOptionalÚoverloadÚSetÚTupleÚTypeVarÚUnionc                   ó   € ] tR t^tRtRtR# )ÚPyeeExceptionz@An exception internal to pyee. Deprecated in favor of PyeeError.© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚG/opt/render/project/src/.venv/lib/python3.14/site-packages/pyee/base.pyr   r      s   † ÝJr   r   c                   ó   € ] tR t^tRtRtR# )Ú	PyeeErrorzAn error internal to pyee.r   Nr   r   r   r   r   r      s   † Ý$r   r   ÚHandler)Úboundc                   óš  a € ] tR t^!t o RtV 3R lR ltV 3R lR ltV 3R lR lt]V 3R lR	 l4       t	]V 3R
 lR l4       t	R*V 3R lR llt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR*V 3R lR  lltV 3R! lR" ltV 3R# lR$ ltR*V 3R% lR& lltV 3R' lR( ltR)tV tR# )+ÚEventEmitteraB  The base event emitter class. All other event emitters inherit from
this class.

Most events are registered with an emitter via the `on` and `once`
methods, and fired with the `emit` method. However, pyee event emitters
have two *special* events:

- `new_listener`: Fires whenever a new listener is created. Listeners for
  this event do not fire upon their own creation.

- `error`: When emitted raises an Exception by default, behavior can be
  overridden by attaching callback to the event.

  For example:

```py
@ee.on('error')
def on_error(message):
    logging.err(message)

ee.emit('error', Exception('something blew up'))
```

All callbacks are handled in a synchronous, blocking manner. As in node.js,
raised exceptions are not automatically handled for you---you must catch
your own exceptions, and treat them accordingly.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )é   ÚselfÚreturnN)ÚSelf)ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚEventEmitter.__annotate__>   s   ø€ ÷ "ñ "‘tð " ñ "r   c                óB   € \        4       V n        \        4       V n        R # ©N)ÚdictÚ_eventsr   Ú_lock©r$   s   &r   Ú__init__ÚEventEmitter.__init__>   s   € ô ‹Fð 	Œô  ›6ˆŽ
r   c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# ©r#   r$   r%   ©r&   r	   Ústrr   )r'   r(   s   "€r   r)   r*   E   s$   ø€ ÷ ñ ™4ð ¡G©C±¨HÕ$5ñ r   c                ó@   € V P                   P                  4       pVR  V# )r/   )Ú__dict__Úcopy©r$   Ústates   & r   Ú__getstate__ÚEventEmitter.__getstate__E   s    € Ø—‘×"Ñ"Ó$ˆØ�'ˆNØˆr   c                ó@   <€ V ^8„  d   QhRS[ RS[S[S[3,          RR/# )r#   r$   r;   r%   Nr5   )r'   r(   s   "€r   r)   r*   J   s+   ø€ ÷ ñ ™4ð ©±±S°Õ(9ð ¸dñ r   c                óZ   € V P                   P                  V4       \        4       V n        R # r,   )r8   Úupdater   r/   r:   s   &&r   Ú__setstate__ÚEventEmitter.__setstate__J   s   € Ø�‰×Ñ˜UÔ#Ü“VˆŽ
r   c                óD   <€ V ^8„  d   QhRS[ RS[RS[S[.S[3,          /# ©r#   r$   Úeventr%   ©r&   r6   r   r   )r'   r(   s   "€r   r)   r*   O   s$   ø€ ×GÑG‘ÐG™cÐG¡h±¨y¹'Ð/AÕ&BÑGr   c                ó   € R # r,   r   ©r$   rE   s   &&r   ÚonÚEventEmitter.onN   s   € ÙDGr   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# ©r#   r$   rE   Úfr%   ©r&   r6   r   )r'   r(   s   "€r   r)   r*   Q   s   ø€ ×>Ñ>‘Ð>™cÐ>¡gÐ>±'Ñ>r   c                ó   € R # r,   r   ©r$   rE   rM   s   &&&r   rI   rJ   P   s   € Ù;>r   Nc                óp   <€ V ^8„  d   QhRS[ RS[RS[S[,          RS[S[S[S[.S[3,          3,          /# rL   )r&   r6   r
   r   r   r   )r'   r(   s   "€r   r)   r*   S   sH   ø€ ÷  /ñ  /Ùð /Ùð /Ù#+©GÕ#4ð /á	‰w™¡' ©GÐ!3Õ4Ð4Õ	5ñ /r   c                óN   € Vf   V P                  V4      # V P                  W4      # )aÝ  Registers the function `f` to the event name `event`, if provided.

If `f` isn't provided, this method calls `EventEmitter#listens_to`, and
otherwise calls `EventEmitter#add_listener`. In other words, you may either
use it as a decorator:

```py
@ee.on('data')
def data_handler(data):
    print(data)
```

Or directly:

```py
ee.on('data', data_handler)
```

In both the decorated and undecorated forms, the event handler is
returned. The upshot of this is that you can call decorated handlers
directly, as well as use them in remove_listener calls.

Note that this method's return type is a union type. If you are using
mypy or pyright, you will probably want to use either
`EventEmitter#listens_to` or `EventEmitter#add_listener`.
)Ú
listens_toÚadd_listenerrP   s   &&&r   rI   rJ   S   s)   € ð: Š9Ø—?‘? 5Ó)Ð)à×$Ñ$ UÓ.Ð.r   c                óD   <€ V ^8„  d   QhRS[ RS[RS[S[.S[3,          /# rD   rF   )r'   r(   s   "€r   r)   r*   u   s.   ø€ ÷ ñ ™ð ¡cð ©h¹°yÁ'Ð7IÕ.Jñ r   c                ó   a a€ R VV 3R llpV# )a  Returns a decorator which will register the decorated function to
the event name `event`:

```py
@ee.listens_to("event")
def data_handler(data):
    print(data)
```

By only supporting the decorator use case, this method has improved
type safety over `EventEmitter#on`.
c                ó0   € V ^8„  d   QhR\         R\         /# ©r#   rM   r%   )r   )r'   s   "r   r)   Ú-EventEmitter.listens_to.<locals>.__annotate__ƒ   s   € ÷ 	ñ 	”'ð 	œgñ 	r   c                 ó,   <€ SP                  SW 4       V # r,   ©Ú_add_event_handler)rM   rE   r$   s   &€€r   rI   Ú#EventEmitter.listens_to.<locals>.onƒ   s   ø€ Ø×#Ñ# E¨1Ô0ØˆHr   r   )r$   rE   rI   s   ff r   rS   ÚEventEmitter.listens_tou   s   ù€ ÷	ñ 	ð ˆ	r   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# rL   rN   )r'   r(   s   "€r   r)   r*   ‰   s)   ø€ ÷ ñ ™4ð ©ð ±ð ¹Gñ r   c                ó*   € V P                  WV4       V# )zúRegister the function `f` to the event name `event`:

```
def data_handler(data):
    print(data)

h = ee.add_listener("event", data_handler)
```

By not supporting the decorator use case, this method has improved
type safety over `EventEmitter#on`.
r[   rP   s   &&&r   rT   ÚEventEmitter.add_listener‰   s   € ð 	×Ñ ¨!Ô,Øˆr   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# )r#   r$   rE   ÚkÚv©r&   r6   r   )r'   r(   s   "€r   r)   r*   ™   s)   ø€ ÷ 'ñ '¡ð '©cð '±hð 'Á8ñ 'r   c                ó  € V P                  R W4       V P                  ;_uu_ 4        WP                  9  d   \        4       V P                  V&   W0P                  V,          V&   RRR4       R#   + '       g   i     R# ; i)Únew_listenerN)Úemitr/   r.   r   )r$   rE   rc   rd   s   &&&&r   r\   ÚEventEmitter._add_event_handler™   sR   € à�	‰	�. %Ô+ð �Z�Z‹ZØŸL™LÔ(Ü&1£m�—‘˜UÑ#Ø%&�L‰L˜Õ Ñ"÷ �Z�ZŠZús   §=A.Á.A?	c          
      ó`   <€ V ^8„  d   QhRS[ RS[RS[S[R3,          RS[S[S[3,          RR/# )r#   r$   rM   Úargs.Úkwargsr%   N)r&   r   r   r   r   r6   )r'   r(   s   "€r   r)   r*   ¦   sK   ø€ ÷ ñ Ùðáðñ ‘C˜�H�oðñ ‘S™#�X•ð	ð
 
ñr   c                ó   € V! V/ VB  R # r,   r   )r$   rM   rk   rl   s   &&&&r   Ú	_emit_runÚEventEmitter._emit_run¦   s   € ñ 	
ˆ4Ð�6Ôr   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# r4   )r&   r   r6   )r'   r(   s   "€r   r)   r*   ®   s   ø€ ÷ (ñ (™$ð (¡3¡s¥8ñ (r   c                óH   € \        V P                  P                  4       4      # )z6Get a set of events that this emitter is listening to.)Úsetr.   Úkeysr0   s   &r   Úevent_namesÚEventEmitter.event_names®   s   € ä�4—<‘<×$Ñ$Ó&Ó'Ð'r   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r#   r$   rE   Úerrorr%   N)r&   r6   r   )r'   r(   s   "€r   r)   r*   ²   s/   ø€ ÷ Qñ Q©4ð Q¹ð QÁCð QÈDñ Qr   c                ó`   € VR 8X  d'   \        V\        4      '       d   Vh\        RV 24      hR# )rw   z%Uncaught, unspecified 'error' event: N)Ú
isinstanceÚ	Exceptionr   )r$   rE   rw   s   &&&r   Ú_emit_handle_potential_errorÚ)EventEmitter._emit_handle_potential_error²   s4   € Ø�GÔÜ˜%¤×+Ò+Ø�äÐ"GÈÀwÐ OÓPÐPñ	 r   c          
      ób   <€ V ^8„  d   QhRS[ RS[RS[S[R3,          RS[S[S[3,          RS[/# )r#   r$   rE   rk   .rl   r%   )r&   r6   r   r   r   Úbool)r'   r(   s   "€r   r)   r*   ¹   sK   ø€ ÷ ñ Ùðáðñ ‘C˜�H�oðñ ‘S™#�X•ð	ñ
 
ñr   c           	     ó  € R pV P                   ;_uu_ 4        \        V P                  P                  V\	        4       4      P                  4       4      pRRR4       X F  pV P                  WbV4       RpK  	  V#   + '       g   i     L/; i)FNT)r/   Úlistr.   Úgetr   Úvaluesrn   )r$   rE   rk   rl   ÚhandledÚfuncsrM   s   &&&&   r   Ú_call_handlersÚEventEmitter._call_handlers¹   si   € ð ˆà�Z�Z‹ZÜ˜Ÿ™×)Ñ)¨%´³Ó?×FÑFÓHÓIˆE÷ ãˆAØ�N‰N˜1 FÔ+ØŠGñ ð ˆ÷ �Zús   —<A:Á:B
	c          
      ó8   <€ V ^8„  d   QhRS[ RS[RS[RS[RS[/# )r#   r$   rE   rk   rl   r%   )r&   r6   r   r~   )r'   r(   s   "€r   r)   r*   É   s;   ø€ ÷ ñ Ùðáðñ ðñ ð	ñ
 
ñr   c                ó~   € V P                  WV4      pV'       g#   T P                  Y'       d
   V^ ,          MR4       V# )a  Emit `event`, passing `*args` and `**kwargs` to each attached
function. Returns `True` if any functions are attached to `event`;
otherwise returns `False`.

Example:

```py
ee.emit('data', '00101001')
```

Assuming `data` is an attached function, this will call
`data('00101001')'`.
N)r…   r{   )r$   rE   rk   rl   rƒ   s   &&*, r   rh   ÚEventEmitter.emitÉ   s6   € ð& ×%Ñ% e°6Ó:ˆçØ×-Ñ-¨eÆ°T¸!¶WÈ$ÔOàˆr   c                óB   <€ V ^8„  d   QhRS[ RS[RS[S[,          RS[/# rL   )r&   r6   r
   r   )r'   r(   s   "€r   r)   r*   ã   s6   ø€ ÷ ñ Ùðáðñ ‘HÕðñ 
ñ	r   c                ó6   a a€ R VV 3R llpVf   V# V! V4      # )z[The same as `ee.on`, except that the listener is automatically
removed after being called.
c                ó0   € V ^8„  d   QhR\         R\         /# rX   )r   )r'   s   "r   r)   Ú'EventEmitter.once.<locals>.__annotate__ì   s   € ÷ 	ñ 	œð 	¤Xñ 	r   c                 óF   <a € R  VV V3R llpSP                  SS V4       S # )c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r#   rk   rl   r%   )r   )r'   s   "r   r)   Ú9EventEmitter.once.<locals>._wrapper.<locals>.__annotate__í   s&   € ÷ *ñ *Üð*äð*ô ñ*r   c                  ó  <€ SP                   ;_uu_ 4        SSP                  9   d,   SSP                  S,          9   d   SP                  SS4       M R R R 4       R #  R R R 4       S! V / VB #   + '       g   i     L; ir,   )r/   r.   Ú_remove_listener)rk   rl   rE   rM   r$   s   *,€€€r   ÚgÚ.EventEmitter.once.<locals>._wrapper.<locals>.gí   sj   ø€ ð —Z—Z“Zð  §¡Ô,°°d·l±lÀ5Õ6IÔ1IØ×-Ñ-¨e°QÕ7à#÷  ‘Zð 8÷	  ñ ˜$Ð) &Ñ)Ð)÷  —Zús   –>A/Á/A?	r[   )rM   r“   rE   r$   s   f €€r   Ú_wrapperÚ#EventEmitter.once.<locals>._wrapperì   s&   ù€ ÷*ò *ð ×#Ñ# E¨1¨aÔ0ØˆHr   r   )r$   rE   rM   r•   s   ff& r   ÚonceÚEventEmitter.onceã   s#   ù€ ÷	ñ 	ð& Š9ØˆOá˜A“;Ðr   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# ©r#   r$   rE   rM   r%   Nre   )r'   r(   s   "€r   r)   r*     s)   ø€ ÷ (ñ (™tð (©Cð (±Hð (Àñ (r   c                ó¾   € WP                   9   dM   V P                   V,          P                  V4       V P                   V,          '       g   V P                   V R# R# R# )zNaked unprotected removal.N)r.   ÚpoprP   s   &&&r   r’   ÚEventEmitter._remove_listener  sH   € à—L‘LÔ Ø�L‰L˜Õ×#Ñ# AÔ&Ø—<‘< ×&Ô&Ø—L‘L Ò'ñ 'ñ !r   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# rš   re   )r'   r(   s   "€r   r)   r*     s)   ø€ ÷ ,ñ ,™dð ,©3ð ,±8ð ,Àñ ,r   c                óŠ   € V P                   ;_uu_ 4        V P                  W4       RRR4       R#   + '       g   i     R# ; i)z&Removes the function `f` from `event`.N)r/   r’   rP   s   &&&r   Úremove_listenerÚEventEmitter.remove_listener  s%   € à�Z�Z‹ZØ×!Ñ! %Ô+÷ �Z�ZŠZús	   •1±A	c                ó:   <€ V ^8„  d   QhRS[ RS[S[,          RR/# )r#   r$   rE   r%   N)r&   r
   r6   )r'   r(   s   "€r   r)   r*     s&   ø€ ÷ 	&ñ 	&¡4ð 	&±¹µð 	&Èñ 	&r   c                óÊ   € V P                   ;_uu_ 4        Ve   WP                  9   d   V P                  V M\        4       V n        RRR4       R#   + '       g   i     R# ; i)zdRemove all listeners attached to `event`.
If `event` is `None`, remove all listeners on all events.
N)r/   r.   r-   rH   s   &&r   Úremove_all_listenersÚ!EventEmitter.remove_all_listeners  s?   € ð �Z�Z‹ZØÒ ØŸL™LÔ(ØŸ™ UÐ+øä#›v�”÷ �Z�ZŠZús   •2AÁA"	c                ó<   <€ V ^8„  d   QhRS[ RS[RS[S[,          /# rD   )r&   r6   r   r   )r'   r(   s   "€r   r)   r*     s+   ø€ ÷ Cñ C™ð C¡Sð C©T±(­^ñ Cr   c                óx   € \        V P                  P                  V\        4       4      P	                  4       4      # )z:Returns a list of all listeners registered to the `event`.)r€   r.   r�   r   rs   rH   s   &&r   Ú	listenersÚEventEmitter.listeners  s)   € ä�D—L‘L×$Ñ$ U¬K«MÓ:×?Ñ?ÓAÓBÐBr   )r.   r/   r,   )r   r   r   r   r   r1   r<   rA   r   rI   rS   rT   r\   rn   rt   r{   r…   rh   r—   r’   r    r¤   r¨   r   Ú__classdictcell__)r(   s   @r   r!   r!   !   sØ   ø‡ € ñ÷8"ð "÷ð ÷
ð ð ßGó ØGØß>ó Ø>÷ /ò  /÷Dð ÷(ð ÷ 'ð '÷ð ÷(ð (÷Qð Q÷ð ÷ ð ÷4ò ÷B(ð (÷,ð ,÷
	&ò 	&÷Cö Cr   r!   N)Úcollectionsr   Ú	threadingr   Útypingr   r   r   r   r	   r
   r   r   r   r   r   r&   rz   r   r   r   r!   r   r   r   Ú<module>r®      s^   ðõ $Ý ÷÷ ÷ ñ ð €ôK�Iô Kô%�ô %ñ �) 8Ô
,€÷|Có |Cr   