浏览代码

app.backends.by_url / app.backends.by_name

Ask Solem 8 年之前
父节点
当前提交
81b17881a1

+ 4 - 4
celery/app/backends.py

@@ -10,7 +10,7 @@ from celery._state import current_app
 from celery.five import reraise
 from celery.five import reraise
 from celery.utils.imports import load_extension_class_names, symbol_by_name
 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_BACKEND = """
 Unknown result backend: {0!r}.  Did you spell that correctly? ({1!r})
 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'):
                     extension_namespace='celery.result_backends'):
     """Get backend class by name/alias."""
     """Get backend class by name/alias."""
     backend = backend or 'disabled'
     backend = backend or 'disabled'
@@ -54,7 +54,7 @@ def get_backend_cls(backend=None, loader=None,
     return cls
     return cls
 
 
 
 
-def get_backend_by_url(backend=None, loader=None):
+def by_url(backend=None, loader=None):
     """Get backend class by URL."""
     """Get backend class by URL."""
     url = None
     url = None
     if backend and '://' in backend:
     if backend and '://' in backend:
@@ -64,4 +64,4 @@ def get_backend_by_url(backend=None, loader=None):
             backend, url = url.split('+', 1)
             backend, url = url.split('+', 1)
         else:
         else:
             backend = scheme
             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 celery.utils.objects import FallbackContext, mro_lookup
 
 
 from .annotations import prepare as prepare_annotations
 from .annotations import prepare as prepare_annotations
-from .backends import get_backend_by_url
+from . import backends
 from .defaults import find_deprecated_settings
 from .defaults import find_deprecated_settings
 from .registry import TaskRegistry
 from .registry import TaskRegistry
 from .utils import (
 from .utils import (
@@ -850,7 +850,7 @@ class Celery(object):
         return bugreport(self)
         return bugreport(self)
 
 
     def _get_backend(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.backend_cls or self.conf.result_backend,
             self.loader)
             self.loader)
         return backend(app=self, url=url)
         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):
     def __init__(self, dburi=None, engine_options=None, url=None, **kwargs):
         # The `url` argument was added later and is used by
         # 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__(
         super(DatabaseBackend, self).__init__(
             expires_type=maybe_timedelta, url=url, **kwargs)
             expires_type=maybe_timedelta, url=url, **kwargs)
         conf = self.app.conf
         conf = self.app.conf

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

@@ -17,16 +17,16 @@ class test_backends:
         ('cache+memory://', CacheBackend),
         ('cache+memory://', CacheBackend),
     ])
     ])
     def test_get_backend_aliases(self, url, expect_cls, app):
     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)
         assert isinstance(backend(app=app, url=url), expect_cls)
 
 
     def test_unknown_backend(self, app):
     def test_unknown_backend(self, app):
         with pytest.raises(ImportError):
         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'):
     def test_backend_by_url(self, app, url='redis://localhost/1'):
         from celery.backends.redis import RedisBackend
         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 backend is RedisBackend
         assert url_ == url
         assert url_ == url
 
 
@@ -34,4 +34,4 @@ class test_backends:
         with patch('celery.app.backends.symbol_by_name') as sbn:
         with patch('celery.app.backends.symbol_by_name') as sbn:
             sbn.side_effect = ValueError()
             sbn.side_effect = ValueError()
             with pytest.raises(ImproperlyConfigured):
             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 case import MagicMock, Mock, patch, sentinel, skip
 
 
+from celery.app import backends
 from celery.backends import couchbase as module
 from celery.backends import couchbase as module
 from celery.backends.couchbase import CouchbaseBackend
 from celery.backends.couchbase import CouchbaseBackend
 from celery.exceptions import ImproperlyConfigured
 from celery.exceptions import ImproperlyConfigured
-from celery import backends
 
 
 try:
 try:
     import couchbase
     import couchbase
@@ -97,7 +97,7 @@ class test_CouchbaseBackend:
 
 
     def test_backend_by_url(self, url='couchbase://myhost/mycoolbucket'):
     def test_backend_by_url(self, url='couchbase://myhost/mycoolbucket'):
         from celery.backends.couchbase import CouchbaseBackend
         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 backend is CouchbaseBackend
         assert url_ == url
         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 case import MagicMock, Mock, sentinel, skip
 
 
+from celery.app import backends
 from celery.backends import couchdb as module
 from celery.backends import couchdb as module
 from celery.backends.couchdb import CouchBackend
 from celery.backends.couchdb import CouchBackend
 from celery.exceptions import ImproperlyConfigured
 from celery.exceptions import ImproperlyConfigured
-from celery import backends
 
 
 try:
 try:
     import pycouchdb
     import pycouchdb
@@ -72,7 +72,7 @@ class test_CouchBackend:
 
 
     def test_backend_by_url(self, url='couchdb://myhost/mycoolcontainer'):
     def test_backend_by_url(self, url='couchdb://myhost/mycoolcontainer'):
         from celery.backends.couchdb import CouchBackend
         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 backend is CouchBackend
         assert url_ == url
         assert url_ == url
 
 

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

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

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

@@ -88,9 +88,9 @@ class test_RiakBackend:
         assert self.backend.port == 1234
         assert self.backend.port == 1234
 
 
     def test_backend_by_url(self, url='riak://myhost/mycoolbucket'):
     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
         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 backend is RiakBackend
         assert url_ == url
         assert url_ == url