File: //usr/local/lib/python3.9/site-packages/kombu/transport/__pycache__/gcpubsub.cpython-39.pyc
a
X>h�k � @ s d Z ddlmZ ddlZddlZddlZddlZddlmZm Z m
Z
mZ ddlm
Z
ddlmZ ddlmZ ddlmZ dd lmZmZ dd
lmZmZ ddlmZ ddlmZ dd
lmZmZm Z ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl'm*Z+ ddl,m*Z- ddl.m*Z/ ddl0m1Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z> ddl?m@Z@ e6d�ZAeBejC�h d� ZDeEd�eEd�idd � eDD ��ZFG d!d"� d"�ZGG d#d$� d$�ZHejIG d%d&� d&��ZJG d'd(� d(e@jK�ZKG d)d*� d*e@jL�ZLdS )+ap GCP Pub/Sub transport module for kombu.
More information about GCP Pub/Sub:
https://cloud.google.com/pubsub
Features
========
* Type: Virtual
* Supports Direct: Yes
* Supports Topic: No
* Supports Fanout: Yes
* Supports Priority: No
* Supports TTL: No
Connection String
=================
Connection string has the following formats:
.. code-block::
gcpubsub://projects/project-name
Transport Options
=================
* ``queue_name_prefix``: (str) Prefix for queue names.
* ``ack_deadline_seconds``: (int) The maximum time after receiving a message
and acknowledging it before pub/sub redelivers the message.
* ``expiration_seconds``: (int) Subscriptions without any subscriber
activity or changes made to their properties are removed after this period.
Examples of subscriber activities include open connections,
active pulls, or successful pushes.
* ``wait_time_seconds``: (int) The maximum time to wait for new messages.
Defaults to 10.
* ``retry_timeout_seconds``: (int) The maximum time to wait before retrying.
* ``bulk_max_messages``: (int) The maximum number of messages to pull in bulk.
Defaults to 32.
� )�annotationsN)�FIRST_COMPLETED�Future�ThreadPoolExecutor�wait)�suppress)�getpid)�Empty)�Lock)� monotonic�sleep)�
NAMESPACE_OID�uuid3)�gethostname��timeout)�
AlreadyExists�DeadlineExceeded�PermissionDenied)�Retry)�
monitoring_v3)�query)�PublisherClient�SubscriberClient)�
exceptions)�
gapic_version)�TRANSIENT_DELIVERY_MODE)�
get_logger)�bytes_to_str�safe_str)�dumps�loads)�cached_property� )�virtualzkombu.transport.gcpubsub> �.�-�_r% r&