§
    dŠtjŒ  ã                   óÌ   — d Z ddlZddlZddlmZ  e¦   «         Z ej        e¦  «        Z	 G d„ dej
        ¦  «        Z G d„ dej
        ¦  «        Z G d„ d	ej
        ¦  «        ZdS )
z/Helpful utilities related to the stream module.é    N)Ústreamc                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚTransformingConsumerzGA stream.Consumer that passes a transformation of its input to another.c                 ó"   — || _         || _        d S ©N)Ú_transformationÚ_downstream)ÚselfÚtransformationÚ
downstreams      úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/grpc/framework/foundation/stream_util.pyÚ__init__zTransformingConsumer.__init__   s   € Ø-ˆÔØ%ˆÔÐÐó    c                 ó`   — | j                              |                      |¦  «        ¦  «         d S r   )r	   Úconsumer   ©r
   Úvalues     r   r   zTransformingConsumer.consume    s-   € ØÔ× Ò  ×!5Ò!5°eÑ!<Ô!<Ñ=Ô=Ð=Ð=Ð=r   c                 ó8   — | j                              ¦   «          d S r   )r	   Ú	terminate©r
   s    r   r   zTransformingConsumer.terminate#   s   € ØÔ×"Ò"Ñ$Ô$Ð$Ð$Ð$r   c                 ó`   — | j                              |                      |¦  «        ¦  «         d S r   )r	   Úconsume_and_terminater   r   s     r   r   z*TransformingConsumer.consume_and_terminate&   s-   € ØÔ×.Ò.¨t×/CÒ/CÀEÑ/JÔ/JÑKÔKÐKÐKÐKr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r   r   r      s[   € € € € € ØQÐQð&ð &ð &ð>ð >ð >ð%ð %ð %ðLð Lð Lð Lð Lr   r   c                   ó<   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚIterableConsumerzDA Consumer that when iterated over emits the values it has consumed.c                 óR   — t          j        ¦   «         | _        g | _        d| _        d S )NT)Ú	threadingÚ	ConditionÚ
_conditionÚ_valuesÚ_activer   s    r   r   zIterableConsumer.__init__-   s$   € Ý#Ô-Ñ/Ô/ˆŒØˆŒØˆŒˆˆr   c                 óº   — | j         5  | j        r3| j                             |¦  «         | j                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r   ©r#   r%   r$   ÚappendÚnotifyr   s     r   r   zIterableConsumer.consume2   s¢   € ØŒ_ð 	)ð 	)ØŒ|ð )Ø”×#Ò# EÑ*Ô*Ð*Ø”×&Ò&Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ˆ;AÁAÁAc                 ó†   — | j         5  d| _        | j                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S ©NF)r#   r%   r)   r   s    r   r   zIterableConsumer.terminate8   s‰   € ØŒ_ð 	%ð 	%Ø ˆDŒLØŒO×"Ò"Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ˆ!6¶:½:c                 óÈ   — | j         5  | j        r:| j                             |¦  «         d| _        | j                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r+   r'   r   s     r   r   z&IterableConsumer.consume_and_terminate=   s©   € ØŒ_ð 	)ð 	)ØŒ|ð )Ø”×#Ò# EÑ*Ô*Ð*Ø$�”Ø”×&Ò&Ñ(Ô(Ð(ð		)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ˆAAÁAÁAc                 ó   — | S r   r   r   s    r   Ú__iter__zIterableConsumer.__iter__D   s   € Øˆr   c                 ó*   — |                       ¦   «         S r   )Únextr   s    r   Ú__next__zIterableConsumer.__next__G   s   € Ø�yŠy‰{Œ{Ðr   c                 ó  — | j         5  | j        r.| j        s'| j                              ¦   «          | j        r| j        ¯'| j        r&| j                             d¦  «        cd d d ¦  «         S t          ¦   «         ‚# 1 swxY w Y   d S )Nr   )r#   r%   r$   ÚwaitÚpopÚStopIterationr   s    r   r0   zIterableConsumer.nextJ   sÓ   € ØŒ_ð 	"ð 	"Ø”,ð ' t¤|ð 'Ø”×$Ò$Ñ&Ô&Ð&ð ”,ð ' t¤|ð 'àŒ|ð +Ø”|×'Ò'¨Ñ*Ô*ð		"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"õ
  ‘/”/Ð!ð	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ˆAA9Á+A9Á9A=Â A=N)r   r   r   r   r   r   r   r   r.   r1   r0   r   r   r   r   r   *   sƒ   € € € € € ØNÐNðð ð ð
)ð )ð )ð%ð %ð %ð
)ð )ð )ðð ð ðð ð ð"ð "ð "ð "ð "r   r   c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚThreadSwitchingConsumerz?A Consumer decorator that affords serialization and asynchrony.c                 ó|   — t          j        ¦   «         | _        || _        || _        d| _        g | _        d| _        d S ©NFT)r!   ÚLockÚ_lockÚ_sinkÚ_poolÚ	_spinningr$   r%   )r
   ÚsinkÚpools      r   r   z ThreadSwitchingConsumer.__init__V   s:   € Ý”^Ñ%Ô%ˆŒ
ØˆŒ
ØˆŒ
ð ˆŒØˆŒØˆŒˆˆr   c                 ó   — 	 	 |t           u r|                     ¦   «          n-|r|                     |¦  «         n|                     |¦  «         n1# t          $ r$}t
                               |¦  «         Y d }~nd }~ww xY w| j        5  |rd| _        	 d d d ¦  «         d S | j	        r+| j	         
                    d¦  «        }| j	         o| j         }n&| j        s
t           }d}nd| _        	 d d d ¦  «         d S d d d ¦  «         n# 1 swxY w Y   �Œ)NTFr   )Ú	_NO_VALUEr   r   r   Ú	ExceptionÚ_LOGGERÚ	exceptionr;   r>   r$   r4   r%   )r
   r?   r   r   Úes        r   Ú_spinzThreadSwitchingConsumer._spin`   s»  € ð	ð%Ø�IÐ%Ð%Ø—N’NÑ$Ô$Ð$Ð$Øð (Ø×.Ò.¨uÑ5Ô5Ð5Ð5à—L’L Ñ'Ô'Ð'øøÝð %ð %ð %Ý×!Ò! !Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$øøøøð%øøøð ”ð ð Øð Ø%*�D”NØðð ð ñ ô ð ð ð ð ”<ð Ø œL×,Ò,¨QÑ/Ô/�EØ$(¤LÐ 0Ð E¸¼Ð5E�I�IØœð Ý%�EØ $�I�Ià%*�D”NØðð ð ñ ô ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ñ	s1   ƒAA Á
A=ÁA8Á8A=ÂDÂADÄDÄ
Dc                 óô   — | j         5  | j        rP| j        r| j                             |¦  «         n.| j                             | j        | j        |d¦  «         d| _        d d d ¦  «         d S # 1 swxY w Y   d S r9   ©	r;   r%   r>   r$   r(   r=   ÚsubmitrG   r<   r   s     r   r   zThreadSwitchingConsumer.consumez   sÂ   € ØŒZð 	*ð 	*ØŒ|ð *Ø”>ð *Ø”L×'Ò'¨Ñ.Ô.Ð.Ð.à”J×%Ò% d¤j°$´*¸eÀUÑKÔKÐKØ%)�D”Nð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆAA-Á-A1Á4A1c                 óÖ   — | j         5  | j        rAd| _        | j        s3| j                             | j        | j        t          d¦  «         d| _        d d d ¦  «         d S # 1 swxY w Y   d S r9   )r;   r%   r>   r=   rJ   rG   r<   rB   r   s    r   r   z!ThreadSwitchingConsumer.terminateƒ   s°   € ØŒZð 	*ð 	*ØŒ|ð *Ø$�”Ø”~ð *Ø”J×%Ò% d¤j°$´*½iÈÑNÔNÐNØ%)�D”Nð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆA	AÁA"Á%A"c                 ó  — | j         5  | j        rWd| _        | j        r| j                             |¦  «         n.| j                             | j        | j        |d¦  «         d| _        d d d ¦  «         d S # 1 swxY w Y   d S r9   rI   r   s     r   r   z-ThreadSwitchingConsumer.consume_and_terminate‹   sÉ   € ØŒZð 	*ð 	*ØŒ|ð *Ø$�”Ø”>ð *Ø”L×'Ò'¨Ñ.Ô.Ð.Ð.à”J×%Ò% d¤j°$´*¸eÀTÑJÔJÐJØ%)�D”Nð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆAA4Á4A8Á;A8N)	r   r   r   r   r   rG   r   r   r   r   r   r   r7   r7   S   se   € € € € € ØIÐIðð ð ðð ð ð4*ð *ð *ð*ð *ð *ð*ð *ð *ð *ð *r   r7   )r   Úloggingr!   Úgrpc.framework.foundationr   ÚobjectrB   Ú	getLoggerr   rD   ÚConsumerr   r   r7   r   r   r   ú<module>rR      sò   ðð 6Ð 5à €€€Ø Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,àˆF‰HŒH€	Ø
ˆ'Ô
˜HÑ
%Ô
%€ðLð Lð Lð Lð L˜6œ?ñ Lô Lð Lð"&"ð &"ð &"ð &"ð &"�v”ñ &"ô &"ð &"ðR@*ð @*ð @*ð @*ð @*˜fœoñ @*ô @*ð @*ð @*ð @*r   