U
    .e
                     @   s   d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z	m
Z
 dZdZdd	d
d
ddddddddddddddddddZd!ddZd"dd ZdS )#zBackend selection.    N)current_app)ImproperlyConfiguredreraise)load_extension_class_namessymbol_by_name)by_nameby_urlzG
Unknown result backend: {0!r}.  Did you spell that correctly? ({1!r})
zcelery.backends.rpc.RPCBackendz"celery.backends.cache:CacheBackendz"celery.backends.redis:RedisBackendz%celery.backends.redis:SentinelBackendz$celery.backends.mongodb:MongoBackendz(celery.backends.database:DatabaseBackendz2celery.backends.elasticsearch:ElasticsearchBackendz*celery.backends.cassandra:CassandraBackendz*celery.backends.couchbase:CouchbaseBackendz$celery.backends.couchdb:CouchBackendz.celery.backends.cosmosdbsql:CosmosDBSQLBackendz celery.backends.riak:RiakBackendz,celery.backends.filesystem:FilesystemBackendz$celery.backends.base:DisabledBackendz$celery.backends.consul:ConsulBackendz(celery.backends.dynamodb:DynamoDBBackendz4celery.backends.azureblockblob:AzureBlockBlobBackendz(celery.backends.arangodb:ArangoDbBackendzcelery.backends.s3:S3Backend)ZrpccacheZredisZredisssentinelZmongodbdbZdatabaseZelasticsearchZ	cassandraZ	couchbaseZcouchdbZcosmosdbsqlZriakfiledisabledZconsulZdynamodbZazureblockblobZarangodbZs3celery.result_backendsc              
   C   s   | pd} |pt j}ttf|j}|t| zt| |}W nF tk
r } z(t	t
t
t | |t d  W 5 d}~X Y nX t|tjrt
t | d|S )z Get backend class by name/alias.r      Nz(is a Python module, not a backend class.)r   loaderdictBACKEND_ALIASESZoverride_backendsupdater   r   
ValueErrorr   r   UNKNOWN_BACKENDstripformatsysexc_info
isinstancetypes
ModuleType)backendr   Zextension_namespacealiasesclsexc r!   7/tmp/pip-unpacked-wheel-f4liivr4/celery/app/backends.pyr   (   s$    


 r   c                 C   sP   d}| rBd| krB| }| d\}}}d|kr>|dd\} }n|} t| ||fS )zGet backend class by URL.Nz://+   )	partitionsplitr   )r   r   urlscheme_r!   r!   r"   r   :   s    r   )NNr   )NN)__doc__r   r   Zcelery._stater   Zcelery.exceptionsr   r   Zcelery.utils.importsr   r   __all__r   r   r   r   r!   r!   r!   r"   <module>   sB     
