From bad6280c4e3f75f3ccd27f8fd85a4043bb296128 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sun, 15 Feb 2015 17:37:55 -0500 Subject: [PATCH] Refs #24324 -- Fixed get_app_template_dirs() UnicodeDecodeError on Python 2. The function implemented most of upath(), but skipped the check for strings that are already unicode. --- django/template/utils.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/django/template/utils.py b/django/template/utils.py index 8bfa9d4f0e..514df91a0c 100644 --- a/django/template/utils.py +++ b/django/template/utils.py @@ -1,12 +1,12 @@ import os -import sys import warnings from collections import Counter, OrderedDict from django.apps import apps from django.conf import settings from django.core.exceptions import ImproperlyConfigured -from django.utils import lru_cache, six +from django.utils import lru_cache +from django.utils._os import upath from django.utils.deprecation import RemovedInDjango20Warning from django.utils.functional import cached_property from django.utils.module_loading import import_string @@ -116,16 +116,12 @@ def get_app_template_dirs(dirname): dirname is the name of the subdirectory containing templates inside installed applications. """ - if six.PY2: - fs_encoding = sys.getfilesystemencoding() or sys.getdefaultencoding() template_dirs = [] for app_config in apps.get_app_configs(): if not app_config.path: continue template_dir = os.path.join(app_config.path, dirname) if os.path.isdir(template_dir): - if six.PY2: - template_dir = template_dir.decode(fs_encoding) - template_dirs.append(template_dir) + template_dirs.append(upath(template_dir)) # Immutable return value because it will be cached and shared by callers. return tuple(template_dirs)