summaryrefslogtreecommitdiff
path: root/django/core/cache
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2020-12-07 12:34:09 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-12-07 17:44:16 +0100
commit148702e7258eafb27d5488b33a723c87d898e22b (patch)
tree8f98ccc7acc039f529ee5f4fafbd60873680cd56 /django/core/cache
parent85729545f11257b7790e098fb224637715263616 (diff)
Refs #21012 -- Removed unnecessary _create_cache() hook.
This removes unused (since d038c547b5ce585cbf9ef5bb7e5298f52e4a243b) workaround to load a cache backend with its dotted import path and moves remaining logic to the CacheHandler. Thanks Tim Graham for the review.
Diffstat (limited to 'django/core/cache')
-rw-r--r--django/core/cache/__init__.py37
1 files changed, 10 insertions, 27 deletions
diff --git a/django/core/cache/__init__.py b/django/core/cache/__init__.py
index ed72fe88e1..b4bb2086c5 100644
--- a/django/core/cache/__init__.py
+++ b/django/core/cache/__init__.py
@@ -29,31 +29,6 @@ __all__ = [
DEFAULT_CACHE_ALIAS = 'default'
-def _create_cache(backend, **kwargs):
- try:
- # Try to get the CACHES entry for the given backend name first
- try:
- conf = settings.CACHES[backend]
- except KeyError:
- try:
- # Trying to import the given backend, in case it's a dotted path
- import_string(backend)
- except ImportError as e:
- raise InvalidCacheBackendError("Could not find backend '%s': %s" % (
- backend, e))
- location = kwargs.pop('LOCATION', '')
- params = kwargs
- else:
- params = {**conf, **kwargs}
- backend = params.pop('BACKEND')
- location = params.pop('LOCATION', '')
- backend_cls = import_string(backend)
- except ImportError as e:
- raise InvalidCacheBackendError(
- "Could not find backend '%s': %s" % (backend, e))
- return backend_cls(location, params)
-
-
class CacheHandler:
"""
A Cache Handler to manage access to Cache instances.
@@ -75,8 +50,16 @@ class CacheHandler:
raise InvalidCacheBackendError(
"Could not find config for '%s' in settings.CACHES" % alias
)
-
- cache = _create_cache(alias)
+ params = settings.CACHES[alias].copy()
+ backend = params.pop('BACKEND')
+ location = params.pop('LOCATION', '')
+ try:
+ backend_cls = import_string(backend)
+ except ImportError as e:
+ raise InvalidCacheBackendError(
+ "Could not find backend '%s': %s" % (backend, e)
+ )
+ cache = backend_cls(location, params)
self._caches.caches[alias] = cache
return cache