o
    h~                     @  s   d Z ddlmZ ddlmZ ddlmZ d6ddZi d	d
dddd
dddddddddddddddddddddd d!d d"d#d$d#d%d&d'd(d)d*d+d,d-d.	Zi Z	d7d8d2d3Z
d7d8d4d5Zd/S )9zBuilt-in transports.    )annotations)_detect_environment)symbol_by_namereturnbool | Nonec                  C  s2   t  dkrzddl} W dS  ty   Y dS w dS )z/Return true if :pypi:`librabbitmq` can be used.defaultr   NT)r   librabbitmqImportError)r    r
   U/var/www/Befach/backend/venv/lib/python3.10/site-packages/kombu/transport/__init__.pysupports_librabbitmq	   s   

r   amqpz kombu.transport.pyamqp:Transportamqpsz#kombu.transport.pyamqp:SSLTransportpyamqpr   z%kombu.transport.librabbitmq:Transportconfluentkafkaz(kombu.transport.confluentkafka:Transportkafkamemoryz kombu.transport.memory:Transportrediszkombu.transport.redis:TransportredissSQSzkombu.transport.SQS:Transportsqsmongodbz!kombu.transport.mongodb:Transport	zookeeperz#kombu.transport.zookeeper:Transport
sqlalchemyz$kombu.transport.sqlalchemy:TransportsqlaSLMQzkombu.transport.SLMQ.Transportslmqz$kombu.transport.filesystem:Transportzkombu.transport.qpid:Transportz'kombu.transport.redis:SentinelTransportz kombu.transport.consul:Transportzkombu.transport.etcd:Transportz,kombu.transport.azurestoragequeues:Transportz)kombu.transport.azureservicebus:Transportzkombu.transport.pyro:Transportz"kombu.transport.gcpubsub:Transport)	
filesystemqpidsentinelconsuletcdazurestoragequeuesazureservicebuspyrogcpubsubN	transport
str | Nonec                 C  s   t | trLzt|  } W n5 ty@   d| vr6d| vr;ddlm} || t}|r/td| |td|  Y t| S Y t| S w t| rH|  } t| S | S )zGet transport by name.

    Arguments:
    ---------
        transport (Union[str, type]): This can be either
            an actual transport class, or the fully qualified
            path to a transport class, or the alias of a transport.
    .:r   )fmatch_bestz(No such transport: {}.  Did you mean {}?zNo such transport: )	
isinstancestrTRANSPORT_ALIASESKeyErrorkombu.utils.textr*   formatcallabler   )r&   r*   altr
   r
   r   resolve_transport5   s.   
	

r3   c                 C  s   | t vr
t| t | < t |  S )zGet transport class by name.

    The transport string is the full path to a transport class, e.g.::

        "kombu.transport.pyamqp:Transport"

    If the name does not include `"."` (is not fully qualified),
    the alias table will be consulted.
    )_transport_cacher3   )r&   r
   r
   r   get_transport_clsQ   s   
r5   )r   r   )N)r&   r'   r   r'   )__doc__
__future__r   kombu.utils.compatr   kombu.utils.importsr   r   r-   r4   r3   r5   r
   r
   r
   r   <module>   sj    
	
