ó
    Ð]jš  ã                   óœ   • S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJrJ	r
JrJr  S SKJr  SSKJr  / SQr " S S	\
5      r	 " S
 S\5      rg)é    N)Úutil)ÚFullÚQueueÚSimpleQueueÚ	_sentinel)Úassert_spawningé   )Údumps)r   r   r   c                   óT   ^ • \ rS rSrS	U 4S jjrS rS rS r\S 5       r	S r
SrU =r$ )
r   é   c                 ó,   >• [         TU ]  XS9  X l        g )N)ÚmaxsizeÚctx©ÚsuperÚ__init__Ú	_reducers)Úselfr   Úreducersr   Ú	__class__s       €Úa/home/mande/repo/quber/.venv/lib/python3.13/site-packages/joblib/externals/loky/backend/queues.pyr   ÚQueue.__init__   s   ø€ Ü‰Ñ ÐÑ2Ø!�ó    c           	      óâ   • [        U 5        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  4	$ ©N)
r   Ú_ignore_epipeÚ_maxsizeÚ_readerÚ_writerr   Ú_rlockÚ_wlockÚ_semÚ_opid©r   s    r   Ú__getstate__ÚQueue.__getstate__$   sU   € Ü˜Ôà×ÑØ�M‰MØ�L‰LØ�L‰LØ�N‰NØ�K‰KØ�K‰KØ�I‰IØ�J‰Jð

ð 
	
r   c           
      óà   • Uu	  U l         U l        U l        U l        U l        U l        U l        U l        U l        [        R                  S:¼  a  U R                  5         g U R                  5         g )N)é   é	   )r   r   r   r   r   r    r!   r"   r#   ÚsysÚversion_infoÚ_resetÚ_after_fork©r   Ústates     r   Ú__setstate__ÚQueue.__setstate__2   s]   € ð ñ
	
ØÔØŒMØŒLØŒLØŒNØŒKØŒKØŒIØŒJä×Ñ˜vÓ%Ø�K‰K�Mà×ÑÕr   c                 óØ  • [         R                  " S5        U R                  R                  5         [        R
                  " [        R                  U R                  U R                  U R                  U R                  U R                  R                  U R                  U R                  U R                  U R                   4	SS9U l        SU R"                  l        [         R                  " S5        U R"                  R'                  5         [         R                  " S5        U R(                  [*        R,                  " 5       :H  nU R.                  (       dZ  U(       dS  [         R0                  " U R"                  [        R2                  [4        R6                  " U R"                  5      /SS9U l        [         R0                  " U [        R:                  U R                  U R                  /S	S9U l        g )
NzQueue._start_thread()ÚQueueFeederThread)ÚtargetÚargsÚnameTzdoing self._thread.start()z... done self._thread.start()éûÿÿÿ)Úexitpriorityé
   )r   ÚdebugÚ_bufferÚclearÚ	threadingÚThreadr   Ú_feedÚ	_notemptyÚ_send_bytesr!   r   Úcloser   r   Ú_on_queue_feeder_errorr"   Ú_threadÚdaemonÚstartr#   ÚosÚgetpidÚ_joincancelledÚFinalizeÚ_finalize_joinÚweakrefÚrefÚ_jointhreadÚ_finalize_closeÚ_close)r   Úcreated_by_this_processs     r   Ú_start_threadÚQueue._start_threadD   sR  € Ü�
Š
Ð*Ô+ð 	�‰×ÑÔÜ ×'Ò'Ü—;‘;à—‘Ø—‘Ø× Ñ Ø—‘Ø—‘×"Ñ"Ø—‘Ø×"Ñ"Ø×+Ñ+Ø—	‘	ð
ð %ñ
ˆŒð #ˆ�‰Ôä�
Š
Ð/Ô0Ø�‰×ÑÔÜ�
Š
Ð2Ô3ð #'§*¡*´·	²	³Ñ";ÐØ×"×"Ö+BÜ#Ÿ}š}Ø—‘Ü×$Ñ$Ü—’˜TŸ\™\Ó*Ð+Øñ	 ˆDÔô —m’mØÜ×!Ñ!Ø�\‰\˜4Ÿ>™>Ð*Øñ	
ˆ�r   c	                 ól  • [         R                  " S5        UR                  n	UR                  n
UR                  nU R
                  n[        n[        R                  S:w  a  UR                  nUR                  nOS n  U	" 5          U (       d  U" 5         U
" 5           U" 5       nUUL a  [         R                  " S5        U" 5         g [        UUS9nUc	  U" U5        OU" 5          U" U5        W" 5         AAM[  ! U
" 5         f = f! W" 5         f = f! [         a     O—f = f! [         a†  nU(       a$  [        USS5      [        R                  :X  a   S nAg [         R                  " 5       (       a  [         R                   " SU 35         S nAg UR                  5         U" UW5         S nAOS nAff = fGM9  )Nz$starting thread to feed data to pipeÚwin32z%feeder thread got sentinel -- exiting©r   Úerrnor   zerror in queue thread: )r   r:   ÚacquireÚreleaseÚwaitÚpopleftr   r*   Úplatformr
   Ú
IndexErrorÚBaseExceptionÚgetattrrW   ÚEPIPEÚ
is_exitingÚinfo)ÚbufferÚnotemptyÚ
send_bytesÚ	writelockrB   r   Úignore_epipeÚonerrorÚ	queue_semÚnacquireÚnreleaseÚnwaitÚbpopleftÚsentinelÚwacquireÚwreleaseÚobjÚobj_Úes                      r   r?   ÚQueue._feedv   s{  € ô 	�
Š
Ð9Ô:Ø×#Ñ#ˆØ×#Ñ#ˆØ—‘ˆØ—>‘>ˆÜˆÜ�<‰<˜7Ó"Ø ×(Ñ(ˆHØ ×(Ñ(‰HàˆHàð)$Ù”
ðÞ!Ùœá”JðØÙ&›j˜Ø (š?Ü ŸJšJÐ'NÔOÙ!œGØ"ô  % S°8Ñ<˜Ø#Ñ+Ù& tÕ,á$œJð+Ù *¨4Ô 0á (¤
à ñ% øñ •Jûñ$ !)¥
ûô "ó Ùðûä ó $Þ¤G¨A¨w¸Ó$:¼e¿k¹kÓ$IÜô
 —?’?×$Ñ$Ü—I’IÐ 7¸°sÐ;Ô<Üà×%Ñ%Ô'Ù˜A˜s—O‘Oûð$úò= sx   Á>D  ÂC8 ÂD  Â*D ÃD Ã%D Ã-D Ã8	DÄD  Ä	DÄD Ä
DÄD  ÄDÄD  Ä 
F0Ä*&F+Å3F+ÆF+Æ+F0c                 ó,   • SSK nUR                  5         g)z€
Private API hook called when feeding data in the background thread
raises an exception.  For overriding by concurrent.futures.
r   N)Ú	tracebackÚ	print_exc)r   rs   rq   rv   s       r   rC   ÚQueue._on_queue_feeder_errorº   s   € ó
 	à×ÑÕr   )rP   r   rN   r   r#   r   r   r    r"   rD   r!   r   )r   NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r%   r0   rR   Ústaticmethodr?   rC   Ú__static_attributes__Ú__classcell__©r   s   @r   r   r      s9   ø† ÷"ò

òò$/
ðd ñA$ó ðA$÷Fð r   r   c                   óD   ^ • \ rS rSrSU 4S jjrS rS rS rS rSr	U =r
$ )	r   éÄ   c                 ó,   >• [         TU ]  US9  Xl        g )N)r   r   )r   r   r   r   s      €r   r   ÚSimpleQueue.__init__Å   s   ø€ Ü‰Ñ˜SÐÑ!ð "�r   c                 ól   • U R                   R                  5         U R                  R                  5         g r   )r   rB   r   r$   s    r   rB   ÚSimpleQueue.closeË   s"   € Ø�‰×ÑÔØ�‰×ÑÕr   c                 óŠ   • [        U 5        U R                  U R                  U R                  U R                  U R
                  4$ r   )r   r   r   r   r    r!   r$   s    r   r%   ÚSimpleQueue.__getstate__Ð   s7   € Ü˜Ôà�L‰LØ�L‰LØ�N‰NØ�K‰KØ�K‰Kð
ð 	
r   c                 óF   • Uu  U l         U l        U l        U l        U l        g r   )r   r   r   r    r!   r.   s     r   r0   ÚSimpleQueue.__setstate__Ú   s%   € ð ñ	
ØŒLØŒLØŒNØŒKØ�Kr   c                 óþ   • [        XR                  S9nU R                  c  U R                  R	                  U5        g U R                     U R                  R	                  U5        S S S 5        g ! , (       d  f       g = f)NrV   )r
   r   r!   r   re   )r   rq   s     r   ÚputÚSimpleQueue.putä   sO   € ä�C§.¡.Ñ1ˆØ�;‰;Ñà�L‰L×#Ñ# CÕ(à—“Ø—‘×'Ñ'¨Ô,÷ —–ús   Á	A.Á.
A<)r   r   r    r!   r   )NN)ry   rz   r{   r|   r   rB   r%   r0   rŒ   r~   r   r€   s   @r   r   r   Ä   s!   ø† ÷"òò

ò÷-ð -r   r   )rG   r*   rW   rL   r=   Úmultiprocessingr   Úmultiprocessing.queuesr   r   Úmp_Queuer   Úmp_SimpleQueuer   Úmultiprocessing.contextr   Ú	reductionr
   Ú__all__© r   r   Ú<module>r–      sM   ðó 
Û 
Û Û Û Ý  ÷ó õ 4å ò +€ôcˆHô côL(-�.õ (-r   