Ë
    šQj‡  ã                  óp  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZ dd
lmZ dZdgZg Z e«       Zej*                  j-                  d«      Zd„ Z G d„ de«      Z G d„ de«      Zd„ Z G d„ de«      Z e ee¬«      «      Z G d„ de«      Z e ee¬«      «      Zd„ Z d„ Z!dd„Z"d„ Z#y)zPublic resource pools.é    )ÚannotationsN)Úchainé   )ÚResource)ÚProducer)ÚEqualityDict)Úregister_after_fork)Úlazy)ÚProducerPoolÚ	PoolGroupÚregister_groupÚconnectionsÚ	producersÚ	get_limitÚ	set_limitÚreseté
   ÚKOMBU_DISABLE_LIMIT_PROTECTIONc                ó$   — | j                  «        y ©N)Úclear©Úgroups    úG/var/www/html/truck-me/venv/lib/python3.12/site-packages/kombu/pools.pyÚ_after_fork_cleanup_groupr      s   € Ø	‡K�K…Mó    c                  óX   ‡ — e Zd ZdZeZdZˆ fd„Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zˆ fd
„Zˆ xZS )r   z*Pool of :class:`kombu.Producer` instances.Tc                ó|   •— || _         |j                  dd «      xs | j                  | _        t        ‰| �  |i |¤Ž y )Nr   )r   Úpopr   ÚsuperÚ__init__)Úselfr   ÚargsÚkwargsÚ	__class__s       €r   r!   zProducerPool.__init__    s8   ø€ Ø&ˆÔØŸ
™
 :¨tÓ4ÒE¸¿¹ˆŒÜ‰Ñ˜$Ð) &Ó)r   c                ó:   — | j                   j                  d¬«      S )NT)Úblock)r   Úacquire©r"   s    r   Ú_acquire_connectionz ProducerPool._acquire_connection%   s   € Ø×Ñ×'Ñ'¨dÐ'Ó3Ð3r   c                ó‚   — | j                  «       }	 | j                  |«      S # t        $ r |j                  «        ‚ w xY wr   )r*   r   ÚBaseExceptionÚrelease)r"   Úconns     r   Úcreate_producerzProducerPool.create_producer(   s?   € Ø×'Ñ'Ó)ˆð	Ø—=‘= Ó&Ð&øÜò 	Ø�L‰LŒNØð	ús   ’# £>c                ó,   — t        | j                  «      S r   )r
   r/   r)   s    r   ÚnewzProducerPool.new0   s   € Ü�D×(Ñ(Ó)Ð)r   c                ó¤   — | j                   rDt        | j                   «      D ]+  }| j                  j                  | j	                  «       «       Œ- y y r   )ÚlimitÚrangeÚ	_resourceÚ
put_nowaitr1   )r"   Ú_s     r   ÚsetupzProducerPool.setup3   s>   € Ø�:Š:Ü˜4Ÿ:™:Ó&ò 6�Ø—‘×)Ñ)¨$¯(©(«*Õ5ñ6ð r   c                 ó   — y r   © )r"   Úresources     r   Úclose_resourcezProducerPool.close_resource8   s   € Ør   c                óÆ   — t        |«      r |«       }|j                  €$| j                  «       }	 |j                  |«       |S |S # t        $ r |j                  «        ‚ w xY wr   )ÚcallableÚ_channelr*   Úreviver,   r-   )r"   Úpr.   s      r   ÚpreparezProducerPool.prepare;   s`   € Ü�AŒ;Ù“ˆAØ�:‰:ÐØ×+Ñ+Ó-ˆDðØ—‘˜”ð ˆˆqˆøô !ò Ø—‘”Øðús   °A ÁA c                ó~   •— |j                   r|j                   j                  «        d |_        t        ‰| �  |«       y r   )Ú__connection__r-   Úchannelr    )r"   r;   r%   s     €r   r-   zProducerPool.releaseG   s2   ø€ Ø×"Ò"Ø×#Ñ#×+Ñ+Ô-ØˆÔÜ‰‰˜Õ!r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclose_after_forkr!   r*   r/   r1   r8   r<   rB   r-   Ú__classcell__)r%   s   @r   r   r      s>   ø„ Ù4à€HØÐô*ò
4òò*ò6ò
ò
÷"ð "r   r   c                  ó$   — e Zd ZdZdd„Zd„ Zd„ Zy)r   zCollection of resource pools.Nc                óh   — || _         || _        | j                  rt        �t        | t        «       y y y r   )r3   rJ   r	   r   )r"   r3   rJ   s      r   r!   zPoolGroup.__init__Q   s4   € ØˆŒ
Ø 0ˆÔØ× Ò Ô%8Ð%DÜ Ô&?Õ@ð &EÐ r   c                ó   — t        d«      ‚)Nz!PoolGroups must define ``create``)ÚNotImplementedError)r"   r;   r3   s      r   ÚcreatezPoolGroup.createW   s   € Ü!Ð"EÓFÐFr   c                óp   — | j                   }|t        u r
t        «       }| j                  ||«      x}| |<   |S r   )r3   Úuse_global_limitr   rP   )r"   r;   r3   Úks       r   Ú__missing__zPoolGroup.__missing__Z   s9   € Ø—
‘
ˆØÔ$Ñ$Ü“KˆEØ!Ÿ[™[¨°5Ó9Ð9ˆˆD�‰NØˆr   )NT)rF   rG   rH   rI   r!   rP   rT   r:   r   r   r   r   N   s   „ Ù'óAòGór   r   c                ó0   — t         j                  | «       | S )z*Register group (can be used as decorator).)Ú_groupsÚappendr   s    r   r   r   b   s   € ä‡N�N�5ÔØ€Lr   c                  ó   — e Zd ZdZd„ Zy)ÚConnectionszCollection of connection pools.c                ó&   — |j                  |¬«      S ©N©r3   )ÚPool©r"   Ú
connectionr3   s      r   rP   zConnections.createk   s   € Ø�‰ UˆÓ+Ð+r   N©rF   rG   rH   rI   rP   r:   r   r   rY   rY   h   s
   „ Ù)ó,r   rY   r\   c                  ó   — e Zd ZdZd„ Zy)Ú	ProducerszCollection of producer pools.c                ó*   — t        t        |   |¬«      S r[   )r   r   r^   s      r   rP   zProducers.createu   s   € ÜœK¨
Ñ3¸5ÔAÐAr   Nr`   r:   r   r   rb   rb   r   s   „ Ù'óBr   rb   c                 ó(   — t        d„ t        D «       Ž S )Nc              3  óV   K  — | ]!  }|r|j                  «       n
t        g «      –— Œ# y ­wr   )ÚvaluesÚiter)Ú.0Úgs     r   ú	<genexpr>z_all_pools.<locals>.<genexpr>}   s!   è ø€ ÒD°q¡!�A—H‘H”J¬¨b«Ó1ÑDùs   ‚'))r   rV   r:   r   r   Ú
_all_poolsrk   |   s   € ÜÑD¼GÔDÐEÐEr   c                 ó   — t         d   S )z"Get current connection pool limit.r   )Ú_limitr:   r   r   r   r   €   s   € ä�!‰9Ðr   c                óˆ   — | xs d} t         d   xs d}| |k7  r)| t         d<   t        «       D ]  }|j                  | «       Œ | S )zSet new connection pool limit.r   )rm   rk   Úresize)r3   ÚforceÚreset_afterÚignore_errorsÚglimitÚpools         r   r   r   …   sJ   € àŠJ�Q€EÜ�A‰YŠ^˜!€FØ�‚ØŒˆq‰	Ü“Lò 	ˆDØ�K‰K˜Õð	à€Lr   c                 ó˜   — t        «       D ]  }	 |j                  «        Œ t        D ]  }|j	                  «        Œ y# t        $ r Y Œ=w xY w)z*Reset all pools by closing open resources.N)rk   Úforce_close_allÚ	ExceptionrV   r   )r#   r$   rt   r   s       r   r   r   �   sR   € ä“ò ˆð	Ø× Ñ Õ"ðô
 ò ˆØ�‰�ñøô ò 	Ùð	ús   �=½	A	ÁA	)FFF)$rI   Ú
__future__r   ÚosÚ	itertoolsr   r_   r   Ú	messagingr   Úutils.collectionsr   Úutils.compatr	   Úutils.functionalr
   Ú__all__rm   rV   ÚobjectrR   ÚenvironÚgetÚdisable_limit_protectionr   r   r   r   rY   r   rb   r   rk   r   r   r   r:   r   r   ú<module>r„      sÆ   ðÙ å "ã 	Ý å  Ý Ý +Ý -Ý "ðJ€à
ˆ€Ø
€Ù“8Ð ØŸ:™:Ÿ>™>Ð*JÓKÐ òô1"�8ô 1"ôh�ô ò(ô,�)ô ,ñ ™[Ð/?Ô@ÓA€ôB�	ô Bñ ™9Ð+;Ô<Ó=€	òFòó
ór   