Commit 3bc7a14e authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Normalized opening a file and decoding its content.

`io.open` is required on Python 2.7. Just `open` would work on Python 3.
parent 95b8323a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ class TranslatableFile(object):
            work_file = orig_file
            is_templatized = file_ext in command.extensions
            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()
                content = templatize(src_data, orig_file[2:])
                work_file = os.path.join(self.dirpath, '%s.py' % self.file)
+2 −2
Original line number Diff line number Diff line
from __future__ import unicode_literals

import codecs
import io
import os
import re
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))
    for sql_file in sql_files:
        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))
    return output

+3 −2
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ Wrapper for loading templates from "templates" directories in INSTALLED_APPS
packages.
"""

import io
import os
import sys

@@ -56,8 +57,8 @@ class Loader(BaseLoader):
    def load_template_source(self, template_name, template_dirs=None):
        for filepath in self.get_template_sources(template_name, template_dirs):
            try:
                with open(filepath, 'rb') as fp:
                    return (fp.read().decode(settings.FILE_CHARSET), filepath)
                with io.open(filepath, encoding=settings.FILE_CHARSET) as fp:
                    return fp.read(), filepath
            except IOError:
                pass
        raise TemplateDoesNotExist(template_name)
+4 −2
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@
Wrapper for loading templates from the filesystem.
"""

import io

from django.conf import settings
from django.core.exceptions import SuspiciousFileOperation
from django.template.base import TemplateDoesNotExist
@@ -32,8 +34,8 @@ class Loader(BaseLoader):
        tried = []
        for filepath in self.get_template_sources(template_name, template_dirs):
            try:
                with open(filepath, 'rb') as fp:
                    return (fp.read().decode(settings.FILE_CHARSET), filepath)
                with io.open(filepath, encoding=settings.FILE_CHARSET) as fp:
                    return fp.read(), filepath
            except IOError:
                tried.append(filepath)
        if tried: