o
    fG                  
   @  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,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
   K/var/www/html/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:Transport)
filesystem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_transport4   s.   
	

r2   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_cacher2   )r%   r
   r
   r   get_transport_clsP   s   
r4   )r   r   )N)r%   r&   r   r&   )__doc__
__future__r   kombu.utils.compatr   kombu.utils.importsr   r   r,   r3   r2   r4   r
   r
   r
   r   <module>   sh    
	
