o
    Df                  	   @  s   d Z ddlmZ ddlmZ ddlmZ d5d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-Zi Z	d6d7d1d2Z
d6d7d3d4Zd.S )8z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
   Q/home/ubuntu/webapp/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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slmq
filesystemz$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:Transport)qpidsentinelconsuletcdazurestoragequeuesazureservicebuspyroN	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_transport3   s.   
	

r1   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_cacher1   )r$   r
   r
   r   get_transport_clsO   s   
r3   )r   r   )N)r$   r%   r   r%   )__doc__
__future__r   kombu.utils.compatr   kombu.utils.importsr   r   r+   r2   r1   r3   r
   r
   r
   r   <module>   sf    
	
