Ë
    UV.jG  ã                  óR  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZmZ ddlmZ dd	lmZ 	 dd
lmZ ddlmZ ej.                  D � ci c]  } | dvsŒ e| «      d“Œ c} Z G d„ dej4                  «      Z G d„ dej6                  «      Zy# e$ r dxZZY Œ\w xY wc c} w )a+  SoftLayer Message Queue transport module for kombu.

Features
========
* Type: Virtual
* Supports Direct: Yes
* Supports Topic: Yes
* Supports Fanout: No
* Supports Priority: No
* Supports TTL: No

Connection String
=================
 *Unreviewed*

Transport Options
=================
 *Unreviewed*
é    )ÚannotationsN)ÚEmpty)Úbytes_to_strÚsafe_str)ÚdumpsÚloads)Úcached_propertyé   )Úvirtual)Ú
get_client)ÚResponseErrorÚ_é_   c                  óæ   ‡ — e Zd ZdZdZdZdZi Z e«       Z	ˆ fd„Z
ˆ fd„Zˆ fd„Zefd„Zd	„ Zˆ fd
„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zˆ xZS )ÚChannelzSLMQ Channel.i  zkombu%(vhost)sNc                ó¦   •— t         €t        d«      ‚t        ‰| �  |i |¤Ž | j                  j                  «       }|D ]  }|| j                  |<   Œ y )Nz7SLMQ transport requires the softlayer_messaging library)r   ÚImportErrorÚsuperÚ__init__ÚslmqÚqueuesÚ_queue_cache)ÚselfÚargsÚkwargsr   ÚqueueÚ	__class__s        €úVC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\kombu/transport/SLMQ.pyr   zChannel.__init__7   sY   ø€ ÜÐÜØIóð ô 	‰Ñ˜$Ð) &Ò)Ø—‘×!Ñ!Ó#ˆÛˆEØ',ˆD×Ñ˜eÒ$ñ ó    c                óf   •— |r| j                   j                  |«       t        ‰| �  ||g|¢­i |¤ŽS ©N)Ú_noack_queuesÚaddr   Úbasic_consume)r   r   Úno_ackr   r   r   s        €r   r$   zChannel.basic_consumeA   s@   ø€ ÙØ×Ñ×"Ñ" 5Ô)Ü‰wÑ$ U¨Fð 6Ø&*ò6Ø.4ñ6ð 	6r   c                ó’   •— || j                   v r*| j                  |   }| j                  j                  |«       t        ‰| �  |«      S r!   )Ú
_consumersÚ_tag_to_queuer"   Údiscardr   Úbasic_cancel)r   Úconsumer_tagr   r   s      €r   r*   zChannel.basic_cancelG   sC   ø€ Ø˜4Ÿ?™?Ñ*Ø×&Ñ& |Ñ4ˆEØ×Ñ×&Ñ& uÔ-Ü‰wÑ# LÓ1Ð1r   c                óH   — t        t        |«      «      j                  |«      S )z4Format AMQP queue name into a valid SLQS queue name.)Ústrr   Ú	translate)r   ÚnameÚtables      r   Úentity_namezChannel.entity_nameM   s   € ä”8˜D“>Ó"×,Ñ,¨UÓ3Ð3r   c                óD  — | j                  | j                  |z   «      }	 | j                  |   S # t        $ rg 	 | j                  j                  || j                  ¬«       n# t        $ r Y nw xY w| j                  j                  |«      x}| j                  |<   |cY S w xY w)zEnsure a queue exists in SLQS.)Úvisibility_timeout)	r1   Úqueue_name_prefixr   ÚKeyErrorr   Úcreate_queuer3   r   r   )r   r   r   Úqs       r   Ú
_new_queuezChannel._new_queueQ   s£   € à× Ñ  ×!7Ñ!7¸%Ñ!?Ó@ˆð		Ø×$Ñ$ UÑ+Ð+øÜò 	ðØ—	‘	×&Ñ&Ø¨d×.EÑ.Eð 'õ Gøä ò Ùðúà+/¯9©9¯?©?¸5Ó+AÐAˆA�×!Ñ! %Ñ(ØŠHð	ús2    / ¯	B¹'A!Á BÁ!	A-Á*BÁ,A-Á-/BÂBc                óÔ   •— | j                  |«      }| j                  j                  |d«       | j                  j	                  |«      j                  d¬«       t        ‰| �  |«       y)zDelete queue by name.NT)Úforce)r1   r   Úpopr   r   Údeleter   Ú_delete)r   r   r   r   Ú
queue_namer   s        €r   r=   zChannel._delete_   sS   ø€ à×%Ñ% eÓ,ˆ
Ø×Ñ×Ñ˜j¨$Ô/Ø�	‰	�‰˜
Ó#×*Ñ*°Ð*Ô6Ü‰‰˜
Õ#r   c                óZ   — | j                  |«      }|j                  t        |«      «       y)zPut message onto queue.N)r8   Úpushr   )r   r   Úmessager   r7   s        r   Ú_putzChannel._putf   s    € à�O‰O˜EÓ"ˆØ	�‰Œu�W‹~Õr   c                óX  — | j                  |«      }|j                  d«      }|d   rz|d   d   }t        t        |d   «      «      }|| j                  v r$|j                  |d   «      j                  «        |S |d   d   j                  |d   |j                  dœ«       |S t        «       ‚)	z/Try to retrieve a single message off ``queue``.r
   Úitemsr   ÚbodyÚidÚ
propertiesÚdelivery_info)Úslmq_message_idÚslmq_queue_name)
r8   r;   r   r   r"   rA   r<   Úupdater/   r   )r   r   r7   ÚrsÚmÚpayloads         r   Ú_getzChannel._getk   s¬   € à�O‰O˜EÓ"ˆØ�U‰U�1‹XˆØˆgŠ;Ø�7‘˜A‘ˆAÜœL¨¨6©Ó3Ó4ˆGØ˜×*Ñ*Ñ*Ø—	‘	˜!˜D™'Ó"×)Ñ)Ô+ð ˆNð ˜Ñ% oÑ6×=Ñ=Ø'(¨¡wÀ1Ç6Á6ñ?Kô LàˆNÜ‹gˆr   c                óÂ   •— | j                   j                  |«      j                  }	 |d   }| j                  ||d   «       t
        ‰| �  |«       y # t        $ r Y Œw xY w)NrJ   rI   )ÚqosÚgetrH   Údelete_messager5   r   Ú	basic_ack)r   Údelivery_tagrH   r   r   s       €r   rT   zChannel.basic_ackz   se   ø€ ØŸ™Ÿ™ \Ó2×@Ñ@ˆð	IØ!Ð"3Ñ4ˆEð ×Ñ  }Ð5FÑ'GÔHÜ‰Ñ˜,Õ'øô	 ò 	Ùð	ús   ¨A Á	AÁAc                óF   — | j                  |«      j                  «       d   S )z)Return the number of messages in a queue.Úmessage_count)r8   Údetail)r   r   s     r   Ú_sizezChannel._size„   s   € à�‰˜uÓ%×,Ñ,Ó.¨Ñ?Ð?r   c                óÎ   — | j                  |«      }d}|j                  d«      }|d   r;|d   D ]  }| j                  ||d   «       |dz  }Œ |j                  d«      }|d   rŒ;|S )z'Delete all current messages in a queue.r   é
   rD   rF   r
   )r8   r;   rS   )r   r   r7   ÚnÚresultsrM   s         r   Ú_purgezChannel._purgeˆ   sv   € à�O‰O˜EÓ"ˆØˆØ—%‘%˜“)ˆØ�gÒØ˜WÔ%�Ø×#Ñ# E¨1¨T©7Ô3Ø�Q‘‘ð &ð —e‘e˜B“iˆGð	 �gÓð
 ˆr   c                ó”   — | j                   j                  | j                  |«      «      }|j                  |«      j	                  «       S r!   )r   r   r1   rA   r<   )r   r   Ú
message_idr7   s       r   rS   zChannel.delete_message”   s7   € Ø�I‰I�O‰O˜D×,Ñ,¨UÓ3Ó4ˆØ�y‰y˜Ó$×+Ñ+Ó-Ð-r   c                ó  — | j                   �€p| j                  }t        j                  j	                  d|j
                  «      }t        j                  j	                  d|j                  «      }t        j                  j	                  d|j                  «      }t        j                  j	                  d|j                  «      }t        j                  j	                  d|j                  «      }t        t        j                  j	                  d| j                  j	                  d«      «      xs d«      }d	j                  |rd
nd||rd|› �nd«      }t        ||¬«      | _         | j                   j                  ||«       | j                   S )NÚSLMQ_ACCOUNTÚSL_USERNAMEÚ
SL_API_KEYÚ	SLMQ_HOSTÚ	SLMQ_PORTÚSLMQ_SECUREÚsecureTz	{}://{}{}ÚhttpsÚhttpÚ:Ú )Úendpoint)Ú_slmqÚconninfoÚosÚenvironrR   Úvirtual_hostÚuseridÚpasswordÚhostnameÚportÚboolÚtransport_optionsÚformatr   Úauthenticate)	r   ro   ÚaccountÚuserÚapi_keyÚhostrv   rh   rm   s	            r   r   zChannel.slmq˜   s"  € à�:‰:ÑØ—}‘}ˆHÜ—j‘j—n‘n ^°X×5JÑ5JÓKˆGÜ—:‘:—>‘> -°·±ÓAˆDÜ—j‘j—n‘n \°8×3DÑ3DÓEˆGÜ—:‘:—>‘> +¨x×/@Ñ/@ÓAˆDÜ—:‘:—>‘> +¨x¯}©}Ó=ˆDÜœ"Ÿ*™*Ÿ.™.Ø˜t×5Ñ5×9Ñ9¸(ÓCóEò MØHLóˆFð #×)Ñ)Ù!‘ v¨tÙ"�!�D�6‘
¨óˆHô
 $ G°hÔ?ˆDŒJØ�J‰J×#Ñ# D¨'Ô2Ø�z‰zÐr   c                ó.   — | j                   j                  S r!   )Ú
connectionÚclient©r   s    r   ro   zChannel.conninfo­   s   € à�‰×%Ñ%Ð%r   c                óB   — | j                   j                  j                  S r!   )r€   r�   rx   r‚   s    r   rx   zChannel.transport_options±   s   € à�‰×%Ñ%×7Ñ7Ð7r   c                óT   — | j                   j                  d«      xs | j                  S )Nr3   )rx   rR   Údefault_visibility_timeoutr‚   s    r   r3   zChannel.visibility_timeoutµ   s*   € à×&Ñ&×*Ñ*Ð+?Ó@ò 0Ø×/Ñ/ð	1r   c                ó:   — | j                   j                  dd«      S )Nr4   rl   )rx   rR   r‚   s    r   r4   zChannel.queue_name_prefixº   s   € à×%Ñ%×)Ñ)Ð*=¸rÓBÐBr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r…   Údomain_formatrn   r   Úsetr"   r   r$   r*   ÚCHARS_REPLACE_TABLEr1   r8   r=   rB   rO   rT   rY   r^   rS   Úpropertyr   ro   rx   r	   r3   r4   Ú__classcell__)r   s   @r   r   r   .   sÊ   ø„ Ùà!%ÐØ$€MØ€EØ€LÙ“E€Mô-ô6ô2ð ':ó 4òô$òò
ô(ò@ò
ò.ð ñó ðð( ñ&ó ð&ð ñ8ó ð8ð ñ1ó ð1ð ñCó ôCr   r   c                  óf   — e Zd ZdZeZdZdZej                  j                  e
ej                  fz   Z	y)Ú	TransportzSLMQ Transport.r
   N)r‡   rˆ   r‰   rŠ   r   Úpolling_intervalÚdefault_portr   r‘   Úconnection_errorsr   ÚsocketÚerror© r   r   r‘   r‘   ¿   s<   „ Ùà€GàÐØ€Là×Ñ×+Ñ+Ø˜6Ÿ<™<ð/
ñ 	
ñ r   r‘   )rŠ   Ú
__future__r   rp   r•   Ústringr   r   Úkombu.utils.encodingr   r   Úkombu.utils.jsonr   r   Úkombu.utils.objectsr	   rl   r   Úsoftlayer_messagingr   Úsoftlayer_messaging.errorsr   r   ÚpunctuationÚordr�   r   r‘   )Úcs   0r   Ú<module>r¢      sª   ðñõ( #ã 	Û Û Ý ç 7ß )Ý /å ð&Ý.Ý8ð !×,Ò,óÙ,�Q°¸²�CˆƒFˆD�LÐ,ñÐ ô
NCˆg�o‰oô NCôb�×!Ñ!õ øðu ò &Ø!%Ð%€J’ð&üòs   ¸B Á	B$ÁB$Â	B!Â B!