Ë
    Fü´jÓ
  ã                  óJ   — d dl mZ d dlZd dlmZmZ edef   Z G d„ d«      Zy)é    )ÚannotationsN)ÚAnyÚCallable.c                  ó\   — e Zd ZdZddœdd„Zdd„Zdd„Zddœdd„Zdd	„Zdd
„Z	dd„Z
dd„Zy)ÚEventHandlerRegistryz2Thread-safe (optional) registry of event handlers.F)Úuse_lockc               óv   — i | _         t        «       | _        |rt        j                  «       | _        y d | _        y ©N)Ú	_handlersÚsetÚ	_once_idsÚ	threadingÚLockÚ_lock)Úselfr   s     úS/root/workspace/ytshorts/venv/lib/python3.12/site-packages/openai/_event_handler.pyÚ__init__zEventHandlerRegistry.__init__   s(   € Ø8:ˆŒÜ#&£5ˆŒÙ@H¬I¯N©NÓ,<ˆ�
Èdˆ�
ó    c                óR   — | j                   �| j                   j                  «        y y r
   )r   Úacquire©r   s    r   Ú_acquirezEventHandlerRegistry._acquire   ó!   € Ø�:‰:Ð!Ø�J‰J×ÑÕ ð "r   c                óR   — | j                   �| j                   j                  «        y y r
   )r   Úreleaser   s    r   Ú_releasezEventHandlerRegistry._release   r   r   ©Úoncec               ó  — | j                  «        	 | j                  j                  |g «      }|j                  |«       |r$| j                  j                  t        |«      «       | j                  «        y # | j                  «        w xY wr
   )r   r   Ú
setdefaultÚappendr   ÚaddÚidr   )r   Ú
event_typeÚhandlerr   Úhandlerss        r   r"   zEventHandlerRegistry.add   s^   € Ø�‰Œð	Ø—~‘~×0Ñ0°¸RÓ@ˆHØ�O‰O˜GÔ$ÙØ—‘×"Ñ"¤2 g£;Ô/à�M‰M�OøˆD�M‰M�Oús   ’AA6 Á6Bc                ó4  — | j                  «        	 | j                  j                  |«      }|�6	 |j                  |«       | j
                  j                  t        |«      «       | j                  «        y # t        $ r Y Œ@w xY w# | j                  «        w xY wr
   )	r   r   ÚgetÚremoveÚ
ValueErrorr   Údiscardr#   r   )r   r$   r%   r&   s       r   r)   zEventHandlerRegistry.remove#   s|   € Ø�‰Œð		Ø—~‘~×)Ñ)¨*Ó5ˆHØÐ#ðØ—O‘O GÔ,ð —‘×&Ñ&¤r¨'£{Ô3à�M‰M�Oøô	 "ò Ùðûð �M‰M�Oús.   ’B °A6 Á$B Á6	BÁ?B ÂBÂB ÂBc                ó¶  — | j                  «        	 | j                  j                  |«      }|sg | j                  «        S t	        |«      }|D �cg c]  }t        |«      | j                  v sŒ|‘Œ }}|D ]7  }|j                  |«       | j                  j                  t        |«      «       Œ9 || j                  «        S c c}w # | j                  «        w xY w)zOReturn a snapshot of handlers for the given event type, removing once-handlers.)	r   r   r(   r   Úlistr#   r   r)   r+   )r   r$   r&   ÚresultÚhÚ	to_removes         r   Úget_handlersz!EventHandlerRegistry.get_handlers0   s´   € à�‰Œð	Ø—~‘~×)Ñ)¨*Ó5ˆHÙØð �M‰M�Oô ˜(“^ˆFØ$*ÖF˜q¬b°«e°t·~±~Ò.EšÐFˆIÐFØò .�Ø—‘ Ô"Ø—‘×&Ñ&¤r¨!£uÕ-ð.ð à�M‰M�Oùò Gøð �M‰M�Oús)   ’C ÁC ÁCÁ-CÁ1?C ÃC ÃCc                óº   — | j                  «        	 | j                  j                  |«      }t        |«      | j	                  «        S # | j	                  «        w xY wr
   )r   r   r(   Úboolr   )r   r$   r&   s      r   Úhas_handlersz!EventHandlerRegistry.has_handlers@   s>   € Ø�‰Œð	Ø—~‘~×)Ñ)¨*Ó5ˆHÜ˜“>à�M‰M�OøˆD�M‰M�Oús   ’%A ÁAc                ó€  — | j                  «        	 | j                  j                  «       D ]7  \  }}|D ]-  }t        |«      | j                  v }|j                  |||¬«       Œ/ Œ9 | j                  j                  «        | j                  j                  «        | j                  «        y# | j                  «        w xY w)zDMove all handlers from this registry into *target*, then clear self.r   N)r   r   Úitemsr#   r   r"   Úclearr   )r   Útargetr$   r&   r%   r   s         r   Ú
merge_intozEventHandlerRegistry.merge_intoH   s™   € à�‰Œð	Ø(,¯©×(<Ñ(<Ó(>ò ?Ñ$�
˜HØ'ò ?�GÜ˜g›;¨$¯.©.Ð8�DØ—J‘J˜z¨7¸�JÕ>ñ?ð?ð �N‰N× Ñ Ô"Ø�N‰N× Ñ Ô"à�M‰M�OøˆD�M‰M�Oús   ’BB+ Â+B=N)r   r3   ÚreturnÚNone)r:   r;   )r$   Ústrr%   ÚEventHandlerr   r3   r:   r;   )r$   r<   r%   r=   r:   r;   )r$   r<   r:   zlist[EventHandler])r$   r<   r:   r3   )r8   r   r:   r;   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r"   r)   r1   r4   r9   © r   r   r   r   	   s8   „ Ù<à+0õ Só
!ó!ð KPõ óóó ôr   r   )Ú
__future__r   r   Útypingr   r   r=   r   rB   r   r   ú<module>rE      s(   ðÝ "ã ß  à˜˜S˜Ñ!€÷Jò Jr   