File: //usr/local/lib/python3.9/site-packages/kombu/transport/__pycache__/redis.cpython-39.pyc
a
X>h� � @ s� d Z ddlmZ ddlZddlZddlZddlmZ ddlmZ ddl m
Z
ddlmZ ddl
mZ dd lmZ dd
lmZ ddlmZ ddlmZmZ dd
lmZ ddlmZ ddlmZ ddlmZmZm Z ddl!m"Z" ddl#m$Z$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- z ddl.Z.eed��ed�kZ/W n e0�yX dZ.dZ/Y n0 zddl.m1Z1 W n e0�y� dZ1Y n0 ed�Z2e2j3e2j4 Z5Z4dZ6dZ7dZ8g d�Z9edd �Z:d!d"� Z;d#d$� Z<G d%d&� d&e=�Z>e
d'd(� �Z?d)d*� Z@G d+d,� d,�ZAG d-d.� d.eAe.jB�ZCG d/d0� d0eAe.jDjE�ZFG d1d2� d2e.jDjG�ZHG d3d4� d4e-jI�ZIG d5d6� d6�ZJG d7d8� d8e-jK�ZKG d9d:� d:e-jL�ZLe1�r�G d;d<� d<e1jMe.jN�ZOG d=d>� d>eK�ZPG d?d@� d@eL�ZQdS )Aa� Redis transport module for Kombu.
Features
========
* Type: Virtual
* Supports Direct: Yes
* Supports Topic: Yes
* Supports Fanout: Yes
* Supports Priority: Yes
* Supports TTL: No
Connection String
=================
Connection string has the following format:
.. code-block::
redis://[USER:PASSWORD@]REDIS_ADDRESS[:PORT][/VIRTUALHOST]
rediss://[USER:PASSWORD@]REDIS_ADDRESS[:PORT][/VIRTUALHOST]
To use sentinel for dynamic Redis discovery,
the connection string has following format:
.. code-block::
sentinel://[USER:PASSWORD@]SENTINEL_ADDRESS[:PORT]
Transport Options
=================
* ``sep``
* ``ack_emulation``: (bool) If set to True transport will
simulate Acknowledge of AMQP protocol.
* ``unacked_key``
* ``unacked_index_key``
* ``unacked_mutex_key``
* ``unacked_mutex_expire``
* ``visibility_timeout``
* ``unacked_restore_limit``
* ``fanout_prefix``
* ``fanout_patterns``
* ``global_keyprefix``: (str) The global key prefix to be prepended to all keys
used by Kombu
* ``socket_timeout``
* ``socket_connect_timeout``
* ``socket_keepalive``
* ``socket_keepalive_options``
* ``queue_order_strategy``
* ``max_connections``
* ``health_check_interval``
* ``retry_on_timeout``
* ``priority_steps``
� )�annotationsN)�bisect)�
namedtuple)�contextmanager)�version)�Empty)�time)�Version)�promise)�InconsistencyError�VersionMismatch)�
get_logger)�register_after_fork)�bytes_to_str)�ERR�READ�poll)�accepts_argument)�dumps�loads)�cached_property)�
cycle_by_name)�
_parse_url� )�virtual�redisz5.3.0)�sentinelzkombu.transport.redisi� � )r � � � �error_classes_t)�connection_errors�channel_errorsc
C sb ddl m} t| d�r| j}n| j}ttjjt t
jtt
| j| j| j| jf tjj|| j| jf �S )z$Return tuple of redis error classes.r ��
exceptions�InvalidData)r r% �hasattrr&