summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-11-16 22:08:17 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-11-16 22:18:33 +0100
commitfab26cf5e0aaffa99dd6d1378391ffd99c5ce9bc (patch)
tree9c5e498b71b1718a57bd3f2f4674d3af077808a5
parente87bee6f50d323a769d61e8f1ca685f45de24079 (diff)
Removed support for function-based template loaders.
They were deprecated in Django 1.2 but not all the supporting code was removed in Django 1.4. Since the remaining code was unlikely to be functional (pun intended) e.g. it would crash unless the loader function had an is_usable attribute, this commit completes the removal immediately instead of starting another deprecation path.
-rw-r--r--django/template/loaders/utils.py27
-rw-r--r--docs/internals/deprecation.txt2
-rw-r--r--docs/releases/1.8.txt7
3 files changed, 6 insertions, 30 deletions
diff --git a/django/template/loaders/utils.py b/django/template/loaders/utils.py
index fe7234ea1c..a49b3ecfde 100644
--- a/django/template/loaders/utils.py
+++ b/django/template/loaders/utils.py
@@ -4,7 +4,6 @@ from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.utils import lru_cache
from django.utils import six
-from django.utils.deprecation import RemovedInDjango20Warning
from django.utils.module_loading import import_string
@@ -28,34 +27,20 @@ def find_template_loader(loader):
loader, args = loader[0], loader[1:]
else:
args = []
- if isinstance(loader, six.string_types):
- TemplateLoader = import_string(loader)
-
- if hasattr(TemplateLoader, 'load_template_source'):
- func = TemplateLoader(*args)
- else:
- warnings.warn(
- "Function-based template loaders are deprecated. "
- "Please use class-based template loaders instead. "
- "Inherit django.template.loaders.base.Loader "
- "and provide a load_template_source() method.",
- RemovedInDjango20Warning, stacklevel=2)
- # Try loading module the old way - string is full path to callable
- if args:
- raise ImproperlyConfigured(
- "Error importing template source loader %s - can't pass "
- "arguments to function-based loader." % loader)
- func = TemplateLoader
+ if isinstance(loader, six.string_types):
+ loader_class = import_string(loader)
+ loader_instance = loader_class(*args)
- if not func.is_usable:
+ if not loader_instance.is_usable:
warnings.warn(
"Your TEMPLATE_LOADERS setting includes %r, but your Python "
"installation doesn't support that type of template loading. "
"Consider removing that line from TEMPLATE_LOADERS." % loader)
return None
else:
- return func
+ return loader_instance
+
else:
raise ImproperlyConfigured(
"Invalid value in TEMPLATE_LOADERS: %r" % loader)
diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt
index 7247e4a2aa..666ff1f492 100644
--- a/docs/internals/deprecation.txt
+++ b/docs/internals/deprecation.txt
@@ -85,8 +85,6 @@ details on these changes.
* The backwards compatibility alias ``django.template.loader.BaseLoader`` will
be removed.
-* Support for function-based template loaders will be removed.
-
.. _deprecation-removed-in-1.9:
1.9
diff --git a/docs/releases/1.8.txt b/docs/releases/1.8.txt
index d55ed1820d..73c0e7a040 100644
--- a/docs/releases/1.8.txt
+++ b/docs/releases/1.8.txt
@@ -1040,13 +1040,6 @@ class decorators. As a consequence, when overriding ``setUpClass()`` or
``django.template.loaders.base.Loader``. If you've written a custom template
loader that inherits ``BaseLoader``, you must inherit ``Loader`` instead.
-Function-based template loaders
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In addition to the documented class-based API for custom template loaders,
-Django still supported to some extent an earlier function-based API. This
-private API wasn't maintained or tested. Now it's formally deprecated.
-
``django.test.utils.TestTemplateLoader``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~