File: //usr/local/lib/python3.9/site-packages/kombu/transport/__pycache__/mongodb.cpython-39.pyc
a
X>h�= � @ s� d Z ddlmZ ddlZddlmZ ddlZddlmZmZm Z ddl
mZ ddlm
Z
ddlmZ dd lmZ dd
lmZmZ ddlmZ ddlmZ d
dlmZ d
dlmZ dZdZG dd� d�ZG dd� dej �Z G dd� dej!�Z!dS )a MongoDB transport module for kombu.
Features
========
* Type: Virtual
* Supports Direct: Yes
* Supports Topic: Yes
* Supports Fanout: Yes
* Supports Priority: Yes
* Supports TTL: Yes
Connection String
=================
*Unreviewed*
Transport Options
=================
* ``connect_timeout``,
* ``ssl``,
* ``ttl``,
* ``capped_queue_size``,
* ``default_hostname``,
* ``default_port``,
* ``default_database``,
* ``messages_collection``,
* ``routing_collection``,
* ``broadcast_collection``,
* ``queues_collection``,
* ``calc_queue_size``,
� )�annotationsN)�Empty)�MongoClient�errors�
uri_parser)�
CursorType)�VersionMismatch)�_detect_environment)�bytes_to_str)�dumps�loads)�cached_property)�maybe_sanitize_url� )�virtual��to_rabbitmq_queue_argumentsz3Kombu requires MongoDB version 1.3+ (server is {0})zKKombu requires MongoDB version 2.2+ (server is {0}) for TTL indexes supportc @ sF e Zd ZdZdd� Zdd� Zdd� Zdd d
�Zdd� Zd
d� Z e Z
dS )�BroadcastCursorzCursor for broadcast queues.c C s || _ d| _| jdd� d S )Nr F)�rewind)�_cursor�_offset�purge)�self�cursor� r �A/usr/local/lib/python3.9/site-packages/kombu/transport/mongodb.py�__init__C s zBroadcastCursor.__init__c C s | j j�i �| j S �N)r �
collection�count_documentsr �r r r r �get_sizeH s zBroadcastCursor.get_sizec C s | j �� d S r )r �closer r r r r"