§
    ÎÐj*  ã                   óX   — d Z ddlmZ ddlZddlZddlmZ d„ Zd„ Z G d„ d¦  «        Z	dS )	zIForward chat pause to the media worker's existing cooperative checkpoint.é    )Úuuid4N)Úgen_lockc                 ó‚   — ddl m}m}  |¦   «         }|�|j        | u r|                     ¦   «          dS  || ¦  «         dS )z8Compatibility entry point for cooperative media workers.r   )Úcurrent_controlÚpause_checkpointN)Úshared.utils.media_controlr   r   ÚgenÚ
checkpoint)r	   r   r   Úcontrols       ú@C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\media_pause.pyÚpostprocessing_pause_checkpointr   
   sh   € àLÐLÐLÐLÐLÐLÐLÐLØˆoÑÔ€GØÐ˜wœ{¨cÐ1Ð1Ø×ÒÑÔÐÐÐàÐ˜ÑÔÐÐÐó    c                 ó”  — dd l }|                      di ¦  «                             dd¦  «        pd}|dk    p|                     d¦  «        }|dk    p|                     d¦  «        }||f}||k    r)|                     ¦   «         |                     ¦   «         |fS |                     | | ¬	¦  «        |                     |¬
¦  «        |fS )Nr   r	   Úprocess_statusÚ úrequest:pausezrequest:deepy_pause_úprocess:pausezprocess:deepy_pause_)ÚvisibleÚinteractive)r   )ÚgradioÚgetÚ
startswithÚskipÚupdate)ÚstateÚpreviousÚgrÚstatusÚpendingÚpausedÚcurrents          r   Úgeneration_pause_controlsr"      sÖ   € ØÐÐÐØ�YŠY�u˜bÑ!Ô!×%Ò%Ð&6¸Ñ;Ô;ÐA¸r€FØ˜Ò'ÐT¨6×+<Ò+<Ð=SÑ+TÔ+T€GØ�Ò&ÐS¨&×*;Ò*;Ð<RÑ*SÔ*S€FØ˜Ð€GØ�(ÒÐØ�wŠw‰yŒy˜"Ÿ'š'™)œ) WÐ,Ð,Ø�9Š9 ˜Z¸°[ˆ9ÑAÔAÀ2Ç9Â9ÐU[À9ÑC\ÔC\Ð^eÐeÐer   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚMediaToolPausec                 ó$  — || _         || _        t          |¦  «        | _        || _        dt          ¦   «         j        z   | _        d| j        z   | _        d| j        z   | _	        d| _
        d| _        t          j        ¦   «         | _        d | _        d S )NÚdeepy_pause_zrequest:zprocess:F)Úsessionr	   ÚsetÚ
client_idsÚsend_cmdr   ÚhexÚownerÚrequestÚprocessÚmanual_pauseÚannounced_pausedÚ	threadingÚEventÚclosedÚwatcher)Úselfr'   r	   r)   r*   s        r   Ú__init__zMediaToolPause.__init__    s|   € ØˆŒØˆŒÝ˜j™/œ/ˆŒØ ˆŒØ#¥e¡g¤g¤kÑ1ˆŒ
Ø! D¤JÑ.ˆŒØ! D¤JÑ.ˆŒØ!ˆÔØ %ˆÔÝ”oÑ'Ô'ˆŒØˆŒˆˆr   c                 ó  — | j                              d¦  «        }|€(| j                              d¦  «        pg }|r|d         ni }|                     d|                     d|¦  «        ¦  «        }|                     d¦  «        | j        v S )NÚapi_active_queue_taskÚqueuer   ÚparamsÚsettingsÚ	client_id)r	   r   r)   )r5   Útaskr9   r:   s       r   Ú_owns_active_taskz MediaToolPause._owns_active_task-   s   € ØŒx�|Š|Ð3Ñ4Ô4ˆØˆ<Ø”H—L’L Ñ)Ô)Ð/¨RˆEØ$Ð,�5˜”8�8¨"ˆDØ—’˜( D§H¢H¨Z¸Ñ$>Ô$>Ñ?Ô?ˆØ�zŠz˜+Ñ&Ô&¨$¬/Ð9Ð9r   c                 ó¢   ‡ — ‰ j         �Fd‰ j         _        ˆ fd„}t          j        |dd¬¦  «        ‰ _        ‰ j                             ¦   «          ‰ S )NTc                  óœ   •— ‰ j                              d¦  «        s0‰                      ¦   «          ‰ j                              d¦  «        ¯.d S d S )Ngš™™™™™¹?)r3   ÚwaitÚpoll©r5   s   €r   Úwatchz'MediaToolPause.__enter__.<locals>.watch8   sV   ø€ Øœ+×*Ò*¨2Ñ.Ô.ð  Ø—I’I‘K”K�Kð œ+×*Ò*¨2Ñ.Ô.ð  ð  ð  ð  ð  r   zDeepy media pause)ÚtargetÚnameÚdaemon)r'   Úmedia_tool_activer1   ÚThreadr4   Ústart)r5   rD   s   ` r   Ú	__enter__zMediaToolPause.__enter__5   sd   ø€ ØŒ<Ð#Ø-1ˆDŒLÔ*ð ð  ð  ð  ð  õ %Ô+°5Ð?RÐ[_Ð`Ñ`Ô`ˆDŒLØŒL×ÒÑ Ô Ð Øˆr   c                 ó,  — | j         r
d| j        d<   | j                             d¦  «        | j        | j        fv r&| j                             d¦  «        rdnd | j        d<   | j                             di ¦  «                             | j        d ¦  «         d S )NTÚresumer   Úmain_process_runningúprocess:mainÚprocess_names)r/   r	   r   r-   r.   Úpopr,   rC   s    r   Ú_release_lockedzMediaToolPause._release_locked?   s�   € ØÔð 	&Ø!%ˆDŒH�XÑØŒ8�<Š<Ð(Ñ)Ô)¨d¬l¸D¼LÐ-IÐIÐIØ;?¼8¿<º<ÐH^Ñ;_Ô;_Ð)i¨¨ÐeiˆDŒHÐ%Ñ&ØŒ�Š�_ bÑ)Ô)×-Ò-¨d¬j¸$Ñ?Ô?Ð?Ð?Ð?r   c           	      óT  ‡— ddl m}m}m} ddlm} | j        }|€d S d}d}d}|j        5  t          5  | j	         
                    d¦  «        }	| j	         
                    di ¦  «        Št          ˆfd„| j        D ¦   «         ¦  «        }
|j        s=|
s.| j	         
                    d¦  «        r!|                      ¦   «         r ||¦  «         d	}|	d
vrd| _        |	d
v r-|                      ¦   «         r| j        sd	| _         ||¦  «         |j        r(|j        s!|j        s| j	         
                    d¦  «        r3|                      ¦   «          | j        r|j        s|j        s	d| _        d	}n‘|	| j        k    s|	dk    r| j        r	|j         }np|	dk    rj| j	         
                    d¦  «        rP|                      ¦   «         r<d| j	                             di ¦  «        | j        <   d| j	        d<   | j        | j	        d<   d d d ¦  «         n# 1 swxY w Y   |r"|                      d |dd|¬¦  «        ¦  «         |r"|                      d |dd|¬¦  «        ¦  «         |r4 ||¦  «        r)d	| _        |                      d |dd|¬¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )Úmark_assistant_pausedÚrequest_assistant_interruptÚrequest_assistant_pause)Úbuild_status_eventFr   Úqueue_errorsc              3   ó<   •K  — | ]}|‰v o‰|         d          V — ŒdS )é   N© )Ú.0r<   rX   s     €r   ú	<genexpr>z&MediaToolPause.poll.<locals>.<genexpr>T   s9   øè è € ÐzÐzÐ]f 	¨\Ð 9Ð X¸lÈ9Ô>UÐVWÔ>XÐzÐzÐzÐzÐzÐzr   ÚabortT)r   r   r   rO   rN   zDeepy PauserP   z)Media Processing Paused - Resume in DeepyÚ	pause_msgÚchat_outputzStopping generation...Ústop_pending)Úkindr'   zResuming media processing...ÚtoolzDeepy is paused.r    )Úshared.deepy.enginerT   rU   rV   Úshared.deepy.chatrW   r'   Ú	turn_lockr   r	   r   Úanyr)   Úinterrupt_requestedr>   r/   Úpause_requestedÚdrop_state_requestedrR   r0   r.   r    Ú
setdefaultr,   r-   r*   )r5   rT   rU   rV   rW   r'   ÚacknowledgedÚresumingÚinterruptedr   Ú	cancelledrX   s              @r   rB   zMediaToolPause.pollF   s  ø€ ØsÐsÐsÐsÐsÐsÐsÐsÐsÐsØ8Ð8Ð8Ð8Ð8Ð8à”,ˆØˆ?ØˆFØˆØˆØˆØÔð !	uð !	uÝð Bð BØœŸšÐ&6Ñ7Ô7�Ø#œxŸ|š|¨N¸BÑ?Ô?�ÝÐzÐzÐzÐzÐjnÔjyÐzÑzÔzÑzÔz�	ØÔ2ð '¸	ð 'ÀdÄhÇlÂlÐSZÑF[ÔF[ð 'Ð`d×`vÒ`vÑ`xÔ`xð 'Ø/Ð/°Ñ8Ô8Ð8Ø"&�KØÐ!CÐCÐCØ(-�DÔ%ØÐ?Ð?Ð?ÀD×DZÒDZÑD\ÔD\Ð?ÐeiÔevÐ?Ø(,�DÔ%Ø+Ð+¨GÑ4Ô4Ð4ØÔ.ð B°'Ô2Mð BÐQXÔQmð BÐquÔqy×q}Òq}ð  Fñ  rGô  rGð BØ×(Ò(Ñ*Ô*Ð*ØÔ,ð (°WÔ5Pð (ÐY`ÔYuð (Ø05˜Ô-Ø#'˜øØ˜tœ|Ò+Ð+°¸/Ò0IÐ0IÈdÔN_Ð0IØ'.¤~Ð#5�L�LØ˜~Ò-Ð-°$´(·,²,Ð?UÑ2VÔ2VÐ-ð ×-Ò-Ñ/Ô/ð BØO\˜œ×+Ò+¨O¸RÑ@Ô@ÀÄÑLØ0[˜œ Ñ-Ø59´\˜œÐ!1Ñ2ð3Bð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð4 ð AØ—’˜mÐ-?Ð-?Ð@XÐ_mÐw~Ð-Ñ-Ô-ñ  Aô  Að  AØð Ø—’˜mÐ-?Ð-?Ð@^ÐekÐu|Ð-}Ñ-}Ô-}Ñ~Ô~Ð~Øð uÐ 5Ð 5°gÑ >Ô >ð uØ(,�Ô%Ø—’˜mÐ-?Ð-?Ð@RÐYaÐkrÐ-sÑ-sÔ-sÑtÔtÐtðC!	uð !	uð !	uñ !	uô !	uð !	uð !	uð !	uð !	uð !	uð !	uð !	uøøøð !	uð !	uð !	uð !	uð !	uð !	us6   ªJ²G	HÇ;JÈH	ÈJÈH	ÈBJÊJ!Ê$J!c                 ó‚  — | j                              ¦   «          | j        �| j                             ¦   «          t          5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   | j        �K| j        j        5  d| j        _        | j        j	        rd| j        _
        d d d ¦  «         d S # 1 swxY w Y   d S d S )NF)r3   r(   r4   Újoinr   rR   r'   rf   rH   ri   r    )r5   Úexcs     r   Ú__exit__zMediaToolPause.__exit__s   s?  € ØŒ�ŠÑÔÐØŒ<Ð#ØŒL×ÒÑÔÐÝð 	#ð 	#Ø× Ò Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#àŒ<Ð#Ø”Ô'ð 0ð 0Ø16�”Ô.ð ”<Ô/ð 0Ø*/�D”LÔ'ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0ð $Ð#s$   ÁA"Á"A&Á)A&Â %B2Â2B6Â9B6N)	Ú__name__Ú
__module__Ú__qualname__r6   r>   rK   rR   rB   rs   r[   r   r   r$   r$      su   € € € € € ðð ð ð:ð :ð :ðð ð ð@ð @ð @ð+uð +uð +uðZ0ð 0ð 0ð 0ð 0r   r$   )
Ú__doc__Úuuidr   Útimer1   Úshared.utils.process_locksr   r   r"   r$   r[   r   r   ú<module>r{      s¡   ðà OÐ OØ Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð à /Ð /Ð /Ð /Ð /Ð /ðð ð ðfð fð fð`0ð `0ð `0ð `0ð `0ñ `0ô `0ð `0ð `0ð `0r   