Normalized opening a file and decoding its content.
`io.open` is required on Python 2.7. Just `open` would work on Python 3.
This commit is contained in:
parent
95b8323ac2
commit
3bc7a14ea5
|
@ -90,7 +90,7 @@ class TranslatableFile(object):
|
||||||
work_file = orig_file
|
work_file = orig_file
|
||||||
is_templatized = file_ext in command.extensions
|
is_templatized = file_ext in command.extensions
|
||||||
if is_templatized:
|
if is_templatized:
|
||||||
with io.open(orig_file, 'r', encoding=settings.FILE_CHARSET) as fp:
|
with io.open(orig_file, encoding=settings.FILE_CHARSET) as fp:
|
||||||
src_data = fp.read()
|
src_data = fp.read()
|
||||||
content = templatize(src_data, orig_file[2:])
|
content = templatize(src_data, orig_file[2:])
|
||||||
work_file = os.path.join(self.dirpath, '%s.py' % self.file)
|
work_file = os.path.join(self.dirpath, '%s.py' % self.file)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import codecs
|
import io
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import warnings
|
import warnings
|
||||||
|
@ -234,7 +234,7 @@ def custom_sql_for_model(model, style, connection):
|
||||||
sql_files.append(os.path.join(app_dir, "%s.sql" % opts.model_name))
|
sql_files.append(os.path.join(app_dir, "%s.sql" % opts.model_name))
|
||||||
for sql_file in sql_files:
|
for sql_file in sql_files:
|
||||||
if os.path.exists(sql_file):
|
if os.path.exists(sql_file):
|
||||||
with codecs.open(sql_file, 'r', encoding=settings.FILE_CHARSET) as fp:
|
with io.open(sql_file, encoding=settings.FILE_CHARSET) as fp:
|
||||||
output.extend(connection.ops.prepare_sql_script(fp.read(), _allow_fallback=True))
|
output.extend(connection.ops.prepare_sql_script(fp.read(), _allow_fallback=True))
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ Wrapper for loading templates from "templates" directories in INSTALLED_APPS
|
||||||
packages.
|
packages.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import io
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@ -56,8 +57,8 @@ class Loader(BaseLoader):
|
||||||
def load_template_source(self, template_name, template_dirs=None):
|
def load_template_source(self, template_name, template_dirs=None):
|
||||||
for filepath in self.get_template_sources(template_name, template_dirs):
|
for filepath in self.get_template_sources(template_name, template_dirs):
|
||||||
try:
|
try:
|
||||||
with open(filepath, 'rb') as fp:
|
with io.open(filepath, encoding=settings.FILE_CHARSET) as fp:
|
||||||
return (fp.read().decode(settings.FILE_CHARSET), filepath)
|
return fp.read(), filepath
|
||||||
except IOError:
|
except IOError:
|
||||||
pass
|
pass
|
||||||
raise TemplateDoesNotExist(template_name)
|
raise TemplateDoesNotExist(template_name)
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
Wrapper for loading templates from the filesystem.
|
Wrapper for loading templates from the filesystem.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import io
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.exceptions import SuspiciousFileOperation
|
from django.core.exceptions import SuspiciousFileOperation
|
||||||
from django.template.base import TemplateDoesNotExist
|
from django.template.base import TemplateDoesNotExist
|
||||||
|
@ -32,8 +34,8 @@ class Loader(BaseLoader):
|
||||||
tried = []
|
tried = []
|
||||||
for filepath in self.get_template_sources(template_name, template_dirs):
|
for filepath in self.get_template_sources(template_name, template_dirs):
|
||||||
try:
|
try:
|
||||||
with open(filepath, 'rb') as fp:
|
with io.open(filepath, encoding=settings.FILE_CHARSET) as fp:
|
||||||
return (fp.read().decode(settings.FILE_CHARSET), filepath)
|
return fp.read(), filepath
|
||||||
except IOError:
|
except IOError:
|
||||||
tried.append(filepath)
|
tried.append(filepath)
|
||||||
if tried:
|
if tried:
|
||||||
|
|
Loading…
Reference in New Issue