Browse Source

app.backends.by_url / app.backends.by_name

Ask Solem 8 years ago
parent
commit
81b17881a1

+ 4 - 4
celery/app/backends.py

@@ -10,7 +10,7 @@ from celery._state import current_app
 from celery.five import reraise
 from celery.utils.imports import load_extension_class_names, symbol_by_name
 
-__all__ = ['get_backend_cls', 'get_backend_by_url']
+__all__ = ['by_name', 'by_url']
 
 UNKNOWN_BACKEND = """
 Unknown result backend: {0!r}.  Did you spell that correctly? ({1!r})
@@ -35,7 +35,7 @@ BACKEND_ALIASES = {
 }
 
 
-def get_backend_cls(backend=None, loader=None,
+def by_name(backend=None, loader=None,
                     extension_namespace='celery.result_backends'):
     """Get backend class by name/alias."""
     backend = backend or 'disabled'
@@ -54,7 +54,7 @@ def get_backend_cls(backend=None, loader=None,
     return cls
 
 
-def get_backend_by_url(backend=None, loader=None):
+def by_url(backend=None, loader=None):
     """Get backend class by URL."""
     url = None
     if backend and '://' in backend:
@@ -64,4 +64,4 @@ def get_backend_by_url(backend=None, loader=None):
             backend, url = url.split('+', 1)
         else:
             backend = scheme
-    return get_backend_cls(backend, loader), url
+    return by_name(backend, loader), url

+ 2 - 2
celery/app/base.py

@@ -42,7 +42,7 @@ from celery.utils.log import get_logger
 from celery.utils.objects import FallbackContext, mro_lookup
 
 from .annotations import prepare as prepare_annotations
-from .backends import get_backend_by_url
+from . import backends
 from .defaults import find_deprecated_settings
 from .registry import TaskRegistry
 from .utils import (
@@ -850,7 +850,7 @@ class Celery(object):
         return bugreport(self)
 
     def _get_backend(self):
-        backend, url = get_backend_by_url(
+        backend, url = backends.by_url(
             self.backend_cls or self.conf.result_backend,
             self.loader)
         return backend(app=self, url=url)

+ 19 - 0
celery/backends/__init__.py

@@ -0,0 +1,19 @@
+"""Result Backends."""
+from __future__ import absolute_import, unicode_literals
+
+from celery.app import backends as _backends
+from celery.utils import deprecated
+
+@deprecated.Callable(
+    deprecation='4.0',
+    removal='5.0',
+    alternative='Please use celery.app.backends.by_url')
+def get_backend_cls(backend=None, loader=None, **kwargs):
+    return _backends.by_name(backend=backend, loader=loader, **kwargs)
+
+@deprecated.Callable(
+    deprecation='4.0',
+    removal='5.0',
+    alternative='Please use celery.app.backends.by_url')
+def get_backend_by_url(backend=None, loader=None):
+    return _backends.by_url(backend=backend, loader=loader)

+ 1 - 1
celery/backends/database/__init__.py

@@ -71,7 +71,7 @@ class DatabaseBackend(BaseBackend):
 
     def __init__(self, dburi=None, engine_options=None, url=None, **kwargs):
         # The `url` argument was added later and is used by
-        # the app to set backend by url (celery.backends.get_backend_by_url)
+        # the app to set backend by url (celery.app.backends.by_url)
         super(DatabaseBackend, self).__init__(
             expires_type=maybe_timedelta, url=url, **kwargs)
         conf = self.app.conf

+ 4 - 4
t/unit/app/test_backends.py

@@ -17,16 +17,16 @@ class test_backends:
         ('cache+memory://', CacheBackend),
     ])
     def test_get_backend_aliases(self, url, expect_cls, app):
-        backend, url = backends.get_backend_by_url(url, app.loader)
+        backend, url = backends.by_url(url)
         assert isinstance(backend(app=app, url=url), expect_cls)
 
     def test_unknown_backend(self, app):
         with pytest.raises(ImportError):
-            backends.get_backend_cls('fasodaopjeqijwqe', app.loader)
+            backends.by_name('fasodaopjeqijwqe')
 
     def test_backend_by_url(self, app, url='redis://localhost/1'):
         from celery.backends.redis import RedisBackend
-        backend, url_ = backends.get_backend_by_url(url, app.loader)
+        backend, url_ = backends.by_url(url)
         assert backend is RedisBackend
         assert url_ == url
 
@@ -34,4 +34,4 @@ class test_backends:
         with patch('celery.app.backends.symbol_by_name') as sbn:
             sbn.side_effect = ValueError()
             with pytest.raises(ImproperlyConfigured):
-                backends.get_backend_cls('xxx.xxx:foo', app.loader)
+                backends.by_name('xxx.xxx:foo')

+ 2 - 2
t/unit/backends/test_couchbase.py

@@ -7,10 +7,10 @@ from kombu.utils.encoding import str_t
 
 from case import MagicMock, Mock, patch, sentinel, skip
 
+from celery.app import backends
 from celery.backends import couchbase as module
 from celery.backends.couchbase import CouchbaseBackend
 from celery.exceptions import ImproperlyConfigured
-from celery import backends
 
 try:
     import couchbase
@@ -97,7 +97,7 @@ class test_CouchbaseBackend:
 
     def test_backend_by_url(self, url='couchbase://myhost/mycoolbucket'):
         from celery.backends.couchbase import CouchbaseBackend
-        backend, url_ = backends.get_backend_by_url(url, self.app.loader)
+        backend, url_ = backends.by_url(url, self.app.loader)
         assert backend is CouchbaseBackend
         assert url_ == url
 

+ 2 - 2
t/unit/backends/test_couchdb.py

@@ -4,10 +4,10 @@ import pytest
 
 from case import MagicMock, Mock, sentinel, skip
 
+from celery.app import backends
 from celery.backends import couchdb as module
 from celery.backends.couchdb import CouchBackend
 from celery.exceptions import ImproperlyConfigured
-from celery import backends
 
 try:
     import pycouchdb
@@ -72,7 +72,7 @@ class test_CouchBackend:
 
     def test_backend_by_url(self, url='couchdb://myhost/mycoolcontainer'):
         from celery.backends.couchdb import CouchBackend
-        backend, url_ = backends.get_backend_by_url(url, self.app.loader)
+        backend, url_ = backends.by_url(url)
         assert backend is CouchBackend
         assert url_ == url
 

+ 2 - 2
t/unit/backends/test_elasticsearch.py

@@ -4,7 +4,7 @@ import pytest
 
 from case import Mock, sentinel, skip
 
-from celery import backends
+from celery.app import backends
 from celery.backends import elasticsearch as module
 from celery.backends.elasticsearch import ElasticsearchBackend
 from celery.exceptions import ImproperlyConfigured
@@ -68,7 +68,7 @@ class test_ElasticsearchBackend:
         )
 
     def test_backend_by_url(self, url='elasticsearch://localhost:9200/index'):
-        backend, url_ = backends.get_backend_by_url(url, self.app.loader)
+        backend, url_ = backends.by_url(url)
 
         assert backend is ElasticsearchBackend
         assert url_ == url

+ 2 - 2
t/unit/backends/test_riak.py

@@ -88,9 +88,9 @@ class test_RiakBackend:
         assert self.backend.port == 1234
 
     def test_backend_by_url(self, url='riak://myhost/mycoolbucket'):
-        from celery import backends
+        from celery.app import backends
         from celery.backends.riak import RiakBackend
-        backend, url_ = backends.get_backend_by_url(url, self.app.loader)
+        backend, url_ = backends.by_url(url)
         assert backend is RiakBackend
         assert url_ == url