diff options
author | Tim Graham <timograham@gmail.com> | 2015-01-28 07:35:27 -0500 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2015-02-06 08:16:28 -0500 |
commit | 0ed7d155635da9f79d4dd67e4889087d3673c6da (patch) | |
tree | cf5c59b563f01774f32e20b3af8cb24a387fdc4d /django | |
parent | 388d986b8a6bb1363dab9f53ea435dff4dfe92cb (diff) | |
download | django-0ed7d155635da9f79d4dd67e4889087d3673c6da.tar.gz |
Sorted imports with isort; refs #23860.
Diffstat (limited to 'django')
418 files changed, 1325 insertions, 1202 deletions
diff --git a/django/apps/config.py b/django/apps/config.py index fd0e2fe78c..76b3014d9d 100644 --- a/django/apps/config.py +++ b/django/apps/config.py @@ -1,10 +1,9 @@ -from importlib import import_module import os +from importlib import import_module from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured -from django.utils.module_loading import module_has_submodule from django.utils._os import upath - +from django.utils.module_loading import module_has_submodule MODELS_MODULE_NAME = 'models' diff --git a/django/apps/registry.py b/django/apps/registry.py index 9ddd56462a..c64106cd6f 100644 --- a/django/apps/registry.py +++ b/django/apps/registry.py @@ -1,7 +1,7 @@ -from collections import Counter, defaultdict, OrderedDict import sys import threading import warnings +from collections import Counter, OrderedDict, defaultdict from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured from django.utils import lru_cache diff --git a/django/conf/project_template/project_name/settings.py b/django/conf/project_template/project_name/settings.py index 9d4b38d171..c0db27cbdc 100644 --- a/django/conf/project_template/project_name/settings.py +++ b/django/conf/project_template/project_name/settings.py @@ -10,8 +10,9 @@ For the full list of settings and their values, see https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/ """ -# Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) diff --git a/django/conf/project_template/project_name/wsgi.py b/django/conf/project_template/project_name/wsgi.py index 94d60c8cf9..0d68b95645 100644 --- a/django/conf/project_template/project_name/wsgi.py +++ b/django/conf/project_template/project_name/wsgi.py @@ -8,7 +8,9 @@ https://docs.djangoproject.com/en/{{ docs_version }}/howto/deployment/wsgi/ """ import os -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings") from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings") + application = get_wsgi_application() diff --git a/django/contrib/admin/actions.py b/django/contrib/admin/actions.py index 2dafd3ea3a..3478145b30 100644 --- a/django/contrib/admin/actions.py +++ b/django/contrib/admin/actions.py @@ -2,14 +2,14 @@ Built-in, globally-available admin actions. """ -from django.core.exceptions import PermissionDenied from django.contrib import messages from django.contrib.admin import helpers from django.contrib.admin.utils import get_deleted_objects, model_ngettext +from django.core.exceptions import PermissionDenied from django.db import router from django.template.response import TemplateResponse from django.utils.encoding import force_text -from django.utils.translation import ugettext_lazy, ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy def delete_selected(modeladmin, request, queryset): diff --git a/django/contrib/admin/apps.py b/django/contrib/admin/apps.py index b052746ff4..c965cdbc89 100644 --- a/django/contrib/admin/apps.py +++ b/django/contrib/admin/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig -from django.core import checks from django.contrib.admin.checks import check_admin_app +from django.core import checks from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/admin/checks.py b/django/contrib/admin/checks.py index f90793daec..d8f7fe57e4 100644 --- a/django/contrib/admin/checks.py +++ b/django/contrib/admin/checks.py @@ -3,11 +3,15 @@ from __future__ import unicode_literals from itertools import chain -from django.contrib.admin.utils import get_fields_from_path, NotRelationField, flatten +from django.contrib.admin.utils import ( + NotRelationField, flatten, get_fields_from_path, +) from django.core import checks from django.core.exceptions import FieldDoesNotExist from django.db import models -from django.forms.models import BaseModelForm, _get_foreign_key, BaseModelFormSet +from django.forms.models import ( + BaseModelForm, BaseModelFormSet, _get_foreign_key, +) def check_admin_app(**kwargs): diff --git a/django/contrib/admin/filters.py b/django/contrib/admin/filters.py index 0c0eb339ce..863da76818 100644 --- a/django/contrib/admin/filters.py +++ b/django/contrib/admin/filters.py @@ -7,15 +7,17 @@ certain test -- e.g. being a DateField or ForeignKey. """ import datetime +from django.contrib.admin.options import IncorrectLookupParameters +from django.contrib.admin.utils import ( + get_limit_choices_to_from_path, get_model_from_relation, + prepare_lookup_value, reverse_field_path, +) +from django.core.exceptions import ImproperlyConfigured, ValidationError from django.db import models from django.db.models.fields.related import ForeignObjectRel, ManyToManyField -from django.core.exceptions import ImproperlyConfigured, ValidationError -from django.utils.encoding import smart_text, force_text -from django.utils.translation import ugettext_lazy as _ from django.utils import timezone -from django.contrib.admin.utils import (get_model_from_relation, - reverse_field_path, get_limit_choices_to_from_path, prepare_lookup_value) -from django.contrib.admin.options import IncorrectLookupParameters +from django.utils.encoding import force_text, smart_text +from django.utils.translation import ugettext_lazy as _ class ListFilter(object): diff --git a/django/contrib/admin/forms.py b/django/contrib/admin/forms.py index ede6f257ad..2e482b9c15 100644 --- a/django/contrib/admin/forms.py +++ b/django/contrib/admin/forms.py @@ -1,7 +1,6 @@ from __future__ import unicode_literals from django import forms - from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index bd41063e43..07ea9a4813 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -3,22 +3,23 @@ from __future__ import unicode_literals import warnings from django import forms -from django.contrib.admin.utils import (flatten_fieldsets, lookup_field, - display_for_field, label_for_field, help_text_for_field) +from django.conf import settings from django.contrib.admin.templatetags.admin_static import static +from django.contrib.admin.utils import ( + display_for_field, flatten_fieldsets, help_text_for_field, label_for_field, + lookup_field, +) from django.core.exceptions import ObjectDoesNotExist from django.db.models.fields.related import ManyToManyRel from django.forms.utils import flatatt from django.template.defaultfilters import capfirst, linebreaksbr +from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text, smart_text from django.utils.functional import cached_property from django.utils.html import conditional_escape, format_html from django.utils.safestring import mark_safe -from django.utils import six from django.utils.translation import ugettext_lazy as _ -from django.conf import settings - ACTION_CHECKBOX_NAME = '_selected_action' diff --git a/django/contrib/admin/migrations/0001_initial.py b/django/contrib/admin/migrations/0001_initial.py index b9872dcc44..088d36becd 100644 --- a/django/contrib/admin/migrations/0001_initial.py +++ b/django/contrib/admin/migrations/0001_initial.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations -from django.conf import settings import django.contrib.admin.models +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/admin/models.py b/django/contrib/admin/models.py index 9ecb367e05..4e1d2aed04 100644 --- a/django/contrib/admin/models.py +++ b/django/contrib/admin/models.py @@ -1,13 +1,12 @@ from __future__ import unicode_literals -from django.db import models from django.conf import settings -from django.contrib.contenttypes.models import ContentType from django.contrib.admin.utils import quote -from django.core.urlresolvers import reverse, NoReverseMatch +from django.contrib.contenttypes.models import ContentType +from django.core.urlresolvers import NoReverseMatch, reverse +from django.db import models +from django.utils.encoding import python_2_unicode_compatible, smart_text from django.utils.translation import ugettext, ugettext_lazy as _ -from django.utils.encoding import smart_text -from django.utils.encoding import python_2_unicode_compatible ADDITION = 1 CHANGE = 2 diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 1419e86589..f0fd4c1a90 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -1,34 +1,39 @@ -from collections import OrderedDict import copy import operator +from collections import OrderedDict from functools import partial, reduce, update_wrapper from django import forms from django.conf import settings from django.contrib import messages -from django.contrib.admin import widgets, helpers -from django.contrib.admin.checks import (BaseModelAdminChecks, ModelAdminChecks, - InlineModelAdminChecks) +from django.contrib.admin import helpers, widgets +from django.contrib.admin.checks import ( + BaseModelAdminChecks, InlineModelAdminChecks, ModelAdminChecks, +) from django.contrib.admin.exceptions import DisallowedModelAdminToField -from django.contrib.admin.utils import (quote, unquote, flatten_fieldsets, - get_deleted_objects, model_format_dict, NestedObjects, - lookup_needs_distinct) from django.contrib.admin.templatetags.admin_static import static from django.contrib.admin.templatetags.admin_urls import add_preserved_filters +from django.contrib.admin.utils import ( + NestedObjects, flatten_fieldsets, get_deleted_objects, + lookup_needs_distinct, model_format_dict, quote, unquote, +) from django.contrib.auth import get_permission_codename -from django.core.exceptions import (PermissionDenied, ValidationError, - FieldDoesNotExist, FieldError) +from django.core.exceptions import ( + FieldDoesNotExist, FieldError, PermissionDenied, ValidationError, +) from django.core.paginator import Paginator from django.core.urlresolvers import reverse -from django.db import models, transaction, router +from django.db import models, router, transaction from django.db.models.constants import LOOKUP_SEP from django.db.models.fields import BLANK_CHOICE_DASH from django.db.models.fields.related import ForeignObjectRel from django.db.models.sql.constants import QUERY_TERMS -from django.forms.formsets import all_valid, DELETION_FIELD_NAME -from django.forms.models import (modelform_factory, modelformset_factory, - inlineformset_factory, BaseInlineFormSet, modelform_defines_fields) -from django.forms.widgets import SelectMultiple, CheckboxSelectMultiple +from django.forms.formsets import DELETION_FIELD_NAME, all_valid +from django.forms.models import ( + BaseInlineFormSet, inlineformset_factory, modelform_defines_fields, + modelform_factory, modelformset_factory, +) +from django.forms.widgets import CheckboxSelectMultiple, SelectMultiple from django.http import Http404, HttpResponseRedirect from django.http.response import HttpResponseBase from django.shortcuts import get_object_or_404 @@ -38,14 +43,11 @@ from django.utils.decorators import method_decorator from django.utils.encoding import force_text, python_2_unicode_compatible from django.utils.html import escape, escapejs from django.utils.http import urlencode -from django.utils.text import capfirst, get_text_list -from django.utils.translation import string_concat -from django.utils.translation import ugettext as _ -from django.utils.translation import ungettext from django.utils.safestring import mark_safe +from django.utils.text import capfirst, get_text_list +from django.utils.translation import string_concat, ugettext as _, ungettext from django.views.decorators.csrf import csrf_protect - IS_POPUP_VAR = '_popup' TO_FIELD_VAR = '_to_field' diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 8389a3fe09..4b5ee57746 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -1,19 +1,20 @@ from functools import update_wrapper -from django.http import Http404, HttpResponseRedirect + +from django.apps import apps +from django.conf import settings from django.contrib.admin import ModelAdmin, actions from django.contrib.auth import REDIRECT_FIELD_NAME -from django.views.decorators.csrf import csrf_protect -from django.db.models.base import ModelBase -from django.apps import apps from django.core.exceptions import ImproperlyConfigured, PermissionDenied -from django.core.urlresolvers import reverse, NoReverseMatch +from django.core.urlresolvers import NoReverseMatch, reverse +from django.db.models.base import ModelBase +from django.http import Http404, HttpResponseRedirect from django.template.engine import Engine from django.template.response import TemplateResponse from django.utils import six from django.utils.text import capfirst -from django.utils.translation import ugettext_lazy, ugettext as _ +from django.utils.translation import ugettext as _, ugettext_lazy from django.views.decorators.cache import never_cache -from django.conf import settings +from django.views.decorators.csrf import csrf_protect system_check_errors = [] diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index 6f7c530aa7..55fba4f90c 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -2,24 +2,25 @@ from __future__ import unicode_literals import datetime -from django.contrib.admin.templatetags.admin_urls import add_preserved_filters -from django.contrib.admin.utils import (lookup_field, display_for_field, - display_for_value, label_for_field) -from django.contrib.admin.views.main import (ALL_VAR, EMPTY_CHANGELIST_VALUE, - ORDER_VAR, PAGE_VAR, SEARCH_VAR) from django.contrib.admin.templatetags.admin_static import static +from django.contrib.admin.templatetags.admin_urls import add_preserved_filters +from django.contrib.admin.utils import ( + display_for_field, display_for_value, label_for_field, lookup_field, +) +from django.contrib.admin.views.main import ( + ALL_VAR, EMPTY_CHANGELIST_VALUE, ORDER_VAR, PAGE_VAR, SEARCH_VAR, +) from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import NoReverseMatch from django.db import models +from django.template import Library +from django.template.loader import get_template from django.utils import formats +from django.utils.encoding import force_text from django.utils.html import escapejs, format_html from django.utils.safestring import mark_safe from django.utils.text import capfirst from django.utils.translation import ugettext as _ -from django.utils.encoding import force_text -from django.template import Library -from django.template.loader import get_template - register = Library() diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py index 95cbe634b2..f704ef3af7 100644 --- a/django/contrib/admin/utils.py +++ b/django/contrib/admin/utils.py @@ -6,7 +6,7 @@ from collections import defaultdict from django.contrib.auth import get_permission_codename from django.core.exceptions import FieldDoesNotExist -from django.core.urlresolvers import reverse, NoReverseMatch +from django.core.urlresolvers import NoReverseMatch, reverse from django.db import models from django.db.models.constants import LOOKUP_SEP from django.db.models.deletion import Collector diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 07457a87fc..fa91ceae3a 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -1,22 +1,26 @@ -from collections import OrderedDict import sys +from collections import OrderedDict -from django.core.exceptions import FieldDoesNotExist, SuspiciousOperation, ImproperlyConfigured +from django.contrib.admin import FieldListFilter +from django.contrib.admin.exceptions import ( + DisallowedModelAdminLookup, DisallowedModelAdminToField, +) +from django.contrib.admin.options import ( + IS_POPUP_VAR, TO_FIELD_VAR, IncorrectLookupParameters, +) +from django.contrib.admin.utils import ( + get_fields_from_path, lookup_needs_distinct, prepare_lookup_value, quote, +) +from django.core.exceptions import ( + FieldDoesNotExist, ImproperlyConfigured, SuspiciousOperation, +) from django.core.paginator import InvalidPage from django.core.urlresolvers import reverse from django.db import models from django.utils import six from django.utils.encoding import force_text -from django.utils.translation import ugettext, ugettext_lazy from django.utils.http import urlencode - -from django.contrib.admin import FieldListFilter -from django.contrib.admin.exceptions import ( - DisallowedModelAdminLookup, DisallowedModelAdminToField, -) -from django.contrib.admin.options import IncorrectLookupParameters, IS_POPUP_VAR, TO_FIELD_VAR -from django.contrib.admin.utils import (quote, get_fields_from_path, - lookup_needs_distinct, prepare_lookup_value) +from django.utils.translation import ugettext, ugettext_lazy # Changelist settings ALL_VAR = 'all' diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index 10ac364f74..19b4187b52 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -9,15 +9,17 @@ from django import forms from django.contrib.admin.templatetags.admin_static import static from django.core.urlresolvers import reverse from django.db.models.deletion import CASCADE -from django.forms.widgets import Media, RadioFieldRenderer from django.forms.utils import flatatt +from django.forms.widgets import Media, RadioFieldRenderer from django.template.loader import render_to_string -from django.utils.html import escape, format_html, format_html_join, smart_urlquote +from django.utils import six +from django.utils.encoding import force_text +from django.utils.html import ( + escape, format_html, format_html_join, smart_urlquote, +) +from django.utils.safestring import mark_safe from django.utils.text import Truncator from django.utils.translation import ugettext as _ -from django.utils.safestring import mark_safe -from django.utils.encoding import force_text -from django.utils import six class FilteredSelectMultiple(forms.SelectMultiple): diff --git a/django/contrib/admindocs/apps.py b/django/contrib/admindocs/apps.py index 7994f618cd..28ddbfb92a 100644 --- a/django/contrib/admindocs/apps.py +++ b/django/contrib/admindocs/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/admindocs/middleware.py b/django/contrib/admindocs/middleware.py index 330b76423b..2e4cede0b9 100644 --- a/django/contrib/admindocs/middleware.py +++ b/django/contrib/admindocs/middleware.py @@ -1,5 +1,5 @@ -from django.conf import settings from django import http +from django.conf import settings class XViewMiddleware(object): diff --git a/django/contrib/admindocs/utils.py b/django/contrib/admindocs/utils.py index 779a8a446b..f366025f89 100644 --- a/django/contrib/admindocs/utils.py +++ b/django/contrib/admindocs/utils.py @@ -1,12 +1,13 @@ "Misc. utility functions/classes for admin documentation generator." import re -from email.parser import HeaderParser from email.errors import HeaderParseError +from email.parser import HeaderParser -from django.utils.safestring import mark_safe from django.core.urlresolvers import reverse from django.utils.encoding import force_bytes +from django.utils.safestring import mark_safe + try: import docutils.core import docutils.nodes diff --git a/django/contrib/admindocs/views.py b/django/contrib/admindocs/views.py index 4ce64c3a53..91ca143508 100644 --- a/django/contrib/admindocs/views.py +++ b/django/contrib/admindocs/views.py @@ -1,23 +1,25 @@ -from importlib import import_module import inspect import os import re +from importlib import import_module from django.apps import apps from django.conf import settings from django.contrib import admin from django.contrib.admin.views.decorators import staff_member_required -from django.db import models +from django.contrib.admindocs import utils +from django.core import urlresolvers from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist +from django.db import models from django.http import Http404 -from django.core import urlresolvers -from django.contrib.admindocs import utils -from django.template.base import (builtins, get_library, - get_templatetags_modules, InvalidTemplateLibrary, libraries) +from django.template.base import ( + InvalidTemplateLibrary, builtins, get_library, get_templatetags_modules, + libraries, +) from django.template.engine import Engine -from django.utils.decorators import method_decorator -from django.utils._os import upath from django.utils import six +from django.utils._os import upath +from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ from django.views.generic import TemplateView diff --git a/django/contrib/auth/admin.py b/django/contrib/auth/admin.py index 90394c8f09..b791609031 100644 --- a/django/contrib/auth/admin.py +++ b/django/contrib/auth/admin.py @@ -1,19 +1,19 @@ -from django.db import transaction from django.conf import settings from django.conf.urls import url -from django.contrib import admin +from django.contrib import admin, messages from django.contrib.admin.options import IS_POPUP_VAR from django.contrib.auth import update_session_auth_hash -from django.contrib.auth.forms import (UserCreationForm, UserChangeForm, - AdminPasswordChangeForm) -from django.contrib.auth.models import User, Group -from django.contrib import messages +from django.contrib.auth.forms import ( + AdminPasswordChangeForm, UserChangeForm, UserCreationForm, +) +from django.contrib.auth.models import Group, User from django.core.exceptions import PermissionDenied -from django.http import HttpResponseRedirect, Http404 +from django.db import transaction +from django.http import Http404, HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.template.response import TemplateResponse -from django.utils.html import escape from django.utils.decorators import method_decorator +from django.utils.html import escape from django.utils.translation import ugettext, ugettext_lazy as _ from django.views.decorators.csrf import csrf_protect from django.views.decorators.debug import sensitive_post_parameters diff --git a/django/contrib/auth/apps.py b/django/contrib/auth/apps.py index bbfcb7dbd1..109a34dff6 100644 --- a/django/contrib/auth/apps.py +++ b/django/contrib/auth/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig -from django.core import checks from django.contrib.auth.checks import check_user_model +from django.core import checks from django.db.models.signals import post_migrate from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/auth/backends.py b/django/contrib/auth/backends.py index 00a772fd4f..9f08259038 100644 --- a/django/contrib/auth/backends.py +++ b/django/contrib/auth/backends.py @@ -1,4 +1,5 @@ from __future__ import unicode_literals + from django.contrib.auth import get_user_model from django.contrib.auth.models import Permission diff --git a/django/contrib/auth/decorators.py b/django/contrib/auth/decorators.py index 99e2983e63..9b2504b33c 100644 --- a/django/contrib/auth/decorators.py +++ b/django/contrib/auth/decorators.py @@ -1,10 +1,11 @@ from functools import wraps + from django.conf import settings from django.contrib.auth import REDIRECT_FIELD_NAME from django.core.exceptions import PermissionDenied +from django.shortcuts import resolve_url from django.utils.decorators import available_attrs from django.utils.six.moves.urllib.parse import urlparse -from django.shortcuts import resolve_url def user_passes_test(test_func, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME): diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index 3d19b2247e..cc3be5ba0b 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -3,6 +3,13 @@ from __future__ import unicode_literals from collections import OrderedDict from django import forms +from django.contrib.auth import authenticate, get_user_model +from django.contrib.auth.hashers import ( + UNUSABLE_PASSWORD_PREFIX, identify_hasher, +) +from django.contrib.auth.models import User +from django.contrib.auth.tokens import default_token_generator +from django.contrib.sites.shortcuts import get_current_site from django.core.mail import EmailMultiAlternatives from django.forms.utils import flatatt from django.template import loader @@ -13,12 +20,6 @@ from django.utils.safestring import mark_safe from django.utils.text import capfirst from django.utils.translation import ugettext, ugettext_lazy as _ -from django.contrib.auth import authenticate, get_user_model -from django.contrib.auth.models import User -from django.contrib.auth.hashers import UNUSABLE_PASSWORD_PREFIX, identify_hasher -from django.contrib.auth.tokens import default_token_generator -from django.contrib.sites.shortcuts import get_current_site - class ReadOnlyPasswordHashWidget(forms.Widget): def render(self, name, value, attrs): diff --git a/django/contrib/auth/handlers/modwsgi.py b/django/contrib/auth/handlers/modwsgi.py index 8ada9750f1..6b91ed9c6e 100644 --- a/django/contrib/auth/handlers/modwsgi.py +++ b/django/contrib/auth/handlers/modwsgi.py @@ -1,5 +1,5 @@ -from django.contrib import auth from django import db +from django.contrib import auth from django.utils.encoding import force_bytes diff --git a/django/contrib/auth/hashers.py b/django/contrib/auth/hashers.py index 44ebf89c36..59676f6562 100644 --- a/django/contrib/auth/hashers.py +++ b/django/contrib/auth/hashers.py @@ -2,22 +2,22 @@ from __future__ import unicode_literals import base64 import binascii -from collections import OrderedDict import hashlib import importlib +from collections import OrderedDict -from django.dispatch import receiver from django.conf import settings -from django.core.signals import setting_changed -from django.utils.encoding import force_bytes, force_str, force_text from django.core.exceptions import ImproperlyConfigured -from django.utils.crypto import ( - pbkdf2, constant_time_compare, get_random_string) +from django.core.signals import setting_changed +from django.dispatch import receiver from django.utils import lru_cache +from django.utils.crypto import ( + constant_time_compare, get_random_string, pbkdf2, +) +from django.utils.encoding import force_bytes, force_str, force_text from django.utils.module_loading import import_string from django.utils.translation import ugettext_noop as _ - UNUSABLE_PASSWORD_PREFIX = '!' # This will never be a valid encoded hash UNUSABLE_PASSWORD_SUFFIX_LENGTH = 40 # number of random chars to add after UNUSABLE_PASSWORD_PREFIX diff --git a/django/contrib/auth/migrations/0001_initial.py b/django/contrib/auth/migrations/0001_initial.py index 33c8e00153..a58f73ab1a 100644 --- a/django/contrib/auth/migrations/0001_initial.py +++ b/django/contrib/auth/migrations/0001_initial.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals +import django.contrib.auth.models from django.core import validators -from django.db import models, migrations +from django.db import migrations, models from django.utils import timezone -import django.contrib.auth.models class Migration(migrations.Migration): diff --git a/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py b/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py index 8e82223237..8b58e7814b 100644 --- a/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py +++ b/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/auth/migrations/0003_alter_user_email_max_length.py b/django/contrib/auth/migrations/0003_alter_user_email_max_length.py index a9b8058089..0a082f2656 100644 --- a/django/contrib/auth/migrations/0003_alter_user_email_max_length.py +++ b/django/contrib/auth/migrations/0003_alter_user_email_max_length.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/auth/migrations/0004_alter_user_username_opts.py b/django/contrib/auth/migrations/0004_alter_user_username_opts.py index 80a156e001..0f7bfdf3a7 100644 --- a/django/contrib/auth/migrations/0004_alter_user_username_opts.py +++ b/django/contrib/auth/migrations/0004_alter_user_username_opts.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations import django.core.validators +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/auth/migrations/0005_alter_user_last_login_null.py b/django/contrib/auth/migrations/0005_alter_user_last_login_null.py index 128a4e4962..b8b9289787 100644 --- a/django/contrib/auth/migrations/0005_alter_user_last_login_null.py +++ b/django/contrib/auth/migrations/0005_alter_user_last_login_null.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py index 89b3054b70..4dc49c2d0c 100644 --- a/django/contrib/auth/models.py +++ b/django/contrib/auth/models.py @@ -1,21 +1,20 @@ from __future__ import unicode_literals +from django.contrib import auth +from django.contrib.auth.hashers import ( + check_password, is_password_usable, make_password, +) +from django.contrib.auth.signals import user_logged_in +from django.contrib.contenttypes.models import ContentType +from django.core import validators from django.core.exceptions import PermissionDenied from django.core.mail import send_mail -from django.core import validators from django.db import models from django.db.models.manager import EmptyManager +from django.utils import six, timezone from django.utils.crypto import get_random_string, salted_hmac -from django.utils import six -from django.utils.translation import ugettext_lazy as _ -from django.utils import timezone - -from django.contrib import auth -from django.contrib.auth.hashers import ( - check_password, make_password, is_password_usable) -from django.contrib.auth.signals import user_logged_in -from django.contrib.contenttypes.models import ContentType from django.utils.encoding import python_2_unicode_compatible +from django.utils.translation import ugettext_lazy as _ def update_last_login(sender, user, **kwargs): diff --git a/django/contrib/auth/tests/backend_alias.py b/django/contrib/auth/tests/backend_alias.py index 1f31f7a16a..7314bac4ee 100644 --- a/django/contrib/auth/tests/backend_alias.py +++ b/django/contrib/auth/tests/backend_alias.py @@ -1,2 +1,4 @@ # For testing that auth backends can be referenced using a convenience import -from django.contrib.auth.tests.test_auth_backends import ImportedModelBackend # NOQA +from django.contrib.auth.tests.test_auth_backends import ImportedModelBackend + +__all__ = ['ImportedModelBackend'] diff --git a/django/contrib/auth/tests/custom_user.py b/django/contrib/auth/tests/custom_user.py index c856431bba..e7ce6162e9 100644 --- a/django/contrib/auth/tests/custom_user.py +++ b/django/contrib/auth/tests/custom_user.py @@ -1,13 +1,8 @@ -from django.db import models from django.contrib.auth.models import ( - BaseUserManager, - AbstractBaseUser, - AbstractUser, - UserManager, - PermissionsMixin, - Group, - Permission, + AbstractBaseUser, AbstractUser, BaseUserManager, Group, Permission, + PermissionsMixin, UserManager, ) +from django.db import models # The custom User uses email as the unique identifier, and requires diff --git a/django/contrib/auth/tests/settings.py b/django/contrib/auth/tests/settings.py index b3e1eff156..7da6144d4b 100644 --- a/django/contrib/auth/tests/settings.py +++ b/django/contrib/auth/tests/settings.py @@ -2,7 +2,6 @@ import os from django.utils._os import upath - AUTH_MIDDLEWARE_CLASSES = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', diff --git a/django/contrib/auth/tests/test_auth_backends.py b/django/contrib/auth/tests/test_auth_backends.py index 383fae759e..2abdc4d797 100644 --- a/django/contrib/auth/tests/test_auth_backends.py +++ b/django/contrib/auth/tests/test_auth_backends.py @@ -1,16 +1,19 @@ from __future__ import unicode_literals + from datetime import date +from django.contrib.auth import BACKEND_SESSION_KEY, authenticate, get_user from django.contrib.auth.backends import ModelBackend -from django.contrib.auth.models import User, Group, Permission, AnonymousUser +from django.contrib.auth.hashers import MD5PasswordHasher +from django.contrib.auth.models import AnonymousUser, Group, Permission, User +from django.contrib.auth.tests.custom_user import ( + CustomPermissionsUser, CustomUser, ExtensionUser, +) from django.contrib.auth.tests.utils import skipIfCustomUser -from django.contrib.auth.tests.custom_user import ExtensionUser, CustomPermissionsUser, CustomUser from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ImproperlyConfigured, PermissionDenied -from django.contrib.auth import authenticate, BACKEND_SESSION_KEY, get_user from django.http import HttpRequest from django.test import TestCase, modify_settings, override_settings -from django.contrib.auth.hashers import MD5PasswordHasher class CountingMD5PasswordHasher(MD5PasswordHasher): diff --git a/django/contrib/auth/tests/test_basic.py b/django/contrib/auth/tests/test_basic.py index fed94db82f..ca7db755e6 100644 --- a/django/contrib/auth/tests/test_basic.py +++ b/django/contrib/auth/tests/test_basic.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.apps import apps from django.contrib.auth import get_user_model -from django.contrib.auth.models import User, AnonymousUser +from django.contrib.auth.models import AnonymousUser, User from django.contrib.auth.tests.custom_user import CustomUser from django.contrib.auth.tests.utils import skipIfCustomUser from django.core.exceptions import ImproperlyConfigured diff --git a/django/contrib/auth/tests/test_context_processors.py b/django/contrib/auth/tests/test_context_processors.py index 2f7e5ab4b2..3e1c19e91d 100644 --- a/django/contrib/auth/tests/test_context_processors.py +++ b/django/contrib/auth/tests/test_context_processors.py @@ -1,7 +1,7 @@ from django.contrib.auth import authenticate -from django.contrib.auth.models import User, Permission +from django.contrib.auth.context_processors import PermLookupDict, PermWrapper +from django.contrib.auth.models import Permission, User from django.contrib.contenttypes.models import ContentType -from django.contrib.auth.context_processors import PermWrapper, PermLookupDict from django.db.models import Q from django.test import TestCase, override_settings diff --git a/django/contrib/auth/tests/test_forms.py b/django/contrib/auth/tests/test_forms.py index 601c0868d7..6437ef6b2e 100644 --- a/django/contrib/auth/tests/test_forms.py +++ b/django/contrib/auth/tests/test_forms.py @@ -3,16 +3,18 @@ from __future__ import unicode_literals import re from django import forms +from django.contrib.auth.forms import ( + AuthenticationForm, PasswordChangeForm, PasswordResetForm, + ReadOnlyPasswordHashField, ReadOnlyPasswordHashWidget, SetPasswordForm, + UserChangeForm, UserCreationForm, +) from django.contrib.auth.models import User -from django.contrib.auth.forms import (UserCreationForm, AuthenticationForm, - PasswordChangeForm, SetPasswordForm, UserChangeForm, PasswordResetForm, - ReadOnlyPasswordHashField, ReadOnlyPasswordHashWidget) from django.core import mail from django.core.mail import EmailMultiAlternatives -from django.forms.fields import Field, CharField +from django.forms.fields import CharField, Field from django.test import TestCase, override_settings -from django.utils.encoding import force_text from django.utils import translation +from django.utils.encoding import force_text from django.utils.text import capfirst from django.utils.translation import ugettext as _ diff --git a/django/contrib/auth/tests/test_handlers.py b/django/contrib/auth/tests/test_handlers.py index f4fa3030de..a6a4f9cd06 100644 --- a/django/contrib/auth/tests/test_handlers.py +++ b/django/contrib/auth/tests/test_handlers.py @@ -1,11 +1,12 @@ from __future__ import unicode_literals -from django.contrib.auth.handlers.modwsgi import check_password, groups_for_user -from django.contrib.auth.models import User, Group +from django.contrib.auth.handlers.modwsgi import ( + check_password, groups_for_user, +) +from django.contrib.auth.models import Group, User from django.contrib.auth.tests.custom_user import CustomUser from django.contrib.auth.tests.utils import skipIfCustomUser -from django.test import TransactionTestCase -from django.test import override_settings +from django.test import TransactionTestCase, override_settings # This must be a TransactionTestCase because the WSGI auth handler performs diff --git a/django/contrib/auth/tests/test_hashers.py b/django/contrib/auth/tests/test_hashers.py index 740ba462a2..52253d6efb 100644 --- a/django/contrib/auth/tests/test_hashers.py +++ b/django/contrib/auth/tests/test_hashers.py @@ -4,14 +4,16 @@ from __future__ import unicode_literals from unittest import skipUnless from django.conf.global_settings import PASSWORD_HASHERS -from django.contrib.auth.hashers import (is_password_usable, BasePasswordHasher, - check_password, make_password, PBKDF2PasswordHasher, PBKDF2SHA1PasswordHasher, - get_hasher, identify_hasher, UNUSABLE_PASSWORD_PREFIX, UNUSABLE_PASSWORD_SUFFIX_LENGTH) +from django.contrib.auth.hashers import ( + UNUSABLE_PASSWORD_PREFIX, UNUSABLE_PASSWORD_SUFFIX_LENGTH, + BasePasswordHasher, PBKDF2PasswordHasher, PBKDF2SHA1PasswordHasher, + check_password, get_hasher, identify_hasher, is_password_usable, + make_password, +) from django.test import SimpleTestCase from django.test.utils import override_settings from django.utils import six - try: import crypt except ImportError: diff --git a/django/contrib/auth/tests/test_management.py b/django/contrib/auth/tests/test_management.py index 24e4317392..1a210a1915 100644 --- a/django/contrib/auth/tests/test_management.py +++ b/django/contrib/auth/tests/test_management.py @@ -1,23 +1,28 @@ from __future__ import unicode_literals -from datetime import date import locale import sys +from datetime import date from django.apps import apps -from django.contrib.auth import models, management +from django.contrib.auth import management, models from django.contrib.auth.checks import check_user_model from django.contrib.auth.management import create_permissions -from django.contrib.auth.management.commands import changepassword, createsuperuser -from django.contrib.auth.models import User, Group -from django.contrib.auth.tests.custom_user import CustomUser, CustomUserWithFK, Email +from django.contrib.auth.management.commands import ( + changepassword, createsuperuser, +) +from django.contrib.auth.models import Group, User +from django.contrib.auth.tests.custom_user import ( + CustomUser, CustomUserWithFK, Email, +) from django.contrib.auth.tests.utils import skipIfCustomUser from django.contrib.contenttypes.models import ContentType -from django.core import checks -from django.core import exceptions +from django.core import checks, exceptions from django.core.management import call_command from django.core.management.base import CommandError -from django.test import TestCase, override_settings, override_system_checks, skipUnlessDBFeature +from django.test import ( + TestCase, override_settings, override_system_checks, skipUnlessDBFeature, +) from django.utils import six from django.utils.encoding import force_str diff --git a/django/contrib/auth/tests/test_models.py b/django/contrib/auth/tests/test_models.py index b0a35a445a..ee51b15a98 100644 --- a/django/contrib/auth/tests/test_models.py +++ b/django/contrib/auth/tests/test_models.py @@ -1,5 +1,7 @@ from django.contrib.auth import get_user_model -from django.contrib.auth.models import AbstractUser, Group, Permission, User, UserManager +from django.contrib.auth.models import ( + AbstractUser, Group, Permission, User, UserManager, +) from django.contrib.auth.tests.utils import skipIfCustomUser from django.contrib.contenttypes.models import ContentType from django.core import mail diff --git a/django/contrib/auth/tests/test_signals.py b/django/contrib/auth/tests/test_signals.py index e3c89f2366..909c28a36d 100644 --- a/django/contrib/auth/tests/test_signals.py +++ b/django/contrib/auth/tests/test_signals.py @@ -1,9 +1,8 @@ from django.contrib.auth import signals from django.contrib.auth.models import User from django.contrib.auth.tests.utils import skipIfCustomUser -from django.test import TestCase +from django.test import TestCase, override_settings from django.test.client import RequestFactory -from django.test import override_settings @skipIfCustomUser diff --git a/django/contrib/auth/tests/test_templates.py b/django/contrib/auth/tests/test_templates.py index 409a1705f3..ab3aea42db 100644 --- a/django/contrib/auth/tests/test_templates.py +++ b/django/contrib/auth/tests/test_templates.py @@ -3,11 +3,10 @@ from django.contrib.auth.models import User from django.contrib.auth.tests.utils import skipIfCustomUser from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.auth.views import ( - password_reset, password_reset_done, password_reset_confirm, - password_reset_complete, password_change, password_change_done, + password_change, password_change_done, password_reset, + password_reset_complete, password_reset_confirm, password_reset_done, ) -from django.test import RequestFactory, TestCase -from django.test import override_settings +from django.test import RequestFactory, TestCase, override_settings from django.utils.encoding import force_bytes, force_text from django.utils.http import urlsafe_base64_encode diff --git a/django/contrib/auth/tests/test_tokens.py b/django/contrib/auth/tests/test_tokens.py index 583546ab3a..b9433bdcfa 100644 --- a/django/contrib/auth/tests/test_tokens.py +++ b/django/contrib/auth/tests/test_tokens.py @@ -1,11 +1,11 @@ -from datetime import date, timedelta import sys import unittest +from datetime import date, timedelta from django.conf import settings from django.contrib.auth.models import User -from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.auth.tests.utils import skipIfCustomUser +from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.test import TestCase diff --git a/django/contrib/auth/tests/test_views.py b/django/contrib/auth/tests/test_views.py index fd01909c2b..c065d30dbe 100644 --- a/django/contrib/auth/tests/test_views.py +++ b/django/contrib/auth/tests/test_views.py @@ -1,33 +1,34 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from importlib import import_module import itertools import re +from importlib import import_module from django.apps import apps from django.conf import settings -from django.contrib.sites.requests import RequestSite from django.contrib.admin.models import LogEntry -from django.contrib.auth import SESSION_KEY, REDIRECT_FIELD_NAME -from django.contrib.auth.forms import (AuthenticationForm, PasswordChangeForm, - SetPasswordForm) +from django.contrib.auth import REDIRECT_FIELD_NAME, SESSION_KEY +from django.contrib.auth.forms import ( + AuthenticationForm, PasswordChangeForm, SetPasswordForm, +) from django.contrib.auth.models import User from django.contrib.auth.views import login as login_view, redirect_to_login +from django.contrib.sessions.middleware import SessionMiddleware +from django.contrib.sites.requests import RequestSite from django.core import mail from django.core.urlresolvers import NoReverseMatch, reverse, reverse_lazy -from django.http import QueryDict, HttpRequest -from django.utils.deprecation import RemovedInDjango20Warning -from django.utils.encoding import force_text -from django.utils.http import urlquote -from django.utils.six.moves.urllib.parse import urlparse, ParseResult -from django.utils.translation import LANGUAGE_SESSION_KEY +from django.http import HttpRequest, QueryDict +from django.middleware.csrf import CsrfViewMiddleware from django.test import ( TestCase, ignore_warnings, modify_settings, override_settings, ) from django.test.utils import patch_logger -from django.middleware.csrf import CsrfViewMiddleware -from django.contrib.sessions.middleware import SessionMiddleware +from django.utils.deprecation import RemovedInDjango20Warning +from django.utils.encoding import force_text +from django.utils.http import urlquote +from django.utils.six.moves.urllib.parse import ParseResult, urlparse +from django.utils.translation import LANGUAGE_SESSION_KEY # Needed so model is installed when tests are run independently: from .custom_user import CustomUser # NOQA diff --git a/django/contrib/auth/tests/urls.py b/django/contrib/auth/tests/urls.py index 41e742a93b..6f83e0f420 100644 --- a/django/contrib/auth/tests/urls.py +++ b/django/contrib/auth/tests/urls.py @@ -1,13 +1,13 @@ -from django.conf.urls import url, include +from django.conf.urls import include, url from django.contrib import admin -from django.contrib.auth.forms import AuthenticationForm -from django.contrib.auth.urls import urlpatterns from django.contrib.auth import views from django.contrib.auth.decorators import login_required +from django.contrib.auth.forms import AuthenticationForm +from django.contrib.auth.urls import urlpatterns from django.contrib.messages.api import info -from django.http import HttpResponse, HttpRequest +from django.http import HttpRequest, HttpResponse from django.shortcuts import render -from django.template import Template, RequestContext +from django.template import RequestContext, Template from django.views.decorators.cache import never_cache diff --git a/django/contrib/auth/tests/urls_admin.py b/django/contrib/auth/tests/urls_admin.py index 49d6f38447..8d2fe3fd10 100644 --- a/django/contrib/auth/tests/urls_admin.py +++ b/django/contrib/auth/tests/urls_admin.py @@ -4,8 +4,8 @@ Test URLs for auth admins. from django.conf.urls import include, url from django.contrib import admin -from django.contrib.auth.admin import UserAdmin, GroupAdmin -from django.contrib.auth.models import User, Group +from django.contrib.auth.admin import GroupAdmin, UserAdmin +from django.contrib.auth.models import Group, User from django.contrib.auth.urls import urlpatterns # Create a silo'd admin site for just the user/group admins. diff --git a/django/contrib/auth/tokens.py b/django/contrib/auth/tokens.py index 89100daeb2..b925c21eff 100644 --- a/django/contrib/auth/tokens.py +++ b/django/contrib/auth/tokens.py @@ -1,8 +1,9 @@ from datetime import date + from django.conf import settings -from django.utils.http import int_to_base36, base36_to_int -from django.utils.crypto import constant_time_compare, salted_hmac from django.utils import six +from django.utils.crypto import constant_time_compare, salted_hmac +from django.utils.http import base36_to_int, int_to_base36 class PasswordResetTokenGenerator(object): diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py index 348fca8745..deedb7f232 100644 --- a/django/contrib/auth/views.py +++ b/django/contrib/auth/views.py @@ -1,25 +1,31 @@ import warnings from django.conf import settings +# Avoid shadowing the login() and logout() views below. +from django.contrib.auth import ( + REDIRECT_FIELD_NAME, get_user_model, login as auth_login, + logout as auth_logout, update_session_auth_hash, +) +from django.contrib.auth.decorators import login_required +from django.contrib.auth.forms import ( + AuthenticationForm, PasswordChangeForm, PasswordResetForm, SetPasswordForm, +) +from django.contrib.auth.tokens import default_token_generator +from django.contrib.sites.shortcuts import get_current_site from django.core.urlresolvers import reverse from django.http import HttpResponseRedirect, QueryDict +from django.shortcuts import resolve_url from django.template.response import TemplateResponse from django.utils.deprecation import RemovedInDjango20Warning from django.utils.http import is_safe_url, urlsafe_base64_decode -from django.utils.translation import ugettext as _ from django.utils.six.moves.urllib.parse import urlparse, urlunparse -from django.shortcuts import resolve_url -from django.views.decorators.debug import sensitive_post_parameters +from django.utils.translation import ugettext as _ from django.views.decorators.cache import never_cache from django.views.decorators.csrf import csrf_protect +from django.views.decorators.debug import sensitive_post_parameters + # Avoid shadowing the login() and logout() views below. -from django.contrib.auth import (REDIRECT_FIELD_NAME, login as auth_login, - logout as auth_logout, get_user_model, update_session_auth_hash) -from django.contrib.auth.decorators import login_required -from django.contrib.auth.forms import AuthenticationForm, PasswordResetForm, SetPasswordForm, PasswordChangeForm -from django.contrib.auth.tokens import default_token_generator -from django.contrib.sites.shortcuts import get_current_site @sensitive_post_parameters() diff --git a/django/contrib/contenttypes/admin.py b/django/contrib/contenttypes/admin.py index 3db9d2d612..85bf3227e3 100644 --- a/django/contrib/contenttypes/admin.py +++ b/django/contrib/contenttypes/admin.py @@ -6,7 +6,7 @@ from django.contrib.admin.checks import InlineModelAdminChecks from django.contrib.admin.options import InlineModelAdmin, flatten_fieldsets from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.forms import ( - BaseGenericInlineFormSet, generic_inlineformset_factory + BaseGenericInlineFormSet, generic_inlineformset_factory, ) from django.core import checks from django.core.exceptions import FieldDoesNotExist diff --git a/django/contrib/contenttypes/checks.py b/django/contrib/contenttypes/checks.py index 890859505a..1b3df21353 100644 --- a/django/contrib/contenttypes/checks.py +++ b/django/contrib/contenttypes/checks.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.utils import six from django.apps import apps +from django.utils import six def check_generic_foreign_keys(**kwargs): diff --git a/django/contrib/contenttypes/fields.py b/django/contrib/contenttypes/fields.py index b20d38768d..c11d6284c0 100644 --- a/django/contrib/contenttypes/fields.py +++ b/django/contrib/contenttypes/fields.py @@ -2,16 +2,15 @@ from __future__ import unicode_literals from collections import defaultdict +from django.contrib.contenttypes.models import ContentType from django.core import checks from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist -from django.db import connection -from django.db import models, router, transaction, DEFAULT_DB_ALIAS -from django.db.models import signals, DO_NOTHING +from django.db import DEFAULT_DB_ALIAS, connection, models, router, transaction +from django.db.models import DO_NOTHING, signals from django.db.models.base import ModelBase from django.db.models.fields.related import ForeignObject, ForeignObjectRel from django.db.models.query_utils import PathInfo -from django.contrib.contenttypes.models import ContentType -from django.utils.encoding import smart_text, python_2_unicode_compatible +from django.utils.encoding import python_2_unicode_compatible, smart_text @python_2_unicode_compatible diff --git a/django/contrib/contenttypes/forms.py b/django/contrib/contenttypes/forms.py index 693628d3de..e590c3db05 100644 --- a/django/contrib/contenttypes/forms.py +++ b/django/contrib/contenttypes/forms.py @@ -1,9 +1,9 @@ from __future__ import unicode_literals +from django.contrib.contenttypes.models import ContentType from django.db import models from django.forms import ModelForm, modelformset_factory from django.forms.models import BaseModelFormSet -from django.contrib.contenttypes.models import ContentType class BaseGenericInlineFormSet(BaseModelFormSet): diff --git a/django/contrib/contenttypes/migrations/0001_initial.py b/django/contrib/contenttypes/migrations/0001_initial.py index 09519f1d75..68190b2a2b 100644 --- a/django/contrib/contenttypes/migrations/0001_initial.py +++ b/django/contrib/contenttypes/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations import django.contrib.contenttypes.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py b/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py index 1b91437dbc..b2e18846b9 100644 --- a/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py +++ b/django/contrib/contenttypes/migrations/0002_remove_content_type_name.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations, models def add_legacy_name(apps, schema_editor): diff --git a/django/contrib/contenttypes/models.py b/django/contrib/contenttypes/models.py index 684380c832..5205ec80f9 100644 --- a/django/contrib/contenttypes/models.py +++ b/django/contrib/contenttypes/models.py @@ -5,9 +5,9 @@ import warnings from django.apps import apps from django.db import models from django.db.utils import OperationalError, ProgrammingError -from django.utils.translation import ugettext_lazy as _ from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text, python_2_unicode_compatible +from django.utils.translation import ugettext_lazy as _ class ContentTypeManager(models.Manager): diff --git a/django/contrib/contenttypes/tests/tests.py b/django/contrib/contenttypes/tests/tests.py index f41732b6b5..aed559c5fd 100644 --- a/django/contrib/contenttypes/tests/tests.py +++ b/django/contrib/contenttypes/tests/tests.py @@ -6,11 +6,14 @@ from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.views import shortcut from django.contrib.sites.shortcuts import get_current_site from django.core.management import call_command -from django.http import HttpRequest, Http404 +from django.http import Http404, HttpRequest from django.test import TestCase, override_settings, skipUnlessDBFeature from django.utils import six -from .models import ConcreteModel, ProxyModel, FooWithoutUrl, FooWithUrl, FooWithBrokenAbsoluteUrl +from .models import ( + ConcreteModel, FooWithBrokenAbsoluteUrl, FooWithoutUrl, FooWithUrl, + ProxyModel, +) class ContentTypesTests(TestCase): diff --git a/django/contrib/flatpages/admin.py b/django/contrib/flatpages/admin.py index 5711a9466e..06ed824c45 100644 --- a/django/contrib/flatpages/admin.py +++ b/django/contrib/flatpages/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin +from django.contrib.flatpages.forms import FlatpageForm from django.contrib.flatpages.models import FlatPage from django.utils.translation import ugettext_lazy as _ -from django.contrib.flatpages.forms import FlatpageForm class FlatPageAdmin(admin.ModelAdmin): diff --git a/django/contrib/flatpages/apps.py b/django/contrib/flatpages/apps.py index c35bebf721..ac966c81f5 100644 --- a/django/contrib/flatpages/apps.py +++ b/django/contrib/flatpages/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/flatpages/middleware.py b/django/contrib/flatpages/middleware.py index 9fe595d0cf..32d881ffa4 100644 --- a/django/contrib/flatpages/middleware.py +++ b/django/contrib/flatpages/middleware.py @@ -1,6 +1,6 @@ +from django.conf import settings from django.contrib.flatpages.views import flatpage from django.http import Http404 -from django.conf import settings class FlatpageFallbackMiddleware(object): diff --git a/django/contrib/flatpages/migrations/0001_initial.py b/django/contrib/flatpages/migrations/0001_initial.py index 5f583a1051..fe0a3f3374 100644 --- a/django/contrib/flatpages/migrations/0001_initial.py +++ b/django/contrib/flatpages/migrations/0001_initial.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/flatpages/models.py b/django/contrib/flatpages/models.py index 1bddb0b8d2..eac4edd122 100644 --- a/django/contrib/flatpages/models.py +++ b/django/contrib/flatpages/models.py @@ -1,10 +1,10 @@ from __future__ import unicode_literals -from django.db import models from django.contrib.sites.models import Site from django.core.urlresolvers import get_script_prefix -from django.utils.translation import ugettext_lazy as _ +from django.db import models from django.utils.encoding import iri_to_uri, python_2_unicode_compatible +from django.utils.translation import ugettext_lazy as _ @python_2_unicode_compatible diff --git a/django/contrib/flatpages/templatetags/flatpages.py b/django/contrib/flatpages/templatetags/flatpages.py index d7ced97d17..db82c4aa2c 100644 --- a/django/contrib/flatpages/templatetags/flatpages.py +++ b/django/contrib/flatpages/templatetags/flatpages.py @@ -3,7 +3,6 @@ from django.conf import settings from django.contrib.flatpages.models import FlatPage from django.contrib.sites.shortcuts import get_current_site - register = template.Library() diff --git a/django/contrib/flatpages/tests/settings.py b/django/contrib/flatpages/tests/settings.py index b10ebe564c..ad888f9d95 100644 --- a/django/contrib/flatpages/tests/settings.py +++ b/django/contrib/flatpages/tests/settings.py @@ -1,6 +1,5 @@ import os - FLATPAGES_TEMPLATES = [{ 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(os.path.dirname(__file__), 'templates')], diff --git a/django/contrib/flatpages/tests/test_csrf.py b/django/contrib/flatpages/tests/test_csrf.py index b9d7f32327..f8616b3913 100644 --- a/django/contrib/flatpages/tests/test_csrf.py +++ b/django/contrib/flatpages/tests/test_csrf.py @@ -1,7 +1,6 @@ from django.contrib.auth.models import User from django.contrib.auth.tests.utils import skipIfCustomUser -from django.test import TestCase, Client -from django.test import override_settings +from django.test import Client, TestCase, override_settings from .settings import FLATPAGES_TEMPLATES diff --git a/django/contrib/flatpages/tests/test_models.py b/django/contrib/flatpages/tests/test_models.py index f091f3e0ea..c48dc38637 100644 --- a/django/contrib/flatpages/tests/test_models.py +++ b/django/contrib/flatpages/tests/test_models.py @@ -2,8 +2,8 @@ from __future__ import unicode_literals -from django.core.urlresolvers import set_script_prefix, clear_script_prefix from django.contrib.flatpages.models import FlatPage +from django.core.urlresolvers import clear_script_prefix, set_script_prefix from django.test import TestCase diff --git a/django/contrib/flatpages/tests/test_templatetags.py b/django/contrib/flatpages/tests/test_templatetags.py index a4a65ce840..209332b79c 100644 --- a/django/contrib/flatpages/tests/test_templatetags.py +++ b/django/contrib/flatpages/tests/test_templatetags.py @@ -1,6 +1,6 @@ from django.contrib.auth.models import AnonymousUser, User from django.contrib.auth.tests.utils import skipIfCustomUser -from django.template import Template, Context, TemplateSyntaxError +from django.template import Context, Template, TemplateSyntaxError from django.test import TestCase, override_settings from .settings import FLATPAGES_TEMPLATES diff --git a/django/contrib/gis/admin/options.py b/django/contrib/gis/admin/options.py index 8ca0d92c29..f9412336e3 100644 --- a/django/contrib/gis/admin/options.py +++ b/django/contrib/gis/admin/options.py @@ -1,7 +1,7 @@ from django.contrib.admin import ModelAdmin from django.contrib.gis.admin.widgets import OpenLayersWidget -from django.contrib.gis.gdal import HAS_GDAL, OGRGeomType from django.contrib.gis.db import models +from django.contrib.gis.gdal import HAS_GDAL, OGRGeomType class GeoModelAdmin(ModelAdmin): diff --git a/django/contrib/gis/admin/widgets.py b/django/contrib/gis/admin/widgets.py index c85e7a6125..52b624a112 100644 --- a/django/contrib/gis/admin/widgets.py +++ b/django/contrib/gis/admin/widgets.py @@ -1,12 +1,10 @@ import logging +from django.contrib.gis.gdal import GDALException +from django.contrib.gis.geos import GEOSException, GEOSGeometry from django.forms.widgets import Textarea from django.template import loader -from django.utils import six -from django.utils import translation - -from django.contrib.gis.gdal import GDALException -from django.contrib.gis.geos import GEOSGeometry, GEOSException +from django.utils import six, translation # Creating a template context that contains Django settings # values needed by admin map templates. diff --git a/django/contrib/gis/apps.py b/django/contrib/gis/apps.py index 6ca51e9b42..919272b064 100644 --- a/django/contrib/gis/apps.py +++ b/django/contrib/gis/apps.py @@ -1,6 +1,5 @@ from django.apps import AppConfig from django.core import serializers - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/gis/db/backends/mysql/base.py b/django/contrib/gis/db/backends/mysql/base.py index afeed42203..d252b38804 100644 --- a/django/contrib/gis/db/backends/mysql/base.py +++ b/django/contrib/gis/db/backends/mysql/base.py @@ -1,4 +1,5 @@ -from django.db.backends.mysql.base import DatabaseWrapper as MySQLDatabaseWrapper +from django.db.backends.mysql.base import \ + DatabaseWrapper as MySQLDatabaseWrapper from .features import DatabaseFeatures from .introspection import MySQLIntrospection diff --git a/django/contrib/gis/db/backends/mysql/features.py b/django/contrib/gis/db/backends/mysql/features.py index 02c611b292..a547ec967a 100644 --- a/django/contrib/gis/db/backends/mysql/features.py +++ b/django/contrib/gis/db/backends/mysql/features.py @@ -1,5 +1,6 @@ from django.contrib.gis.db.backends.base.features import BaseSpatialFeatures -from django.db.backends.mysql.features import DatabaseFeatures as MySQLDatabaseFeatures +from django.db.backends.mysql.features import \ + DatabaseFeatures as MySQLDatabaseFeatures class DatabaseFeatures(BaseSpatialFeatures, MySQLDatabaseFeatures): diff --git a/django/contrib/gis/db/backends/mysql/operations.py b/django/contrib/gis/db/backends/mysql/operations.py index 9d0d2a9928..130c103ac2 100644 --- a/django/contrib/gis/db/backends/mysql/operations.py +++ b/django/contrib/gis/db/backends/mysql/operations.py @@ -1,5 +1,6 @@ from django.contrib.gis.db.backends.base.adapter import WKTAdapter -from django.contrib.gis.db.backends.base.operations import BaseSpatialOperations +from django.contrib.gis.db.backends.base.operations import \ + BaseSpatialOperations from django.contrib.gis.db.backends.utils import SpatialOperator from django.contrib.gis.db.models import aggregates from django.db.backends.mysql.operations import DatabaseOperations diff --git a/django/contrib/gis/db/backends/mysql/schema.py b/django/contrib/gis/db/backends/mysql/schema.py index 4d708686ba..e60f3d2fcc 100644 --- a/django/contrib/gis/db/backends/mysql/schema.py +++ b/django/contrib/gis/db/backends/mysql/schema.py @@ -1,8 +1,8 @@ import logging from django.contrib.gis.db.models.fields import GeometryField -from django.db.utils import OperationalError from django.db.backends.mysql.schema import DatabaseSchemaEditor +from django.db.utils import OperationalError logger = logging.getLogger('django.contrib.gis') diff --git a/django/contrib/gis/db/backends/oracle/adapter.py b/django/contrib/gis/db/backends/oracle/adapter.py index e26603e531..60961af817 100644 --- a/django/contrib/gis/db/backends/oracle/adapter.py +++ b/django/contrib/gis/db/backends/oracle/adapter.py @@ -1,4 +1,5 @@ from cx_Oracle import CLOB + from django.contrib.gis.db.backends.base.adapter import WKTAdapter diff --git a/django/contrib/gis/db/backends/oracle/base.py b/django/contrib/gis/db/backends/oracle/base.py index d20ac2a9e7..167b61d01b 100644 --- a/django/contrib/gis/db/backends/oracle/base.py +++ b/django/contrib/gis/db/backends/oracle/base.py @@ -1,4 +1,5 @@ -from django.db.backends.oracle.base import DatabaseWrapper as OracleDatabaseWrapper +from django.db.backends.oracle.base import \ + DatabaseWrapper as OracleDatabaseWrapper from .features import DatabaseFeatures from .introspection import OracleIntrospection diff --git a/django/contrib/gis/db/backends/oracle/features.py b/django/contrib/gis/db/backends/oracle/features.py index ef56ec627d..df0aedcf32 100644 --- a/django/contrib/gis/db/backends/oracle/features.py +++ b/django/contrib/gis/db/backends/oracle/features.py @@ -1,5 +1,6 @@ from django.contrib.gis.db.backends.base.features import BaseSpatialFeatures -from django.db.backends.oracle.features import DatabaseFeatures as OracleDatabaseFeatures +from django.db.backends.oracle.features import \ + DatabaseFeatures as OracleDatabaseFeatures class DatabaseFeatures(BaseSpatialFeatures, OracleDatabaseFeatures): diff --git a/django/contrib/gis/db/backends/oracle/introspection.py b/django/contrib/gis/db/backends/oracle/introspection.py index 53a449bb5a..764ce7d243 100644 --- a/django/contrib/gis/db/backends/oracle/introspection.py +++ b/django/contrib/gis/db/backends/oracle/introspection.py @@ -1,5 +1,7 @@ -import cx_Oracle import sys + +import cx_Oracle + from django.db.backends.oracle.introspection import DatabaseIntrospection from django.utils import six diff --git a/django/contrib/gis/db/backends/oracle/operations.py b/django/contrib/gis/db/backends/oracle/operations.py index 277126a77e..9d40505632 100644 --- a/django/contrib/gis/db/backends/oracle/operations.py +++ b/django/contrib/gis/db/backends/oracle/operations.py @@ -9,7 +9,8 @@ """ import re -from django.contrib.gis.db.backends.base.operations import BaseSpatialOperations +from django.contrib.gis.db.backends.base.operations import \ + BaseSpatialOperations from django.contrib.gis.db.backends.oracle.adapter import OracleSpatialAdapter from django.contrib.gis.db.backends.utils import SpatialOperator from django.contrib.gis.db.models import aggregates @@ -19,7 +20,6 @@ from django.db.backends.oracle.base import Database from django.db.backends.oracle.operations import DatabaseOperations from django.utils import six - DEFAULT_TOLERANCE = '0.05' diff --git a/django/contrib/gis/db/backends/postgis/base.py b/django/contrib/gis/db/backends/postgis/base.py index 083f76d0a8..8d17b16c12 100644 --- a/django/contrib/gis/db/backends/postgis/base.py +++ b/django/contrib/gis/db/backends/postgis/base.py @@ -1,8 +1,7 @@ from django.conf import settings from django.db.backends.base.base import NO_DB_ALIAS -from django.db.backends.postgresql_psycopg2.base import ( - DatabaseWrapper as Psycopg2DatabaseWrapper, -) +from django.db.backends.postgresql_psycopg2.base import \ + DatabaseWrapper as Psycopg2DatabaseWrapper from django.utils.functional import cached_property from .creation import PostGISCreation diff --git a/django/contrib/gis/db/backends/postgis/features.py b/django/contrib/gis/db/backends/postgis/features.py index dfa225c6e7..1cc15bde38 100644 --- a/django/contrib/gis/db/backends/postgis/features.py +++ b/django/contrib/gis/db/backends/postgis/features.py @@ -1,7 +1,6 @@ from django.contrib.gis.db.backends.base.features import BaseSpatialFeatures -from django.db.backends.postgresql_psycopg2.features import ( - DatabaseFeatures as Psycopg2DatabaseFeatures, -) +from django.db.backends.postgresql_psycopg2.features import \ + DatabaseFeatures as Psycopg2DatabaseFeatures class DatabaseFeatures(BaseSpatialFeatures, Psycopg2DatabaseFeatures): diff --git a/django/contrib/gis/db/backends/postgis/introspection.py b/django/contrib/gis/db/backends/postgis/introspection.py index 631844a030..5e08b2f9ce 100644 --- a/django/contrib/gis/db/backends/postgis/introspection.py +++ b/django/contrib/gis/db/backends/postgis/introspection.py @@ -1,5 +1,6 @@ -from django.db.backends.postgresql_psycopg2.introspection import DatabaseIntrospection from django.contrib.gis.gdal import OGRGeomType +from django.db.backends.postgresql_psycopg2.introspection import \ + DatabaseIntrospection class GeoIntrospectionError(Exception): diff --git a/django/contrib/gis/db/backends/postgis/models.py b/django/contrib/gis/db/backends/postgis/models.py index a438ffcc20..83b254cb39 100644 --- a/django/contrib/gis/db/backends/postgis/models.py +++ b/django/contrib/gis/db/backends/postgis/models.py @@ -1,8 +1,8 @@ """ The GeometryColumns and SpatialRefSys models for the PostGIS backend. """ -from django.db import models from django.contrib.gis.db.backends.base.models import SpatialRefSysMixin +from django.db import models from django.utils.encoding import python_2_unicode_compatible diff --git a/django/contrib/gis/db/backends/postgis/operations.py b/django/contrib/gis/db/backends/postgis/operations.py index 2255897f2f..e0af0c1ecb 100644 --- a/django/contrib/gis/db/backends/postgis/operations.py +++ b/django/contrib/gis/db/backends/postgis/operations.py @@ -1,13 +1,15 @@ import re from django.conf import settings -from django.contrib.gis.db.backends.base.operations import BaseSpatialOperations +from django.contrib.gis.db.backends.base.operations import \ + BaseSpatialOperations from django.contrib.gis.db.backends.postgis.adapter import PostGISAdapter from django.contrib.gis.db.backends.utils import SpatialOperator from django.contrib.gis.geometry.backend import Geometry from django.contrib.gis.measure import Distance from django.core.exceptions import ImproperlyConfigured -from django.db.backends.postgresql_psycopg2.operations import DatabaseOperations +from django.db.backends.postgresql_psycopg2.operations import \ + DatabaseOperations from django.db.utils import ProgrammingError from django.utils.functional import cached_property diff --git a/django/contrib/gis/db/backends/spatialite/adapter.py b/django/contrib/gis/db/backends/spatialite/adapter.py index 70ad900046..c1184f4685 100644 --- a/django/contrib/gis/db/backends/spatialite/adapter.py +++ b/django/contrib/gis/db/backends/spatialite/adapter.py @@ -1,5 +1,5 @@ -from django.db.backends.sqlite3.base import Database from django.contrib.gis.db.backends.base.adapter import WKTAdapter +from django.db.backends.sqlite3.base import Database class SpatiaLiteAdapter(WKTAdapter): diff --git a/django/contrib/gis/db/backends/spatialite/features.py b/django/contrib/gis/db/backends/spatialite/features.py index 4ab382e00b..613087b51e 100644 --- a/django/contrib/gis/db/backends/spatialite/features.py +++ b/django/contrib/gis/db/backends/spatialite/features.py @@ -1,5 +1,6 @@ from django.contrib.gis.db.backends.base.features import BaseSpatialFeatures -from django.db.backends.sqlite3.features import DatabaseFeatures as SQLiteDatabaseFeatures +from django.db.backends.sqlite3.features import \ + DatabaseFeatures as SQLiteDatabaseFeatures from django.utils.functional import cached_property diff --git a/django/contrib/gis/db/backends/spatialite/introspection.py b/django/contrib/gis/db/backends/spatialite/introspection.py index b81a2e4089..c1ed7629b9 100644 --- a/django/contrib/gis/db/backends/spatialite/introspection.py +++ b/django/contrib/gis/db/backends/spatialite/introspection.py @@ -1,5 +1,7 @@ from django.contrib.gis.gdal import OGRGeomType -from django.db.backends.sqlite3.introspection import DatabaseIntrospection, FlexibleFieldLookupDict +from django.db.backends.sqlite3.introspection import ( + DatabaseIntrospection, FlexibleFieldLookupDict, +) from django.utils import six diff --git a/django/contrib/gis/db/backends/spatialite/models.py b/django/contrib/gis/db/backends/spatialite/models.py index a1f0f2d44b..d1b58b7582 100644 --- a/django/contrib/gis/db/backends/spatialite/models.py +++ b/django/contrib/gis/db/backends/spatialite/models.py @@ -1,10 +1,10 @@ """ The GeometryColumns and SpatialRefSys models for the SpatiaLite backend. """ -from django.db import connection, models -from django.db.backends.signals import connection_created from django.contrib.gis.db.backends.base.models import SpatialRefSysMixin from django.contrib.gis.db.backends.spatialite.base import DatabaseWrapper +from django.db import connection, models +from django.db.backends.signals import connection_created from django.utils.encoding import python_2_unicode_compatible diff --git a/django/contrib/gis/db/backends/spatialite/operations.py b/django/contrib/gis/db/backends/spatialite/operations.py index c4700e7aef..73adb02b05 100644 --- a/django/contrib/gis/db/backends/spatialite/operations.py +++ b/django/contrib/gis/db/backends/spatialite/operations.py @@ -1,9 +1,10 @@ import re import sys -from django.contrib.gis.db.backends.base.operations import BaseSpatialOperations -from django.contrib.gis.db.backends.utils import SpatialOperator +from django.contrib.gis.db.backends.base.operations import \ + BaseSpatialOperations from django.contrib.gis.db.backends.spatialite.adapter import SpatiaLiteAdapter +from django.contrib.gis.db.backends.utils import SpatialOperator from django.contrib.gis.db.models import aggregates from django.contrib.gis.geometry.backend import Geometry from django.contrib.gis.measure import Distance diff --git a/django/contrib/gis/db/backends/spatialite/schema.py b/django/contrib/gis/db/backends/spatialite/schema.py index e067bfc03b..bdf2b93740 100644 --- a/django/contrib/gis/db/backends/spatialite/schema.py +++ b/django/contrib/gis/db/backends/spatialite/schema.py @@ -1,5 +1,5 @@ -from django.db.utils import DatabaseError from django.db.backends.sqlite3.schema import DatabaseSchemaEditor +from django.db.utils import DatabaseError class SpatialiteSchemaEditor(DatabaseSchemaEditor): diff --git a/django/contrib/gis/db/models/aggregates.py b/django/contrib/gis/db/models/aggregates.py index 42198d9287..60954951e6 100644 --- a/django/contrib/gis/db/models/aggregates.py +++ b/django/contrib/gis/db/models/aggregates.py @@ -1,5 +1,5 @@ -from django.db.models.aggregates import Aggregate from django.contrib.gis.db.models.fields import ExtentField +from django.db.models.aggregates import Aggregate __all__ = ['Collect', 'Extent', 'Extent3D', 'MakeLine', 'Union'] diff --git a/django/contrib/gis/db/models/fields.py b/django/contrib/gis/db/models/fields.py index 5e70697a2b..af6d3da972 100644 --- a/django/contrib/gis/db/models/fields.py +++ b/django/contrib/gis/db/models/fields.py @@ -1,11 +1,11 @@ -from django.db.models.fields import Field -from django.db.models.expressions import ExpressionNode -from django.utils.translation import ugettext_lazy as _ from django.contrib.gis import forms from django.contrib.gis.db.models.lookups import gis_lookups from django.contrib.gis.db.models.proxy import GeometryProxy from django.contrib.gis.geometry.backend import Geometry, GeometryException +from django.db.models.expressions import ExpressionNode +from django.db.models.fields import Field from django.utils import six +from django.utils.translation import ugettext_lazy as _ # Local cache of the spatial_ref_sys table, which holds SRID data for each # spatial database alias. This cache exists so that the database isn't queried diff --git a/django/contrib/gis/db/models/lookups.py b/django/contrib/gis/db/models/lookups.py index eb64eff6c7..b739e468ce 100644 --- a/django/contrib/gis/db/models/lookups.py +++ b/django/contrib/gis/db/models/lookups.py @@ -1,10 +1,11 @@ from __future__ import unicode_literals + import re from django.core.exceptions import FieldDoesNotExist from django.db.models.constants import LOOKUP_SEP +from django.db.models.expressions import Col, ExpressionNode from django.db.models.lookups import Lookup -from django.db.models.expressions import ExpressionNode, Col from django.utils import six gis_lookups = {} diff --git a/django/contrib/gis/db/models/manager.py b/django/contrib/gis/db/models/manager.py index 609bdf3637..22d009a972 100644 --- a/django/contrib/gis/db/models/manager.py +++ b/django/contrib/gis/db/models/manager.py @@ -1,5 +1,5 @@ -from django.db.models.manager import Manager from django.contrib.gis.db.models.query import GeoQuerySet +from django.db.models.manager import Manager class GeoManager(Manager.from_queryset(GeoQuerySet)): diff --git a/django/contrib/gis/db/models/query.py b/django/contrib/gis/db/models/query.py index c36381ecaa..998acff79c 100644 --- a/django/contrib/gis/db/models/query.py +++ b/django/contrib/gis/db/models/query.py @@ -1,13 +1,8 @@ import warnings -from django.db import connections -from django.db.models.expressions import RawSQL -from django.db.models.fields import Field -from django.db.models.query import QuerySet - from django.contrib.gis.db.models import aggregates from django.contrib.gis.db.models.fields import ( - get_srid_info, LineStringField, GeometryField, PointField, + GeometryField, LineStringField, PointField, get_srid_info, ) from django.contrib.gis.db.models.lookups import GISLookup from django.contrib.gis.db.models.sql import ( @@ -15,7 +10,10 @@ from django.contrib.gis.db.models.sql import ( ) from django.contrib.gis.geometry.backend import Geometry from django.contrib.gis.measure import Area, Distance - +from django.db import connections +from django.db.models.expressions import RawSQL +from django.db.models.fields import Field +from django.db.models.query import QuerySet from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning diff --git a/django/contrib/gis/db/models/sql/aggregates.py b/django/contrib/gis/db/models/sql/aggregates.py index fe0e396f2f..b83bafda70 100644 --- a/django/contrib/gis/db/models/sql/aggregates.py +++ b/django/contrib/gis/db/models/sql/aggregates.py @@ -1,7 +1,6 @@ from django.db.models.sql import aggregates from django.db.models.sql.aggregates import * # NOQA - __all__ = ['Collect', 'Extent', 'Extent3D', 'MakeLine', 'Union'] + aggregates.__all__ diff --git a/django/contrib/gis/forms/fields.py b/django/contrib/gis/forms/fields.py index af481b8be7..4ae56de88b 100644 --- a/django/contrib/gis/forms/fields.py +++ b/django/contrib/gis/forms/fields.py @@ -1,11 +1,9 @@ from __future__ import unicode_literals from django import forms +from django.contrib.gis.geos import GEOSException, GEOSGeometry from django.utils.translation import ugettext_lazy as _ -# While this couples the geographic forms to the GEOS library, -# it decouples from database (by not importing SpatialBackend). -from django.contrib.gis.geos import GEOSException, GEOSGeometry from .widgets import OpenLayersWidget diff --git a/django/contrib/gis/forms/widgets.py b/django/contrib/gis/forms/widgets.py index 26cc0565b0..37c9be8fbc 100644 --- a/django/contrib/gis/forms/widgets.py +++ b/django/contrib/gis/forms/widgets.py @@ -4,11 +4,10 @@ import logging from django.conf import settings from django.contrib.gis import gdal -from django.contrib.gis.geos import GEOSGeometry, GEOSException +from django.contrib.gis.geos import GEOSException, GEOSGeometry from django.forms.widgets import Widget from django.template import loader -from django.utils import six -from django.utils import translation +from django.utils import six, translation logger = logging.getLogger('django.contrib.gis') diff --git a/django/contrib/gis/gdal/datasource.py b/django/contrib/gis/gdal/datasource.py index ec9ab8c2a4..d574839cf4 100644 --- a/django/contrib/gis/gdal/datasource.py +++ b/django/contrib/gis/gdal/datasource.py @@ -33,20 +33,15 @@ # OFTReal returns floats, all else returns string. val = field.value """ -# ctypes prerequisites. from ctypes import byref -# The GDAL C library, OGR exceptions, and the Layer object. from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.driver import Driver from django.contrib.gis.gdal.error import GDALException, OGRIndexError from django.contrib.gis.gdal.layer import Layer - -# Getting the ctypes prototypes for the DataSource. from django.contrib.gis.gdal.prototypes import ds as capi - -from django.utils.encoding import force_bytes, force_text from django.utils import six +from django.utils.encoding import force_bytes, force_text from django.utils.six.moves import range diff --git a/django/contrib/gis/gdal/driver.py b/django/contrib/gis/gdal/driver.py index 7628e360b9..51d0c9fe33 100644 --- a/django/contrib/gis/gdal/driver.py +++ b/django/contrib/gis/gdal/driver.py @@ -1,8 +1,8 @@ from ctypes import c_void_p + from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.error import GDALException from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi - from django.utils import six from django.utils.encoding import force_bytes, force_text diff --git a/django/contrib/gis/gdal/envelope.py b/django/contrib/gis/gdal/envelope.py index 59d48b7bff..ae9ba434e7 100644 --- a/django/contrib/gis/gdal/envelope.py +++ b/django/contrib/gis/gdal/envelope.py @@ -11,6 +11,7 @@ Lower left (min_x, min_y) o----------+ """ from ctypes import Structure, c_double + from django.contrib.gis.gdal.error import GDALException diff --git a/django/contrib/gis/gdal/feature.py b/django/contrib/gis/gdal/feature.py index da86c70244..ce46ae5209 100644 --- a/django/contrib/gis/gdal/feature.py +++ b/django/contrib/gis/gdal/feature.py @@ -1,14 +1,10 @@ -# The GDAL C library, OGR exception, and the Field object from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.error import GDALException, OGRIndexError from django.contrib.gis.gdal.field import Field from django.contrib.gis.gdal.geometries import OGRGeometry, OGRGeomType - -# ctypes function prototypes from django.contrib.gis.gdal.prototypes import ds as capi, geom as geom_api - -from django.utils.encoding import force_bytes, force_text from django.utils import six +from django.utils.encoding import force_bytes, force_text from django.utils.six.moves import range diff --git a/django/contrib/gis/gdal/field.py b/django/contrib/gis/gdal/field.py index 487c29ea42..599ee60bf3 100644 --- a/django/contrib/gis/gdal/field.py +++ b/django/contrib/gis/gdal/field.py @@ -1,5 +1,6 @@ from ctypes import byref, c_int from datetime import date, datetime, time + from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.error import GDALException from django.contrib.gis.gdal.prototypes import ds as capi diff --git a/django/contrib/gis/gdal/geometries.py b/django/contrib/gis/gdal/geometries.py index d00aa1a785..e9abfbf439 100644 --- a/django/contrib/gis/gdal/geometries.py +++ b/django/contrib/gis/gdal/geometries.py @@ -38,33 +38,27 @@ >>> print(gt1 == 3, gt1 == 'Polygon') # Equivalence works w/non-OGRGeomType objects True True """ -# Python library requisites. import sys from binascii import a2b_hex, b2a_hex -from ctypes import byref, string_at, c_char_p, c_double, c_ubyte, c_void_p +from ctypes import byref, c_char_p, c_double, c_ubyte, c_void_p, string_at -# Getting GDAL prerequisites from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.envelope import Envelope, OGREnvelope -from django.contrib.gis.gdal.error import GDALException, OGRIndexError, SRSException +from django.contrib.gis.gdal.error import ( + GDALException, OGRIndexError, SRSException, +) from django.contrib.gis.gdal.geomtype import OGRGeomType -from django.contrib.gis.gdal.srs import SpatialReference, CoordTransform - -# Getting the ctypes prototype functions that interface w/the GDAL C library. from django.contrib.gis.gdal.prototypes import geom as capi, srs as srs_api - -# For recognizing geometry input. -from django.contrib.gis.geometry.regex import hex_regex, wkt_regex, json_regex - +from django.contrib.gis.gdal.srs import CoordTransform, SpatialReference +from django.contrib.gis.geometry.regex import hex_regex, json_regex, wkt_regex from django.utils import six from django.utils.six.moves import range + # For more information, see the OGR C API source code: # http://www.gdal.org/ogr/ogr__api_8h.html # # The OGR_G_* routines are relevant here. - - class OGRGeometry(GDALBase): "Generally encapsulates an OGR geometry." diff --git a/django/contrib/gis/gdal/geomtype.py b/django/contrib/gis/gdal/geomtype.py index 9a06bad789..abb184e2f9 100644 --- a/django/contrib/gis/gdal/geomtype.py +++ b/django/contrib/gis/gdal/geomtype.py @@ -1,5 +1,4 @@ from django.contrib.gis.gdal.error import GDALException - from django.utils import six diff --git a/django/contrib/gis/gdal/layer.py b/django/contrib/gis/gdal/layer.py index e2627a2da9..640d2ad938 100644 --- a/django/contrib/gis/gdal/layer.py +++ b/django/contrib/gis/gdal/layer.py @@ -1,21 +1,20 @@ -# Needed ctypes routines -from ctypes import c_double, byref +from ctypes import byref, c_double -# Other GDAL imports. from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.envelope import Envelope, OGREnvelope -from django.contrib.gis.gdal.error import GDALException, OGRIndexError, SRSException +from django.contrib.gis.gdal.error import ( + GDALException, OGRIndexError, SRSException, +) from django.contrib.gis.gdal.feature import Feature from django.contrib.gis.gdal.field import OGRFieldTypes -from django.contrib.gis.gdal.geomtype import OGRGeomType from django.contrib.gis.gdal.geometries import OGRGeometry +from django.contrib.gis.gdal.geomtype import OGRGeomType +from django.contrib.gis.gdal.prototypes import ( + ds as capi, geom as geom_api, srs as srs_api, +) from django.contrib.gis.gdal.srs import SpatialReference - -# GDAL ctypes function prototypes. -from django.contrib.gis.gdal.prototypes import ds as capi, geom as geom_api, srs as srs_api - -from django.utils.encoding import force_bytes, force_text from django.utils import six +from django.utils.encoding import force_bytes, force_text from django.utils.six.moves import range diff --git a/django/contrib/gis/gdal/libgdal.py b/django/contrib/gis/gdal/libgdal.py index 280ae2ef5b..4f8224c19f 100644 --- a/django/contrib/gis/gdal/libgdal.py +++ b/django/contrib/gis/gdal/libgdal.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import logging import os import re -from ctypes import c_char_p, c_int, CDLL, CFUNCTYPE +from ctypes import CDLL, CFUNCTYPE, c_char_p, c_int from ctypes.util import find_library from django.contrib.gis.gdal.error import GDALException diff --git a/django/contrib/gis/gdal/prototypes/ds.py b/django/contrib/gis/gdal/prototypes/ds.py index 69257a1140..2f79f7316e 100644 --- a/django/contrib/gis/gdal/prototypes/ds.py +++ b/django/contrib/gis/gdal/prototypes/ds.py @@ -3,11 +3,14 @@ related data structures. OGR_Dr_*, OGR_DS_*, OGR_L_*, OGR_F_*, OGR_Fld_* routines are relevant here. """ -from ctypes import c_char_p, c_double, c_int, c_long, c_void_p, POINTER +from ctypes import POINTER, c_char_p, c_double, c_int, c_long, c_void_p + from django.contrib.gis.gdal.envelope import OGREnvelope from django.contrib.gis.gdal.libgdal import lgdal -from django.contrib.gis.gdal.prototypes.generation import (const_string_output, - double_output, geom_output, int_output, srs_output, void_output, voidptr_output) +from django.contrib.gis.gdal.prototypes.generation import ( + const_string_output, double_output, geom_output, int_output, srs_output, + void_output, voidptr_output, +) c_int_p = POINTER(c_int) # shortcut type diff --git a/django/contrib/gis/gdal/prototypes/errcheck.py b/django/contrib/gis/gdal/prototypes/errcheck.py index d6c5ad17eb..edc40529ed 100644 --- a/django/contrib/gis/gdal/prototypes/errcheck.py +++ b/django/contrib/gis/gdal/prototypes/errcheck.py @@ -4,7 +4,9 @@ """ from ctypes import c_void_p, string_at -from django.contrib.gis.gdal.error import check_err, GDALException, SRSException +from django.contrib.gis.gdal.error import ( + GDALException, SRSException, check_err, +) from django.contrib.gis.gdal.libgdal import lgdal from django.utils import six diff --git a/django/contrib/gis/gdal/prototypes/generation.py b/django/contrib/gis/gdal/prototypes/generation.py index 79b7b47825..39bf621796 100644 --- a/django/contrib/gis/gdal/prototypes/generation.py +++ b/django/contrib/gis/gdal/prototypes/generation.py @@ -4,9 +4,11 @@ """ from ctypes import c_char_p, c_double, c_int, c_void_p from functools import partial + from django.contrib.gis.gdal.prototypes.errcheck import ( - check_arg_errcode, check_errcode, check_geom, check_geom_offset, - check_pointer, check_srs, check_str_arg, check_string, check_const_string) + check_arg_errcode, check_const_string, check_errcode, check_geom, + check_geom_offset, check_pointer, check_srs, check_str_arg, check_string, +) class gdal_char_p(c_char_p): diff --git a/django/contrib/gis/gdal/prototypes/geom.py b/django/contrib/gis/gdal/prototypes/geom.py index 22ff1ed833..6d6412c546 100644 --- a/django/contrib/gis/gdal/prototypes/geom.py +++ b/django/contrib/gis/gdal/prototypes/geom.py @@ -1,9 +1,12 @@ -from ctypes import c_char_p, c_double, c_int, c_void_p, POINTER +from ctypes import POINTER, c_char_p, c_double, c_int, c_void_p + from django.contrib.gis.gdal.envelope import OGREnvelope from django.contrib.gis.gdal.libgdal import lgdal from django.contrib.gis.gdal.prototypes.errcheck import check_envelope -from django.contrib.gis.gdal.prototypes.generation import (const_string_output, - double_output, geom_output, int_output, srs_output, string_output, void_output) +from django.contrib.gis.gdal.prototypes.generation import ( + const_string_output, double_output, geom_output, int_output, srs_output, + string_output, void_output, +) ### Generation routines specific to this module ### diff --git a/django/contrib/gis/gdal/prototypes/raster.py b/django/contrib/gis/gdal/prototypes/raster.py index db32ee1e0b..5e07c76955 100644 --- a/django/contrib/gis/gdal/prototypes/raster.py +++ b/django/contrib/gis/gdal/prototypes/raster.py @@ -2,12 +2,14 @@ This module houses the ctypes function prototypes for GDAL DataSource (raster) related data structures. """ -from ctypes import c_char_p, c_double, c_int, c_void_p, POINTER +from ctypes import POINTER, c_char_p, c_double, c_int, c_void_p from functools import partial from django.contrib.gis.gdal.libgdal import lgdal -from django.contrib.gis.gdal.prototypes.generation import (const_string_output, - double_output, int_output, void_output, voidptr_output) +from django.contrib.gis.gdal.prototypes.generation import ( + const_string_output, double_output, int_output, void_output, + voidptr_output, +) # For more detail about c function names and definitions see # http://gdal.org/gdal_8h.html diff --git a/django/contrib/gis/gdal/prototypes/srs.py b/django/contrib/gis/gdal/prototypes/srs.py index 71ec1ed603..7ab22024ed 100644 --- a/django/contrib/gis/gdal/prototypes/srs.py +++ b/django/contrib/gis/gdal/prototypes/srs.py @@ -1,7 +1,10 @@ -from ctypes import c_char_p, c_int, c_void_p, POINTER +from ctypes import POINTER, c_char_p, c_int, c_void_p + from django.contrib.gis.gdal.libgdal import lgdal, std_call -from django.contrib.gis.gdal.prototypes.generation import (const_string_output, - double_output, int_output, srs_output, string_output, void_output) +from django.contrib.gis.gdal.prototypes.generation import ( + const_string_output, double_output, int_output, srs_output, string_output, + void_output, +) ## Shortcut generation for routines with known parameters. diff --git a/django/contrib/gis/gdal/raster/source.py b/django/contrib/gis/gdal/raster/source.py index e89e70d2e8..bb72db49ee 100644 --- a/django/contrib/gis/gdal/raster/source.py +++ b/django/contrib/gis/gdal/raster/source.py @@ -1,5 +1,5 @@ -from ctypes import addressof, byref, c_double import os +from ctypes import addressof, byref, c_double from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.driver import Driver @@ -8,10 +8,11 @@ from django.contrib.gis.gdal.prototypes import raster as capi from django.contrib.gis.gdal.raster.band import GDALBand from django.contrib.gis.gdal.srs import SpatialReference, SRSException from django.utils import six -from django.utils.six.moves import range -from django.utils.encoding import (force_bytes, force_text, - python_2_unicode_compatible) +from django.utils.encoding import ( + force_bytes, force_text, python_2_unicode_compatible, +) from django.utils.functional import cached_property +from django.utils.six.moves import range class TransformPoint(list): diff --git a/django/contrib/gis/gdal/srs.py b/django/contrib/gis/gdal/srs.py index 8749d079b3..265ea000c2 100644 --- a/django/contrib/gis/gdal/srs.py +++ b/django/contrib/gis/gdal/srs.py @@ -28,16 +28,13 @@ """ from ctypes import byref, c_char_p, c_int -# Getting the error checking routine and exceptions from django.contrib.gis.gdal.base import GDALBase from django.contrib.gis.gdal.error import SRSException from django.contrib.gis.gdal.prototypes import srs as capi - from django.utils import six from django.utils.encoding import force_bytes, force_text -#### Spatial Reference class. #### class SpatialReference(GDALBase): """ A wrapper for the OGRSpatialReference object. According to the GDAL Web site, diff --git a/django/contrib/gis/gdal/tests/test_ds.py b/django/contrib/gis/gdal/tests/test_ds.py index 04b1c0f982..ef62c160cc 100644 --- a/django/contrib/gis/gdal/tests/test_ds.py +++ b/django/contrib/gis/gdal/tests/test_ds.py @@ -3,7 +3,9 @@ import unittest from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.geometry.test_data import get_ds_file, TestDS, TEST_DATA +from django.contrib.gis.geometry.test_data import ( + TEST_DATA, TestDS, get_ds_file, +) if HAS_GDAL: from django.contrib.gis.gdal import DataSource, Envelope, OGRGeometry, GDALException, OGRIndexError, GDAL_VERSION diff --git a/django/contrib/gis/gdal/tests/test_geom.py b/django/contrib/gis/gdal/tests/test_geom.py index 4f422c06f6..5696223554 100644 --- a/django/contrib/gis/gdal/tests/test_geom.py +++ b/django/contrib/gis/gdal/tests/test_geom.py @@ -1,16 +1,18 @@ import json -from binascii import b2a_hex -try: - from django.utils.six.moves import cPickle as pickle -except ImportError: - import pickle import unittest +from binascii import b2a_hex from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL from django.contrib.gis.geometry.test_data import TestDataMixin from django.utils.six.moves import range +try: + from django.utils.six.moves import cPickle as pickle +except ImportError: + import pickle + + if HAS_GDAL: from django.contrib.gis.gdal import (OGRGeometry, OGRGeomType, GDALException, OGRIndexError, SpatialReference, CoordTransform, diff --git a/django/contrib/gis/geoip/base.py b/django/contrib/gis/geoip/base.py index 9409019d94..a2787af471 100644 --- a/django/contrib/gis/geoip/base.py +++ b/django/contrib/gis/geoip/base.py @@ -2,14 +2,14 @@ import os import re from ctypes import c_char_p -from django.core.validators import ipv4_re from django.contrib.gis.geoip.libgeoip import GEOIP_SETTINGS from django.contrib.gis.geoip.prototypes import ( - GeoIP_open, GeoIP_delete, GeoIP_database_info, - GeoIP_lib_version, GeoIP_record_by_addr, GeoIP_record_by_name, GeoIP_country_code_by_addr, GeoIP_country_code_by_name, - GeoIP_country_name_by_addr, GeoIP_country_name_by_name) - + GeoIP_country_name_by_addr, GeoIP_country_name_by_name, + GeoIP_database_info, GeoIP_delete, GeoIP_lib_version, GeoIP_open, + GeoIP_record_by_addr, GeoIP_record_by_name, +) +from django.core.validators import ipv4_re from django.utils import six from django.utils.encoding import force_bytes diff --git a/django/contrib/gis/geoip/libgeoip.py b/django/contrib/gis/geoip/libgeoip.py index cc4d92c7d0..a6023ff229 100644 --- a/django/contrib/gis/geoip/libgeoip.py +++ b/django/contrib/gis/geoip/libgeoip.py @@ -1,6 +1,7 @@ import os from ctypes import CDLL from ctypes.util import find_library + from django.conf import settings # Creating the settings dictionary with any settings, if needed. diff --git a/django/contrib/gis/geoip/prototypes.py b/django/contrib/gis/geoip/prototypes.py index 22c17f006f..6b47313cfe 100644 --- a/django/contrib/gis/geoip/prototypes.py +++ b/django/contrib/gis/geoip/prototypes.py @@ -1,5 +1,6 @@ -from ctypes import c_char_p, c_float, c_int, string_at, Structure, POINTER -from django.contrib.gis.geoip.libgeoip import lgeoip, free +from ctypes import POINTER, Structure, c_char_p, c_float, c_int, string_at + +from django.contrib.gis.geoip.libgeoip import free, lgeoip #### GeoIP C Structure definitions #### diff --git a/django/contrib/gis/geoip/tests.py b/django/contrib/gis/geoip/tests.py index 06558e0093..8d1309a671 100644 --- a/django/contrib/gis/geoip/tests.py +++ b/django/contrib/gis/geoip/tests.py @@ -6,9 +6,8 @@ import unittest from unittest import skipUnless from django.conf import settings -from django.contrib.gis.geos import HAS_GEOS from django.contrib.gis.geoip import HAS_GEOIP - +from django.contrib.gis.geos import HAS_GEOS from django.utils import six if HAS_GEOIP: diff --git a/django/contrib/gis/geometry/backend/geos.py b/django/contrib/gis/geometry/backend/geos.py index b4d48dbc98..02ca3dd29e 100644 --- a/django/contrib/gis/geometry/backend/geos.py +++ b/django/contrib/gis/geometry/backend/geos.py @@ -1,4 +1,5 @@ from django.contrib.gis.geos import ( - GEOSGeometry as Geometry, GEOSException as GeometryException) + GEOSException as GeometryException, GEOSGeometry as Geometry, +) __all__ = ['Geometry', 'GeometryException'] diff --git a/django/contrib/gis/geometry/test_data.py b/django/contrib/gis/geometry/test_data.py index d6a8bf8263..58d82dbdcc 100644 --- a/django/contrib/gis/geometry/test_data.py +++ b/django/contrib/gis/geometry/test_data.py @@ -10,7 +10,6 @@ from django.utils import six from django.utils._os import upath from django.utils.functional import cached_property - # Path where reference test data is located. TEST_DATA = os.path.join(os.path.dirname(upath(gis.__file__)), 'tests', 'data') diff --git a/django/contrib/gis/geos/collections.py b/django/contrib/gis/geos/collections.py index 83f57cbd18..84b872602d 100644 --- a/django/contrib/gis/geos/collections.py +++ b/django/contrib/gis/geos/collections.py @@ -2,13 +2,14 @@ This module houses the Geometry Collection objects: GeometryCollection, MultiPoint, MultiLineString, and MultiPolygon """ -from ctypes import c_int, c_uint, byref +from ctypes import byref, c_int, c_uint + +from django.contrib.gis.geos import prototypes as capi from django.contrib.gis.geos.geometry import GEOSGeometry from django.contrib.gis.geos.libgeos import get_pointer_arr -from django.contrib.gis.geos.linestring import LineString, LinearRing +from django.contrib.gis.geos.linestring import LinearRing, LineString from django.contrib.gis.geos.point import Point from django.contrib.gis.geos.polygon import Polygon -from django.contrib.gis.geos import prototypes as capi from django.utils.six.moves import range diff --git a/django/contrib/gis/geos/coordseq.py b/django/contrib/gis/geos/coordseq.py index c238d4cda5..8185ab43cc 100644 --- a/django/contrib/gis/geos/coordseq.py +++ b/django/contrib/gis/geos/coordseq.py @@ -3,11 +3,12 @@ by GEOSGeometry to house the actual coordinates of the Point, LineString, and LinearRing geometries. """ -from ctypes import c_double, c_uint, byref +from ctypes import byref, c_double, c_uint + +from django.contrib.gis.geos import prototypes as capi from django.contrib.gis.geos.base import GEOSBase, numpy from django.contrib.gis.geos.error import GEOSException, GEOSIndexError from django.contrib.gis.geos.libgeos import CS_PTR -from django.contrib.gis.geos import prototypes as capi from django.utils.six.moves import range diff --git a/django/contrib/gis/geos/factory.py b/django/contrib/gis/geos/factory.py index 87ee660020..eb06da2c00 100644 --- a/django/contrib/gis/geos/factory.py +++ b/django/contrib/gis/geos/factory.py @@ -1,5 +1,4 @@ -from django.contrib.gis.geos.geometry import GEOSGeometry, wkt_regex, hex_regex - +from django.contrib.gis.geos.geometry import GEOSGeometry, hex_regex, wkt_regex from django.utils import six diff --git a/django/contrib/gis/geos/geometry.py b/django/contrib/gis/geos/geometry.py index c3ba634df1..5b478857ec 100644 --- a/django/contrib/gis/geos/geometry.py +++ b/django/contrib/gis/geos/geometry.py @@ -4,32 +4,19 @@ """ from __future__ import unicode_literals -# Python, ctypes and types dependencies. from ctypes import addressof, byref, c_double -# super-class for mutable list behavior -from django.contrib.gis.geos.mutable_list import ListMixin - from django.contrib.gis.gdal.error import SRSException - -# GEOS-related dependencies. +from django.contrib.gis.geometry.regex import hex_regex, json_regex, wkt_regex +from django.contrib.gis.geos import prototypes as capi from django.contrib.gis.geos.base import GEOSBase, gdal from django.contrib.gis.geos.coordseq import GEOSCoordSeq from django.contrib.gis.geos.error import GEOSException, GEOSIndexError from django.contrib.gis.geos.libgeos import GEOM_PTR - -# All other functions in this module come from the ctypes -# prototypes module -- which handles all interaction with -# the underlying GEOS library. -from django.contrib.gis.geos import prototypes as capi - -# These functions provide access to a thread-local instance -# of their corresponding GEOS I/O class. -from django.contrib.gis.geos.prototypes.io import wkt_r, wkt_w, wkb_r, wkb_w, ewkb_w - -# For recognizing geometry input. -from django.contrib.gis.geometry.regex import hex_regex, wkt_regex, json_regex - +from django.contrib.gis.geos.mutable_list import ListMixin +from django.contrib.gis.geos.prototypes.io import ( + ewkb_w, wkb_r, wkb_w, wkt_r, wkt_w, +) from django.utils import six from django.utils.encoding import force_bytes, force_text @@ -684,11 +671,12 @@ class GEOSGeometry(GEOSBase, ListMixin): # Class mapping dictionary. Has to be at the end to avoid import # conflicts with GEOSGeometry. -from django.contrib.gis.geos.linestring import LineString, LinearRing -from django.contrib.gis.geos.point import Point -from django.contrib.gis.geos.polygon import Polygon -from django.contrib.gis.geos.collections import GeometryCollection, MultiPoint, MultiLineString, MultiPolygon -from django.contrib.gis.geos.prepared import PreparedGeometry +from django.contrib.gis.geos.linestring import LineString, LinearRing # isort:skip +from django.contrib.gis.geos.point import Point # isort:skip +from django.contrib.gis.geos.polygon import Polygon # isort:skip +from django.contrib.gis.geos.collections import ( # isort:skip + GeometryCollection, MultiPoint, MultiLineString, MultiPolygon) +from django.contrib.gis.geos.prepared import PreparedGeometry # isort:skip GEOS_CLASSES = { 0: Point, 1: LineString, diff --git a/django/contrib/gis/geos/io.py b/django/contrib/gis/geos/io.py index f12be89830..daf67dd28c 100644 --- a/django/contrib/gis/geos/io.py +++ b/django/contrib/gis/geos/io.py @@ -4,7 +4,9 @@ objects. Specifically, this has Python implementations of WKB/WKT reader and writer classes. """ from django.contrib.gis.geos.geometry import GEOSGeometry -from django.contrib.gis.geos.prototypes.io import _WKTReader, _WKBReader, WKBWriter, WKTWriter +from django.contrib.gis.geos.prototypes.io import ( + WKBWriter, WKTWriter, _WKBReader, _WKTReader, +) __all__ = ['WKBWriter', 'WKTWriter', 'WKBReader', 'WKTReader'] diff --git a/django/contrib/gis/geos/libgeos.py b/django/contrib/gis/geos/libgeos.py index 207fa780a4..fa5fa21a25 100644 --- a/django/contrib/gis/geos/libgeos.py +++ b/django/contrib/gis/geos/libgeos.py @@ -9,7 +9,7 @@ import logging import os import re -from ctypes import c_char_p, Structure, CDLL, CFUNCTYPE, POINTER +from ctypes import CDLL, CFUNCTYPE, POINTER, Structure, c_char_p from ctypes.util import find_library from django.contrib.gis.geos.error import GEOSException diff --git a/django/contrib/gis/geos/linestring.py b/django/contrib/gis/geos/linestring.py index 829ab48945..62802c1efd 100644 --- a/django/contrib/gis/geos/linestring.py +++ b/django/contrib/gis/geos/linestring.py @@ -1,9 +1,9 @@ +from django.contrib.gis.geos import prototypes as capi from django.contrib.gis.geos.base import numpy from django.contrib.gis.geos.coordseq import GEOSCoordSeq from django.contrib.gis.geos.error import GEOSException from django.contrib.gis.geos.geometry import GEOSGeometry from django.contrib.gis.geos.point import Point -from django.contrib.gis.geos import prototypes as capi from django.utils.six.moves import range diff --git a/django/contrib/gis/geos/mutable_list.py b/django/contrib/gis/geos/mutable_list.py index f01bc4275f..805351f252 100644 --- a/django/contrib/gis/geos/mutable_list.py +++ b/django/contrib/gis/geos/mutable_list.py @@ -8,8 +8,8 @@ See also http://www.aryehleib.com/MutableLists.html Author: Aryeh Leib Taurog. """ -from django.utils.functional import total_ordering from django.utils import six +from django.utils.functional import total_ordering from django.utils.six.moves import range diff --git a/django/contrib/gis/geos/point.py b/django/contrib/gis/geos/point.py index 2cc5c13683..0b58098fed 100644 --- a/django/contrib/gis/geos/point.py +++ b/django/contrib/gis/geos/point.py @@ -1,7 +1,8 @@ from ctypes import c_uint + +from django.contrib.gis.geos import prototypes as capi from django.contrib.gis.geos.error import GEOSException from django.contrib.gis.geos.geometry import GEOSGeometry -from django.contrib.gis.geos import prototypes as capi from django.utils import six from django.utils.six.moves import range diff --git a/django/contrib/gis/geos/polygon.py b/django/contrib/gis/geos/polygon.py index 38b533df8f..c8059348cd 100644 --- a/django/contrib/gis/geos/polygon.py +++ b/django/contrib/gis/geos/polygon.py @@ -1,8 +1,9 @@ -from ctypes import c_uint, byref +from ctypes import byref, c_uint + +from django.contrib.gis.geos import prototypes as capi from django.contrib.gis.geos.geometry import GEOSGeometry -from django.contrib.gis.geos.libgeos import get_pointer_arr, GEOM_PTR +from django.contrib.gis.geos.libgeos import GEOM_PTR, get_pointer_arr from django.contrib.gis.geos.linestring import LinearRing -from django.contrib.gis.geos import prototypes as capi from django.utils import six from django.utils.six.moves import range diff --git a/django/contrib/gis/geos/prototypes/coordseq.py b/django/contrib/gis/geos/prototypes/coordseq.py index b115fc3447..3e5204e5fe 100644 --- a/django/contrib/gis/geos/prototypes/coordseq.py +++ b/django/contrib/gis/geos/prototypes/coordseq.py @@ -1,6 +1,9 @@ -from ctypes import c_double, c_int, c_uint, POINTER -from django.contrib.gis.geos.libgeos import GEOM_PTR, CS_PTR -from django.contrib.gis.geos.prototypes.errcheck import last_arg_byref, GEOSException +from ctypes import POINTER, c_double, c_int, c_uint + +from django.contrib.gis.geos.libgeos import CS_PTR, GEOM_PTR +from django.contrib.gis.geos.prototypes.errcheck import ( + GEOSException, last_arg_byref, +) from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc diff --git a/django/contrib/gis/geos/prototypes/errcheck.py b/django/contrib/gis/geos/prototypes/errcheck.py index 034cfe5899..dd037a5632 100644 --- a/django/contrib/gis/geos/prototypes/errcheck.py +++ b/django/contrib/gis/geos/prototypes/errcheck.py @@ -2,10 +2,10 @@ Error checking functions for GEOS ctypes prototype functions. """ from ctypes import c_void_p, string_at + from django.contrib.gis.geos.error import GEOSException from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc - # Getting the `free` routine used to free the memory allocated for # string pointers returned by GEOS. free = GEOSFunc('GEOSFree') diff --git a/django/contrib/gis/geos/prototypes/geom.py b/django/contrib/gis/geos/prototypes/geom.py index 021fe6e469..b8320471e9 100644 --- a/django/contrib/gis/geos/prototypes/geom.py +++ b/django/contrib/gis/geos/prototypes/geom.py @@ -1,7 +1,9 @@ -from ctypes import c_char_p, c_int, c_size_t, c_ubyte, POINTER +from ctypes import POINTER, c_char_p, c_int, c_size_t, c_ubyte + from django.contrib.gis.geos.libgeos import CS_PTR, GEOM_PTR from django.contrib.gis.geos.prototypes.errcheck import ( - check_geom, check_minus_one, check_sized_string, check_string, check_zero) + check_geom, check_minus_one, check_sized_string, check_string, check_zero, +) from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc # This is the return type used by binary output (WKB, HEX) routines. diff --git a/django/contrib/gis/geos/prototypes/io.py b/django/contrib/gis/geos/prototypes/io.py index 34bd34886a..55fd6d2f17 100644 --- a/django/contrib/gis/geos/prototypes/io.py +++ b/django/contrib/gis/geos/prototypes/io.py @@ -1,11 +1,13 @@ import threading -from ctypes import byref, c_char_p, c_int, c_char, c_size_t, Structure, POINTER +from ctypes import POINTER, Structure, byref, c_char, c_char_p, c_int, c_size_t + from django.contrib.gis.geos.base import GEOSBase from django.contrib.gis.geos.libgeos import GEOM_PTR -from django.contrib.gis.geos.prototypes.errcheck import check_geom, check_string, check_sized_string +from django.contrib.gis.geos.prototypes.errcheck import ( + check_geom, check_sized_string, check_string, +) from django.contrib.gis.geos.prototypes.geom import c_uchar_p, geos_char_p from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc - from django.utils import six from django.utils.encoding import force_bytes diff --git a/django/contrib/gis/geos/prototypes/misc.py b/django/contrib/gis/geos/prototypes/misc.py index 0e62e916b0..9dba880f18 100644 --- a/django/contrib/gis/geos/prototypes/misc.py +++ b/django/contrib/gis/geos/prototypes/misc.py @@ -2,7 +2,8 @@ This module is for the miscellaneous GEOS routines, particularly the ones that return the area, distance, and length. """ -from ctypes import c_int, c_double, POINTER +from ctypes import POINTER, c_double, c_int + from django.contrib.gis.geos.libgeos import GEOM_PTR from django.contrib.gis.geos.prototypes.errcheck import check_dbl, check_string from django.contrib.gis.geos.prototypes.geom import geos_char_p diff --git a/django/contrib/gis/geos/prototypes/predicates.py b/django/contrib/gis/geos/prototypes/predicates.py index f3c30a5062..0146784d03 100644 --- a/django/contrib/gis/geos/prototypes/predicates.py +++ b/django/contrib/gis/geos/prototypes/predicates.py @@ -3,6 +3,7 @@ unary and binary predicate operations on geometries. """ from ctypes import c_char, c_char_p, c_double + from django.contrib.gis.geos.libgeos import GEOM_PTR from django.contrib.gis.geos.prototypes.errcheck import check_predicate from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc diff --git a/django/contrib/gis/geos/prototypes/prepared.py b/django/contrib/gis/geos/prototypes/prepared.py index ced56395b0..2c93e1eb2f 100644 --- a/django/contrib/gis/geos/prototypes/prepared.py +++ b/django/contrib/gis/geos/prototypes/prepared.py @@ -1,5 +1,8 @@ from ctypes import c_char -from django.contrib.gis.geos.libgeos import GEOM_PTR, PREPGEOM_PTR, geos_version_info + +from django.contrib.gis.geos.libgeos import ( + GEOM_PTR, PREPGEOM_PTR, geos_version_info, +) from django.contrib.gis.geos.prototypes.errcheck import check_predicate from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc diff --git a/django/contrib/gis/geos/prototypes/threadsafe.py b/django/contrib/gis/geos/prototypes/threadsafe.py index 61b13792bc..45c87d6004 100644 --- a/django/contrib/gis/geos/prototypes/threadsafe.py +++ b/django/contrib/gis/geos/prototypes/threadsafe.py @@ -1,5 +1,8 @@ import threading -from django.contrib.gis.geos.libgeos import lgeos, notice_h, error_h, CONTEXT_PTR + +from django.contrib.gis.geos.libgeos import ( + CONTEXT_PTR, error_h, lgeos, notice_h, +) class GEOSContextHandle(object): diff --git a/django/contrib/gis/geos/prototypes/topology.py b/django/contrib/gis/geos/prototypes/topology.py index 83d6706eaa..0e318409ee 100644 --- a/django/contrib/gis/geos/prototypes/topology.py +++ b/django/contrib/gis/geos/prototypes/topology.py @@ -11,8 +11,11 @@ __all__ = ['geos_boundary', 'geos_buffer', 'geos_cascaded_union', 'geos_interpolate_normalized'] from ctypes import c_double, c_int + from django.contrib.gis.geos.libgeos import GEOM_PTR -from django.contrib.gis.geos.prototypes.errcheck import check_geom, check_minus_one, check_string +from django.contrib.gis.geos.prototypes.errcheck import ( + check_geom, check_minus_one, check_string, +) from django.contrib.gis.geos.prototypes.geom import geos_char_p from django.contrib.gis.geos.prototypes.threadsafe import GEOSFunc diff --git a/django/contrib/gis/geos/tests/test_geos.py b/django/contrib/gis/geos/tests/test_geos.py index 48d4aabf13..4158faeaa7 100644 --- a/django/contrib/gis/geos/tests/test_geos.py +++ b/django/contrib/gis/geos/tests/test_geos.py @@ -4,16 +4,14 @@ import ctypes import json import random import unittest -from unittest import skipUnless from binascii import a2b_hex, b2a_hex from io import BytesIO +from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL - from django.contrib.gis.geometry.test_data import TestDataMixin - -from django.utils.encoding import force_bytes from django.utils import six +from django.utils.encoding import force_bytes from django.utils.six.moves import range from .. import HAS_GEOS diff --git a/django/contrib/gis/geos/tests/test_io.py b/django/contrib/gis/geos/tests/test_io.py index 06ca76e33d..08ff6c13e8 100644 --- a/django/contrib/gis/geos/tests/test_io.py +++ b/django/contrib/gis/geos/tests/test_io.py @@ -6,7 +6,7 @@ from unittest import skipUnless from django.utils.six import memoryview -from ..import HAS_GEOS +from ..import HAS_GEOS # isort:skip if HAS_GEOS: from .. import GEOSGeometry, WKTReader, WKTWriter, WKBReader, WKBWriter diff --git a/django/contrib/gis/management/commands/inspectdb.py b/django/contrib/gis/management/commands/inspectdb.py index 502f816ea4..229be74276 100644 --- a/django/contrib/gis/management/commands/inspectdb.py +++ b/django/contrib/gis/management/commands/inspectdb.py @@ -1,4 +1,5 @@ -from django.core.management.commands.inspectdb import Command as InspectDBCommand +from django.core.management.commands.inspectdb import \ + Command as InspectDBCommand class Command(InspectDBCommand): diff --git a/django/contrib/gis/maps/google/gmap.py b/django/contrib/gis/maps/google/gmap.py index 845b39a806..d40c3b8218 100644 --- a/django/contrib/gis/maps/google/gmap.py +++ b/django/contrib/gis/maps/google/gmap.py @@ -1,13 +1,14 @@ from __future__ import unicode_literals from django.conf import settings +from django.contrib.gis.maps.google.overlays import ( + GMarker, GPolygon, GPolyline, +) from django.template.loader import render_to_string from django.utils.html import format_html from django.utils.safestring import mark_safe from django.utils.six.moves import range -from django.contrib.gis.maps.google.overlays import GPolygon, GPolyline, GMarker - class GoogleMapException(Exception): pass diff --git a/django/contrib/gis/maps/google/overlays.py b/django/contrib/gis/maps/google/overlays.py index d9ba31380a..f249e5d809 100644 --- a/django/contrib/gis/maps/google/overlays.py +++ b/django/contrib/gis/maps/google/overlays.py @@ -1,10 +1,12 @@ from __future__ import unicode_literals -from django.contrib.gis.geos import fromstr, Point, LineString, LinearRing, Polygon -from django.utils.functional import total_ordering -from django.utils.safestring import mark_safe +from django.contrib.gis.geos import ( + LinearRing, LineString, Point, Polygon, fromstr, +) from django.utils import six from django.utils.encoding import python_2_unicode_compatible +from django.utils.functional import total_ordering +from django.utils.safestring import mark_safe @python_2_unicode_compatible diff --git a/django/contrib/gis/maps/google/zoom.py b/django/contrib/gis/maps/google/zoom.py index a34748bb8e..d169fbd59b 100644 --- a/django/contrib/gis/maps/google/zoom.py +++ b/django/contrib/gis/maps/google/zoom.py @@ -1,9 +1,10 @@ from __future__ import unicode_literals -from django.contrib.gis.geos import GEOSGeometry, LinearRing, Polygon, Point +from math import atan, exp, log, pi, sin + +from django.contrib.gis.geos import GEOSGeometry, LinearRing, Point, Polygon from django.contrib.gis.maps.google.gmap import GoogleMapException from django.utils.six.moves import range -from math import pi, sin, log, exp, atan # Constants used for degree to radian conversion, and vice-versa. DTOR = pi / 180. diff --git a/django/contrib/gis/measure.py b/django/contrib/gis/measure.py index 90b316bb60..527512f71b 100644 --- a/django/contrib/gis/measure.py +++ b/django/contrib/gis/measure.py @@ -38,8 +38,8 @@ and Geoff Biggs' PhD work on dimensioned units for robotics. __all__ = ['A', 'Area', 'D', 'Distance'] from decimal import Decimal -from django.utils.functional import total_ordering from django.utils import six +from django.utils.functional import total_ordering NUMERIC_TYPES = six.integer_types + (float, Decimal) AREA_PREFIX = "sq_" diff --git a/django/contrib/gis/serializers/geojson.py b/django/contrib/gis/serializers/geojson.py index 573f85c045..eb0533bded 100644 --- a/django/contrib/gis/serializers/geojson.py +++ b/django/contrib/gis/serializers/geojson.py @@ -1,7 +1,9 @@ from __future__ import unicode_literals from django.contrib.gis.gdal import HAS_GDAL -from django.core.serializers.base import SerializerDoesNotExist, SerializationError +from django.core.serializers.base import ( + SerializationError, SerializerDoesNotExist, +) from django.core.serializers.json import Serializer as JSONSerializer if HAS_GDAL: diff --git a/django/contrib/gis/sitemaps/kml.py b/django/contrib/gis/sitemaps/kml.py index d052cf6350..4dcaa8f595 100644 --- a/django/contrib/gis/sitemaps/kml.py +++ b/django/contrib/gis/sitemaps/kml.py @@ -1,7 +1,7 @@ from django.apps import apps -from django.core import urlresolvers -from django.contrib.sitemaps import Sitemap from django.contrib.gis.db.models.fields import GeometryField +from django.contrib.sitemaps import Sitemap +from django.core import urlresolvers from django.db import models diff --git a/django/contrib/gis/sitemaps/views.py b/django/contrib/gis/sitemaps/views.py index a84621374b..dc5eb40441 100644 --- a/django/contrib/gis/sitemaps/views.py +++ b/django/contrib/gis/sitemaps/views.py @@ -1,11 +1,11 @@ from __future__ import unicode_literals from django.apps import apps -from django.http import Http404 from django.contrib.gis.db.models.fields import GeometryField from django.contrib.gis.shortcuts import render_to_kml, render_to_kmz from django.core.exceptions import FieldDoesNotExist -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections +from django.http import Http404 def kml(request, label, model, field_name=None, compress=False, using=DEFAULT_DB_ALIAS): diff --git a/django/contrib/gis/tests/distapp/tests.py b/django/contrib/gis/tests/distapp/tests.py index 5f898e3dda..4c2ea60950 100644 --- a/django/contrib/gis/tests/distapp/tests.py +++ b/django/contrib/gis/tests/distapp/tests.py @@ -1,10 +1,12 @@ from __future__ import unicode_literals -from django.db import connection -from django.db.models import Q from django.contrib.gis.geos import HAS_GEOS from django.contrib.gis.measure import D # alias for Distance -from django.contrib.gis.tests.utils import oracle, postgis, spatialite, no_oracle +from django.contrib.gis.tests.utils import ( + no_oracle, oracle, postgis, spatialite, +) +from django.db import connection +from django.db.models import Q from django.test import TestCase, skipUnlessDBFeature if HAS_GEOS: diff --git a/django/contrib/gis/tests/geo3d/tests.py b/django/contrib/gis/tests/geo3d/tests.py index 9530cd9b55..022a8063ab 100644 --- a/django/contrib/gis/tests/geo3d/tests.py +++ b/django/contrib/gis/tests/geo3d/tests.py @@ -7,8 +7,8 @@ from unittest import skipUnless from django.contrib.gis.gdal import HAS_GDAL from django.contrib.gis.geos import HAS_GEOS from django.test import TestCase, ignore_warnings, skipUnlessDBFeature -from django.utils.deprecation import RemovedInDjango20Warning from django.utils._os import upath +from django.utils.deprecation import RemovedInDjango20Warning if HAS_GEOS: from django.contrib.gis.db.models import Union, Extent3D diff --git a/django/contrib/gis/tests/geoadmin/models.py b/django/contrib/gis/tests/geoadmin/models.py index 381a752570..cf8470e792 100644 --- a/django/contrib/gis/tests/geoadmin/models.py +++ b/django/contrib/gis/tests/geoadmin/models.py @@ -1,5 +1,5 @@ -from django.contrib.gis.db import models from django.contrib.gis import admin +from django.contrib.gis.db import models from django.utils.encoding import python_2_unicode_compatible diff --git a/django/contrib/gis/tests/geoapp/sitemaps.py b/django/contrib/gis/tests/geoapp/sitemaps.py index 16f1f0146e..1a3101290a 100644 --- a/django/contrib/gis/tests/geoapp/sitemaps.py +++ b/django/contrib/gis/tests/geoapp/sitemaps.py @@ -2,7 +2,6 @@ from django.contrib.gis.sitemaps import KMLSitemap, KMZSitemap from .models import City, Country - sitemaps = {'kml': KMLSitemap([City, Country]), 'kmz': KMZSitemap([City, Country]), } diff --git a/django/contrib/gis/tests/geoapp/test_feeds.py b/django/contrib/gis/tests/geoapp/test_feeds.py index 1b89823ecb..19a6f69b00 100644 --- a/django/contrib/gis/tests/geoapp/test_feeds.py +++ b/django/contrib/gis/tests/geoapp/test_feeds.py @@ -3,10 +3,10 @@ from __future__ import unicode_literals from xml.dom import minidom from django.conf import settings -from django.contrib.sites.models import Site from django.contrib.gis.geos import HAS_GEOS +from django.contrib.sites.models import Site from django.test import ( - TestCase, modify_settings, override_settings, skipUnlessDBFeature + TestCase, modify_settings, override_settings, skipUnlessDBFeature, ) if HAS_GEOS: diff --git a/django/contrib/gis/tests/geoapp/test_sitemaps.py b/django/contrib/gis/tests/geoapp/test_sitemaps.py index 4ef2bb9702..6a2d1f40b8 100644 --- a/django/contrib/gis/tests/geoapp/test_sitemaps.py +++ b/django/contrib/gis/tests/geoapp/test_sitemaps.py @@ -1,14 +1,15 @@ from __future__ import unicode_literals +import zipfile from io import BytesIO from xml.dom import minidom -import zipfile from django.conf import settings from django.contrib.gis.geos import HAS_GEOS from django.contrib.sites.models import Site from django.test import ( - TestCase, ignore_warnings, modify_settings, override_settings, skipUnlessDBFeature + TestCase, ignore_warnings, modify_settings, override_settings, + skipUnlessDBFeature, ) from django.utils.deprecation import RemovedInDjango20Warning diff --git a/django/contrib/gis/tests/geoapp/tests.py b/django/contrib/gis/tests/geoapp/tests.py index 7c999a20d0..9b45492715 100644 --- a/django/contrib/gis/tests/geoapp/tests.py +++ b/django/contrib/gis/tests/geoapp/tests.py @@ -3,11 +3,13 @@ from __future__ import unicode_literals import re from tempfile import NamedTemporaryFile -from django.db import connection from django.contrib.gis import gdal from django.contrib.gis.geos import HAS_GEOS -from django.contrib.gis.tests.utils import no_oracle, oracle, postgis, spatialite +from django.contrib.gis.tests.utils import ( + no_oracle, oracle, postgis, spatialite, +) from django.core.management import call_command +from django.db import connection from django.test import TestCase, ignore_warnings, skipUnlessDBFeature from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning diff --git a/django/contrib/gis/tests/geoapp/urls.py b/django/contrib/gis/tests/geoapp/urls.py index 238c64ad51..40a48053c7 100644 --- a/django/contrib/gis/tests/geoapp/urls.py +++ b/django/contrib/gis/tests/geoapp/urls.py @@ -2,13 +2,12 @@ from __future__ import unicode_literals from django.conf.urls import url from django.contrib.gis import views as gis_views -from django.contrib.sitemaps import views as sitemap_views from django.contrib.gis.sitemaps import views as gis_sitemap_views +from django.contrib.sitemaps import views as sitemap_views from .feeds import feed_dict from .sitemaps import sitemaps - urlpatterns = [ url(r'^feeds/(?P<url>.*)/$', gis_views.feed, {'feed_dict': feed_dict}), ] diff --git a/django/contrib/gis/tests/gis_migrations/migrations/0001_initial.py b/django/contrib/gis/tests/gis_migrations/migrations/0001_initial.py index 212f702320..aceaaa301e 100644 --- a/django/contrib/gis/tests/gis_migrations/migrations/0001_initial.py +++ b/django/contrib/gis/tests/gis_migrations/migrations/0001_initial.py @@ -1,5 +1,5 @@ -from django.db import models, migrations import django.contrib.gis.db.models.fields +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/gis/tests/gis_migrations/test_commands.py b/django/contrib/gis/tests/gis_migrations/test_commands.py index bb0186fad5..076215465d 100644 --- a/django/contrib/gis/tests/gis_migrations/test_commands.py +++ b/django/contrib/gis/tests/gis_migrations/test_commands.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.core.management import call_command from django.db import connection -from django.test import skipUnlessDBFeature, TransactionTestCase +from django.test import TransactionTestCase, skipUnlessDBFeature @skipUnlessDBFeature("gis_enabled") diff --git a/django/contrib/gis/tests/gis_migrations/test_operations.py b/django/contrib/gis/tests/gis_migrations/test_operations.py index 8052e7ab1d..9bfe55b0bf 100644 --- a/django/contrib/gis/tests/gis_migrations/test_operations.py +++ b/django/contrib/gis/tests/gis_migrations/test_operations.py @@ -4,7 +4,7 @@ from django.contrib.gis.tests.utils import mysql from django.db import connection, migrations, models from django.db.migrations.migration import Migration from django.db.migrations.state import ProjectState -from django.test import skipUnlessDBFeature, TransactionTestCase +from django.test import TransactionTestCase, skipUnlessDBFeature if connection.features.gis_enabled: from django.contrib.gis.db.models import fields diff --git a/django/contrib/gis/tests/inspectapp/tests.py b/django/contrib/gis/tests/inspectapp/tests.py index 82b2cfefd6..8e2f54c517 100644 --- a/django/contrib/gis/tests/inspectapp/tests.py +++ b/django/contrib/gis/tests/inspectapp/tests.py @@ -4,11 +4,11 @@ import os import re from unittest import skipUnless +from django.contrib.gis.gdal import HAS_GDAL +from django.contrib.gis.geometry.test_data import TEST_DATA from django.core.management import call_command from django.db import connection, connections from django.test import TestCase, skipUnlessDBFeature -from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.geometry.test_data import TEST_DATA from django.utils.six import StringIO if HAS_GDAL: diff --git a/django/contrib/gis/tests/layermap/tests.py b/django/contrib/gis/tests/layermap/tests.py index 45709e30ce..85f105f4a0 100644 --- a/django/contrib/gis/tests/layermap/tests.py +++ b/django/contrib/gis/tests/layermap/tests.py @@ -1,15 +1,15 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from copy import copy -from decimal import Decimal import os import unittest +from copy import copy +from decimal import Decimal from unittest import skipUnless +from django.conf import settings from django.contrib.gis.gdal import HAS_GDAL from django.db import connection -from django.conf import settings from django.test import TestCase, override_settings, skipUnlessDBFeature from django.utils._os import upath diff --git a/django/contrib/gis/tests/test_geoforms.py b/django/contrib/gis/tests/test_geoforms.py index fa72cd1fac..bcbb5f0804 100644 --- a/django/contrib/gis/tests/test_geoforms.py +++ b/django/contrib/gis/tests/test_geoforms.py @@ -1,7 +1,7 @@ from unittest import skipUnless -from django.forms import ValidationError from django.contrib.gis.gdal import HAS_GDAL +from django.forms import ValidationError from django.test import SimpleTestCase, skipUnlessDBFeature from django.utils import six from django.utils.html import escape diff --git a/django/contrib/gis/tests/test_measure.py b/django/contrib/gis/tests/test_measure.py index f6b89ce1ca..771c10fe9d 100644 --- a/django/contrib/gis/tests/test_measure.py +++ b/django/contrib/gis/tests/test_measure.py @@ -5,7 +5,7 @@ and conversions. Here are some tests. import unittest -from django.contrib.gis.measure import Distance, Area, D, A +from django.contrib.gis.measure import A, D, Area, Distance class DistanceTest(unittest.TestCase): diff --git a/django/contrib/gis/tests/test_spatialrefsys.py b/django/contrib/gis/tests/test_spatialrefsys.py index 7f43124e5d..1a4b151f2b 100644 --- a/django/contrib/gis/tests/test_spatialrefsys.py +++ b/django/contrib/gis/tests/test_spatialrefsys.py @@ -1,13 +1,13 @@ import unittest from django.contrib.gis.gdal import HAS_GDAL -from django.contrib.gis.tests.utils import (oracle, postgis, spatialite, - SpatialRefSys) +from django.contrib.gis.tests.utils import ( + SpatialRefSys, oracle, postgis, spatialite, +) from django.db import connection from django.test import skipUnlessDBFeature from django.utils import six - test_srs = ({ 'srid': 4326, 'auth_name': ('EPSG', True), diff --git a/django/contrib/gis/utils/layermapping.py b/django/contrib/gis/utils/layermapping.py index 2ff23fc38b..30e773d69d 100644 --- a/django/contrib/gis/utils/layermapping.py +++ b/django/contrib/gis/utils/layermapping.py @@ -8,14 +8,17 @@ """ import sys from decimal import Decimal, InvalidOperation as DecimalInvalidOperation -from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist -from django.db import connections, router + from django.contrib.gis.db.models import GeometryField -from django.contrib.gis.gdal import (CoordTransform, DataSource, - GDALException, OGRGeometry, OGRGeomType, SpatialReference) +from django.contrib.gis.gdal import ( + CoordTransform, DataSource, GDALException, OGRGeometry, OGRGeomType, + SpatialReference, +) from django.contrib.gis.gdal.field import ( - OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime) -from django.db import models, transaction + OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime, +) +from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist +from django.db import connections, models, router, transaction from django.utils import six from django.utils.encoding import force_text diff --git a/django/contrib/gis/utils/ogrinspect.py b/django/contrib/gis/utils/ogrinspect.py index 16732556d4..9c9a4c7f8c 100644 --- a/django/contrib/gis/utils/ogrinspect.py +++ b/django/contrib/gis/utils/ogrinspect.py @@ -3,11 +3,12 @@ This module is for inspecting OGR data sources and generating either models for GeoDjango and/or mapping dictionaries for use with the `LayerMapping` utility. """ -from django.utils.six.moves import zip -# Requires GDAL to use. from django.contrib.gis.gdal import DataSource -from django.contrib.gis.gdal.field import OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime +from django.contrib.gis.gdal.field import ( + OFTDate, OFTDateTime, OFTInteger, OFTReal, OFTString, OFTTime, +) from django.utils import six +from django.utils.six.moves import zip def mapping(data_source, geom_name='geom', layer_key=0, multi_geom=False): diff --git a/django/contrib/gis/utils/srs.py b/django/contrib/gis/utils/srs.py index 1460be2de9..59ba77c6dd 100644 --- a/django/contrib/gis/utils/srs.py +++ b/django/contrib/gis/utils/srs.py @@ -1,5 +1,5 @@ from django.contrib.gis.gdal import SpatialReference -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections def add_srs_entry(srs, auth_name='EPSG', auth_srid=None, ref_sys_name=None, diff --git a/django/contrib/humanize/apps.py b/django/contrib/humanize/apps.py index 67b3012175..c518ee12df 100644 --- a/django/contrib/humanize/apps.py +++ b/django/contrib/humanize/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/humanize/templatetags/humanize.py b/django/contrib/humanize/templatetags/humanize.py index 81c6d2a04c..bb9bc7b1ca 100644 --- a/django/contrib/humanize/templatetags/humanize.py +++ b/django/contrib/humanize/templatetags/humanize.py @@ -11,8 +11,8 @@ from django.template import defaultfilters from django.utils.encoding import force_text from django.utils.formats import number_format from django.utils.safestring import mark_safe -from django.utils.translation import pgettext, ungettext, ugettext as _ from django.utils.timezone import is_aware, utc +from django.utils.translation import pgettext, ugettext as _, ungettext register = template.Library() diff --git a/django/contrib/humanize/tests.py b/django/contrib/humanize/tests.py index a9882e479f..84528fd29d 100644 --- a/django/contrib/humanize/tests.py +++ b/django/contrib/humanize/tests.py @@ -1,21 +1,22 @@ from __future__ import unicode_literals + import datetime from decimal import Decimal from unittest import skipIf -try: - import pytz -except ImportError: - pytz = None - from django.contrib.humanize.templatetags import humanize -from django.template import Template, Context, defaultfilters +from django.template import Context, Template, defaultfilters from django.test import TestCase, override_settings -from django.utils.html import escape -from django.utils.timezone import utc, get_fixed_timezone from django.utils import translation +from django.utils.html import escape +from django.utils.timezone import get_fixed_timezone, utc from django.utils.translation import ugettext as _ +try: + import pytz +except ImportError: + pytz = None + # Mock out datetime in some tests so they don't fail occasionally when they # run too slow. Use a fixed datetime for datetime.now(). DST change in diff --git a/django/contrib/messages/apps.py b/django/contrib/messages/apps.py index 1a9189383e..de48c8aa4d 100644 --- a/django/contrib/messages/apps.py +++ b/django/contrib/messages/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/messages/storage/base.py b/django/contrib/messages/storage/base.py index 43dd3dbdd2..74f1ce7d9c 100644 --- a/django/contrib/messages/storage/base.py +++ b/django/contrib/messages/storage/base.py @@ -1,9 +1,8 @@ from __future__ import unicode_literals from django.conf import settings -from django.utils.encoding import force_text, python_2_unicode_compatible from django.contrib.messages import constants, utils - +from django.utils.encoding import force_text, python_2_unicode_compatible LEVEL_TAGS = utils.get_level_tags() diff --git a/django/contrib/messages/storage/cookie.py b/django/contrib/messages/storage/cookie.py index 71eee0cdfa..eb927411a7 100644 --- a/django/contrib/messages/storage/cookie.py +++ b/django/contrib/messages/storage/cookie.py @@ -3,9 +3,9 @@ import json from django.conf import settings from django.contrib.messages.storage.base import BaseStorage, Message from django.http import SimpleCookie -from django.utils.crypto import salted_hmac, constant_time_compare -from django.utils.safestring import SafeData, mark_safe from django.utils import six +from django.utils.crypto import constant_time_compare, salted_hmac +from django.utils.safestring import SafeData, mark_safe class MessageEncoder(json.JSONEncoder): diff --git a/django/contrib/messages/storage/session.py b/django/contrib/messages/storage/session.py index c3e293c22e..7903fb03c1 100644 --- a/django/contrib/messages/storage/session.py +++ b/django/contrib/messages/storage/session.py @@ -1,7 +1,9 @@ import json from django.contrib.messages.storage.base import BaseStorage -from django.contrib.messages.storage.cookie import MessageEncoder, MessageDecoder +from django.contrib.messages.storage.cookie import ( + MessageDecoder, MessageEncoder, +) from django.utils import six diff --git a/django/contrib/messages/tests/base.py b/django/contrib/messages/tests/base.py index 139d32c067..d1f951789f 100644 --- a/django/contrib/messages/tests/base.py +++ b/django/contrib/messages/tests/base.py @@ -2,10 +2,10 @@ from unittest import skipUnless from django import http from django.apps import apps -from django.contrib.messages import constants, utils, get_level, set_level +from django.contrib.messages import constants, get_level, set_level, utils from django.contrib.messages.api import MessageFailure from django.contrib.messages.constants import DEFAULT_LEVELS -from django.contrib.messages.storage import default_storage, base +from django.contrib.messages.storage import base, default_storage from django.contrib.messages.storage.base import Message from django.core.urlresolvers import reverse from django.test import modify_settings, override_settings diff --git a/django/contrib/messages/tests/test_api.py b/django/contrib/messages/tests/test_api.py index 335a200450..f79db95866 100644 --- a/django/contrib/messages/tests/test_api.py +++ b/django/contrib/messages/tests/test_api.py @@ -1,6 +1,5 @@ -from django.test import TestCase, RequestFactory - from django.contrib import messages +from django.test import RequestFactory, TestCase class DummyStorage(object): diff --git a/django/contrib/messages/tests/test_cookie.py b/django/contrib/messages/tests/test_cookie.py index ba7b4dc08b..c986a174ca 100644 --- a/django/contrib/messages/tests/test_cookie.py +++ b/django/contrib/messages/tests/test_cookie.py @@ -1,10 +1,11 @@ import json from django.contrib.messages import constants -from django.contrib.messages.tests.base import BaseTests -from django.contrib.messages.storage.cookie import (CookieStorage, - MessageEncoder, MessageDecoder) from django.contrib.messages.storage.base import Message +from django.contrib.messages.storage.cookie import ( + CookieStorage, MessageDecoder, MessageEncoder, +) +from django.contrib.messages.tests.base import BaseTests from django.test import TestCase, override_settings from django.utils.safestring import SafeData, mark_safe diff --git a/django/contrib/messages/tests/test_fallback.py b/django/contrib/messages/tests/test_fallback.py index cd0b1888f3..0afbe75ae6 100644 --- a/django/contrib/messages/tests/test_fallback.py +++ b/django/contrib/messages/tests/test_fallback.py @@ -1,11 +1,14 @@ from django.contrib.messages import constants -from django.contrib.messages.storage.fallback import (FallbackStorage, - CookieStorage) +from django.contrib.messages.storage.fallback import ( + CookieStorage, FallbackStorage, +) from django.contrib.messages.tests.base import BaseTests -from django.contrib.messages.tests.test_cookie import (set_cookie_data, - stored_cookie_messages_count) -from django.contrib.messages.tests.test_session import (set_session_data, - stored_session_messages_count) +from django.contrib.messages.tests.test_cookie import ( + set_cookie_data, stored_cookie_messages_count, +) +from django.contrib.messages.tests.test_session import ( + set_session_data, stored_session_messages_count, +) from django.test import TestCase diff --git a/django/contrib/messages/tests/test_mixins.py b/django/contrib/messages/tests/test_mixins.py index 35bb86d057..bb0bb797d4 100644 --- a/django/contrib/messages/tests/test_mixins.py +++ b/django/contrib/messages/tests/test_mixins.py @@ -1,6 +1,6 @@ -from django.test import TestCase, override_settings from django.contrib.messages.tests.urls import ContactFormViewWithMsg from django.core.urlresolvers import reverse +from django.test import TestCase, override_settings @override_settings(ROOT_URLCONF='django.contrib.messages.tests.urls') diff --git a/django/contrib/messages/tests/test_session.py b/django/contrib/messages/tests/test_session.py index 940e1c02d0..cca659d3d8 100644 --- a/django/contrib/messages/tests/test_session.py +++ b/django/contrib/messages/tests/test_session.py @@ -1,9 +1,9 @@ from django.contrib.messages import constants -from django.contrib.messages.tests.base import BaseTests from django.contrib.messages.storage.base import Message from django.contrib.messages.storage.session import SessionStorage -from django.utils.safestring import SafeData, mark_safe +from django.contrib.messages.tests.base import BaseTests from django.test import TestCase +from django.utils.safestring import SafeData, mark_safe def set_session_data(storage, messages): diff --git a/django/contrib/messages/tests/urls.py b/django/contrib/messages/tests/urls.py index 43cc6063cb..d748690044 100644 --- a/django/contrib/messages/tests/urls.py +++ b/django/contrib/messages/tests/urls.py @@ -1,14 +1,15 @@ +from django import forms from django.conf.urls import url from django.contrib import messages +from django.contrib.messages.views import SuccessMessageMixin from django.core.urlresolvers import reverse -from django import forms -from django.http import HttpResponseRedirect, HttpResponse +from django.http import HttpResponse, HttpResponseRedirect from django.template import engines from django.template.response import TemplateResponse from django.views.decorators.cache import never_cache -from django.contrib.messages.views import SuccessMessageMixin from django.views.generic.edit import FormView + TEMPLATE = """{% if messages %} <ul class="messages"> {% for message in messages %} diff --git a/django/contrib/postgres/fields/array.py b/django/contrib/postgres/fields/array.py index af575c6b30..8e442c4a7a 100644 --- a/django/contrib/postgres/fields/array.py +++ b/django/contrib/postgres/fields/array.py @@ -4,11 +4,10 @@ from django.contrib.postgres import lookups from django.contrib.postgres.forms import SimpleArrayField from django.contrib.postgres.validators import ArrayMaxLengthValidator from django.core import checks, exceptions -from django.db.models import Field, Transform, IntegerField +from django.db.models import Field, IntegerField, Transform from django.utils import six from django.utils.translation import string_concat, ugettext_lazy as _ - __all__ = ['ArrayField'] diff --git a/django/contrib/postgres/fields/hstore.py b/django/contrib/postgres/fields/hstore.py index 1524368ecf..461fa047e2 100644 --- a/django/contrib/postgres/fields/hstore.py +++ b/django/contrib/postgres/fields/hstore.py @@ -3,11 +3,10 @@ import json from django.contrib.postgres import forms, lookups from django.contrib.postgres.fields.array import ArrayField from django.core import exceptions -from django.db.models import Field, Transform, TextField +from django.db.models import Field, TextField, Transform from django.utils import six from django.utils.translation import ugettext_lazy as _ - __all__ = ['HStoreField'] diff --git a/django/contrib/postgres/fields/ranges.py b/django/contrib/postgres/fields/ranges.py index 8cb5229593..679e87f44e 100644 --- a/django/contrib/postgres/fields/ranges.py +++ b/django/contrib/postgres/fields/ranges.py @@ -1,12 +1,11 @@ import json -from django.contrib.postgres import lookups, forms +from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange, Range + +from django.contrib.postgres import forms, lookups from django.db import models from django.utils import six -from psycopg2.extras import Range, NumericRange, DateRange, DateTimeTZRange - - __all__ = [ 'RangeField', 'IntegerRangeField', 'BigIntegerRangeField', 'FloatRangeField', 'DateTimeRangeField', 'DateRangeField', diff --git a/django/contrib/postgres/forms/array.py b/django/contrib/postgres/forms/array.py index 0bd4ee4916..01c4d53527 100644 --- a/django/contrib/postgres/forms/array.py +++ b/django/contrib/postgres/forms/array.py @@ -1,10 +1,12 @@ import copy -from django.contrib.postgres.validators import ArrayMinLengthValidator, ArrayMaxLengthValidator -from django.core.exceptions import ValidationError from django import forms -from django.utils.safestring import mark_safe +from django.contrib.postgres.validators import ( + ArrayMaxLengthValidator, ArrayMinLengthValidator, +) +from django.core.exceptions import ValidationError from django.utils import six +from django.utils.safestring import mark_safe from django.utils.translation import string_concat, ugettext_lazy as _ diff --git a/django/contrib/postgres/forms/hstore.py b/django/contrib/postgres/forms/hstore.py index 548be0f570..2c564ea53c 100644 --- a/django/contrib/postgres/forms/hstore.py +++ b/django/contrib/postgres/forms/hstore.py @@ -5,7 +5,6 @@ from django.core.exceptions import ValidationError from django.utils import six from django.utils.translation import ugettext_lazy as _ - __all__ = ['HStoreField'] diff --git a/django/contrib/postgres/forms/ranges.py b/django/contrib/postgres/forms/ranges.py index 23db4fe514..80ea8299c9 100644 --- a/django/contrib/postgres/forms/ranges.py +++ b/django/contrib/postgres/forms/ranges.py @@ -1,11 +1,10 @@ -from django.core import exceptions +from psycopg2.extras import DateRange, DateTimeTZRange, NumericRange + from django import forms +from django.core import exceptions from django.forms.widgets import MultiWidget from django.utils.translation import ugettext_lazy as _ -from psycopg2.extras import NumericRange, DateRange, DateTimeTZRange - - __all__ = ['IntegerRangeField', 'FloatRangeField', 'DateTimeRangeField', 'DateRangeField'] diff --git a/django/contrib/postgres/signals.py b/django/contrib/postgres/signals.py index 602dd08700..183ba1d983 100644 --- a/django/contrib/postgres/signals.py +++ b/django/contrib/postgres/signals.py @@ -1,8 +1,8 @@ -from django.utils import six - from psycopg2 import ProgrammingError from psycopg2.extras import register_hstore +from django.utils import six + def register_hstore_handler(connection, **kwargs): if connection.vendor != 'postgresql': diff --git a/django/contrib/postgres/validators.py b/django/contrib/postgres/validators.py index 49ec921db1..3f576873f4 100644 --- a/django/contrib/postgres/validators.py +++ b/django/contrib/postgres/validators.py @@ -2,11 +2,11 @@ import copy from django.core.exceptions import ValidationError from django.core.validators import ( - MaxLengthValidator, MinLengthValidator, MaxValueValidator, + MaxLengthValidator, MaxValueValidator, MinLengthValidator, MinValueValidator, ) from django.utils.deconstruct import deconstructible -from django.utils.translation import ungettext_lazy, ugettext_lazy as _ +from django.utils.translation import ugettext_lazy as _, ungettext_lazy class ArrayMaxLengthValidator(MaxLengthValidator): diff --git a/django/contrib/redirects/apps.py b/django/contrib/redirects/apps.py index 247d8b5177..f09437ed00 100644 --- a/django/contrib/redirects/apps.py +++ b/django/contrib/redirects/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/redirects/middleware.py b/django/contrib/redirects/middleware.py index 6f0b6bc92e..903eb11abf 100644 --- a/django/contrib/redirects/middleware.py +++ b/django/contrib/redirects/middleware.py @@ -1,11 +1,11 @@ from __future__ import unicode_literals +from django import http from django.apps import apps from django.conf import settings from django.contrib.redirects.models import Redirect from django.contrib.sites.shortcuts import get_current_site from django.core.exceptions import ImproperlyConfigured -from django import http class RedirectFallbackMiddleware(object): diff --git a/django/contrib/redirects/migrations/0001_initial.py b/django/contrib/redirects/migrations/0001_initial.py index 6f16c47f14..49906348bf 100644 --- a/django/contrib/redirects/migrations/0001_initial.py +++ b/django/contrib/redirects/migrations/0001_initial.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/redirects/models.py b/django/contrib/redirects/models.py index 2051ac039a..2d26673121 100644 --- a/django/contrib/redirects/models.py +++ b/django/contrib/redirects/models.py @@ -1,7 +1,7 @@ -from django.db import models from django.contrib.sites.models import Site -from django.utils.translation import ugettext_lazy as _ +from django.db import models from django.utils.encoding import python_2_unicode_compatible +from django.utils.translation import ugettext_lazy as _ @python_2_unicode_compatible diff --git a/django/contrib/sessions/apps.py b/django/contrib/sessions/apps.py index 78110a477d..1e75a6fff8 100644 --- a/django/contrib/sessions/apps.py +++ b/django/contrib/sessions/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/sessions/backends/base.py b/django/contrib/sessions/backends/base.py index c7819b220d..3b24b8d3d7 100644 --- a/django/contrib/sessions/backends/base.py +++ b/django/contrib/sessions/backends/base.py @@ -1,21 +1,20 @@ from __future__ import unicode_literals import base64 -from datetime import datetime, timedelta import logging import string +from datetime import datetime, timedelta from django.conf import settings +from django.contrib.sessions.exceptions import SuspiciousSession from django.core.exceptions import SuspiciousOperation -from django.utils.crypto import constant_time_compare -from django.utils.crypto import get_random_string -from django.utils.crypto import salted_hmac from django.utils import timezone +from django.utils.crypto import ( + constant_time_compare, get_random_string, salted_hmac, +) from django.utils.encoding import force_bytes, force_text from django.utils.module_loading import import_string -from django.contrib.sessions.exceptions import SuspiciousSession - # session_key should not be case sensitive because some backends can store it # on case insensitive file systems. VALID_KEY_CHARS = string.ascii_lowercase + string.digits diff --git a/django/contrib/sessions/backends/cache.py b/django/contrib/sessions/backends/cache.py index 2cac8296d5..38b6112f51 100644 --- a/django/contrib/sessions/backends/cache.py +++ b/django/contrib/sessions/backends/cache.py @@ -1,5 +1,5 @@ from django.conf import settings -from django.contrib.sessions.backends.base import SessionBase, CreateError +from django.contrib.sessions.backends.base import CreateError, SessionBase from django.core.cache import caches from django.utils.six.moves import range diff --git a/django/contrib/sessions/backends/cached_db.py b/django/contrib/sessions/backends/cached_db.py index 71bf40d9c4..23e0a74bbf 100644 --- a/django/contrib/sessions/backends/cached_db.py +++ b/django/contrib/sessions/backends/cached_db.py @@ -83,4 +83,4 @@ class SessionStore(DBStore): # At bottom to avoid circular import -from django.contrib.sessions.models import Session +from django.contrib.sessions.models import Session # isort:skip diff --git a/django/contrib/sessions/backends/db.py b/django/contrib/sessions/backends/db.py index a087061c1f..30e2675b3b 100644 --- a/django/contrib/sessions/backends/db.py +++ b/django/contrib/sessions/backends/db.py @@ -1,8 +1,8 @@ import logging -from django.contrib.sessions.backends.base import SessionBase, CreateError +from django.contrib.sessions.backends.base import CreateError, SessionBase from django.core.exceptions import SuspiciousOperation -from django.db import IntegrityError, transaction, router +from django.db import IntegrityError, router, transaction from django.utils import timezone from django.utils.encoding import force_text @@ -83,4 +83,4 @@ class SessionStore(SessionBase): # At bottom to avoid circular import -from django.contrib.sessions.models import Session +from django.contrib.sessions.models import Session # isort:skip diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py index 6569dafbe3..10d163acc4 100644 --- a/django/contrib/sessions/backends/file.py +++ b/django/contrib/sessions/backends/file.py @@ -6,13 +6,14 @@ import shutil import tempfile from django.conf import settings -from django.contrib.sessions.backends.base import SessionBase, CreateError, VALID_KEY_CHARS -from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured +from django.contrib.sessions.backends.base import ( + VALID_KEY_CHARS, CreateError, SessionBase, +) +from django.contrib.sessions.exceptions import InvalidSessionKey +from django.core.exceptions import ImproperlyConfigured, SuspiciousOperation from django.utils import timezone from django.utils.encoding import force_text -from django.contrib.sessions.exceptions import InvalidSessionKey - class SessionStore(SessionBase): """ diff --git a/django/contrib/sessions/backends/signed_cookies.py b/django/contrib/sessions/backends/signed_cookies.py index 77a6750ce4..b51d3c3053 100644 --- a/django/contrib/sessions/backends/signed_cookies.py +++ b/django/contrib/sessions/backends/signed_cookies.py @@ -1,7 +1,6 @@ from django.conf import settings -from django.core import signing - from django.contrib.sessions.backends.base import SessionBase +from django.core import signing class SessionStore(SessionBase): diff --git a/django/contrib/sessions/middleware.py b/django/contrib/sessions/middleware.py index d1595b1ae4..69ca669033 100644 --- a/django/contrib/sessions/middleware.py +++ b/django/contrib/sessions/middleware.py @@ -1,5 +1,5 @@ -from importlib import import_module import time +from importlib import import_module from django.conf import settings from django.utils.cache import patch_vary_headers diff --git a/django/contrib/sessions/migrations/0001_initial.py b/django/contrib/sessions/migrations/0001_initial.py index ade7ac6043..82b856ae62 100644 --- a/django/contrib/sessions/migrations/0001_initial.py +++ b/django/contrib/sessions/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations import django.contrib.sessions.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/sessions/models.py b/django/contrib/sessions/models.py index bd2b7dfcf4..ce9d609a9b 100644 --- a/django/contrib/sessions/models.py +++ b/django/contrib/sessions/models.py @@ -60,4 +60,4 @@ class Session(models.Model): # At bottom to avoid circular import -from django.contrib.sessions.backends.db import SessionStore +from django.contrib.sessions.backends.db import SessionStore # isort:skip diff --git a/django/contrib/sessions/serializers.py b/django/contrib/sessions/serializers.py index 92a31c054b..b272c9c95d 100644 --- a/django/contrib/sessions/serializers.py +++ b/django/contrib/sessions/serializers.py @@ -1,4 +1,5 @@ from django.core.signing import JSONSerializer as BaseJSONSerializer + try: from django.utils.six.moves import cPickle as pickle except ImportError: diff --git a/django/contrib/sessions/tests.py b/django/contrib/sessions/tests.py index f39d46a8f6..112ac30d35 100644 --- a/django/contrib/sessions/tests.py +++ b/django/contrib/sessions/tests.py @@ -1,33 +1,35 @@ import base64 -from datetime import timedelta import os import shutil import string import tempfile import unittest +from datetime import timedelta from django.conf import settings -from django.contrib.sessions.backends.db import SessionStore as DatabaseSession from django.contrib.sessions.backends.cache import SessionStore as CacheSession -from django.contrib.sessions.backends.cached_db import SessionStore as CacheDBSession +from django.contrib.sessions.backends.cached_db import \ + SessionStore as CacheDBSession +from django.contrib.sessions.backends.db import SessionStore as DatabaseSession from django.contrib.sessions.backends.file import SessionStore as FileSession -from django.contrib.sessions.backends.signed_cookies import SessionStore as CookieSession -from django.contrib.sessions.models import Session +from django.contrib.sessions.backends.signed_cookies import \ + SessionStore as CookieSession +from django.contrib.sessions.exceptions import InvalidSessionKey from django.contrib.sessions.middleware import SessionMiddleware +from django.contrib.sessions.models import Session +from django.core import management from django.core.cache import caches from django.core.cache.backends.base import InvalidCacheBackendError -from django.core import management from django.core.exceptions import ImproperlyConfigured from django.http import HttpResponse -from django.test import TestCase, RequestFactory, ignore_warnings, override_settings +from django.test import ( + RequestFactory, TestCase, ignore_warnings, override_settings, +) from django.test.utils import patch_logger -from django.utils import six -from django.utils import timezone +from django.utils import six, timezone from django.utils.encoding import force_text from django.utils.six.moves import http_cookies -from django.contrib.sessions.exceptions import InvalidSessionKey - class SessionTestsMixin(object): # This does not inherit from TestCase to avoid any tests being run with this diff --git a/django/contrib/sitemaps/apps.py b/django/contrib/sitemaps/apps.py index 3749b5a759..e2abc70e24 100644 --- a/django/contrib/sitemaps/apps.py +++ b/django/contrib/sitemaps/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/sitemaps/management/commands/ping_google.py b/django/contrib/sitemaps/management/commands/ping_google.py index f2e7c79856..d362372bed 100644 --- a/django/contrib/sitemaps/management/commands/ping_google.py +++ b/django/contrib/sitemaps/management/commands/ping_google.py @@ -1,5 +1,5 @@ -from django.core.management.base import BaseCommand from django.contrib.sitemaps import ping_google +from django.core.management.base import BaseCommand class Command(BaseCommand): diff --git a/django/contrib/sitemaps/tests/test_generic.py b/django/contrib/sitemaps/tests/test_generic.py index 870e29886d..8dd8bdce09 100644 --- a/django/contrib/sitemaps/tests/test_generic.py +++ b/django/contrib/sitemaps/tests/test_generic.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.test import override_settings -from .base import TestModel, SitemapTestsBase +from .base import SitemapTestsBase, TestModel @override_settings(ABSOLUTE_URL_OVERRIDES={}) diff --git a/django/contrib/sitemaps/tests/test_http.py b/django/contrib/sitemaps/tests/test_http.py index dde9e97c01..d3885ac1f1 100644 --- a/django/contrib/sitemaps/tests/test_http.py +++ b/django/contrib/sitemaps/tests/test_http.py @@ -6,16 +6,16 @@ from unittest import skipUnless from django.apps import apps from django.conf import settings -from django.contrib.sitemaps import Sitemap, GenericSitemap +from django.contrib.sitemaps import GenericSitemap, Sitemap from django.contrib.sites.models import Site from django.core.exceptions import ImproperlyConfigured from django.test import ignore_warnings, modify_settings, override_settings +from django.utils._os import upath from django.utils.deprecation import RemovedInDjango20Warning from django.utils.formats import localize -from django.utils._os import upath from django.utils.translation import activate, deactivate -from .base import TestModel, SitemapTestsBase +from .base import SitemapTestsBase, TestModel class HTTPSitemapTests(SitemapTestsBase): diff --git a/django/contrib/sitemaps/tests/urls/http.py b/django/contrib/sitemaps/tests/urls/http.py index c7bcc0fac0..052aec17c1 100644 --- a/django/contrib/sitemaps/tests/urls/http.py +++ b/django/contrib/sitemaps/tests/urls/http.py @@ -1,13 +1,13 @@ from datetime import date, datetime + from django.conf.urls import url from django.conf.urls.i18n import i18n_patterns -from django.contrib.sitemaps import Sitemap, GenericSitemap, views +from django.contrib.sitemaps import GenericSitemap, Sitemap, views +from django.contrib.sitemaps.tests.base import I18nTestModel, TestModel from django.http import HttpResponse from django.utils import timezone from django.views.decorators.cache import cache_page -from django.contrib.sitemaps.tests.base import I18nTestModel, TestModel - class SimpleSitemap(Sitemap): changefreq = "never" diff --git a/django/contrib/sitemaps/views.py b/django/contrib/sitemaps/views.py index a743f6e614..e08a307c51 100644 --- a/django/contrib/sitemaps/views.py +++ b/django/contrib/sitemaps/views.py @@ -1,5 +1,5 @@ -from calendar import timegm import datetime +from calendar import timegm from functools import wraps from django.contrib.sites.shortcuts import get_current_site diff --git a/django/contrib/sites/apps.py b/django/contrib/sites/apps.py index c639c3053b..7d319e0199 100644 --- a/django/contrib/sites/apps.py +++ b/django/contrib/sites/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.db.models.signals import post_migrate from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/sites/migrations/0001_initial.py b/django/contrib/sites/migrations/0001_initial.py index 00ac06de10..84ad0cd408 100644 --- a/django/contrib/sites/migrations/0001_initial.py +++ b/django/contrib/sites/migrations/0001_initial.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import models, migrations -from django.contrib.sites.models import _simple_domain_name_validator import django.contrib.sites.models +from django.contrib.sites.models import _simple_domain_name_validator +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django/contrib/sites/models.py b/django/contrib/sites/models.py index 440cfb8b11..6f983dc009 100644 --- a/django/contrib/sites/models.py +++ b/django/contrib/sites/models.py @@ -4,11 +4,10 @@ import string from django.core.exceptions import ImproperlyConfigured, ValidationError from django.db import models -from django.db.models.signals import pre_save, pre_delete +from django.db.models.signals import pre_delete, pre_save from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ - SITE_CACHE = {} diff --git a/django/contrib/sites/tests.py b/django/contrib/sites/tests.py index c820b0247f..f58c807622 100644 --- a/django/contrib/sites/tests.py +++ b/django/contrib/sites/tests.py @@ -11,7 +11,7 @@ from django.test.utils import captured_stdout from . import models from .management import create_default_site from .middleware import CurrentSiteMiddleware -from .models import clear_site_cache, Site +from .models import Site, clear_site_cache from .requests import RequestSite from .shortcuts import get_current_site diff --git a/django/contrib/staticfiles/apps.py b/django/contrib/staticfiles/apps.py index ae69667b7b..f406e16181 100644 --- a/django/contrib/staticfiles/apps.py +++ b/django/contrib/staticfiles/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/staticfiles/finders.py b/django/contrib/staticfiles/finders.py index 3569f360b2..7c775e7f89 100644 --- a/django/contrib/staticfiles/finders.py +++ b/django/contrib/staticfiles/finders.py @@ -1,16 +1,17 @@ -from collections import OrderedDict import os +from collections import OrderedDict from django.apps import apps from django.conf import settings +from django.contrib.staticfiles import utils from django.core.exceptions import ImproperlyConfigured -from django.core.files.storage import default_storage, Storage, FileSystemStorage -from django.utils.functional import empty, LazyObject -from django.utils.module_loading import import_string +from django.core.files.storage import ( + FileSystemStorage, Storage, default_storage, +) +from django.utils import lru_cache, six from django.utils._os import safe_join -from django.utils import six, lru_cache - -from django.contrib.staticfiles import utils +from django.utils.functional import LazyObject, empty +from django.utils.module_loading import import_string # To keep track on which directories the finder has searched the static files. searched_locations = [] diff --git a/django/contrib/staticfiles/handlers.py b/django/contrib/staticfiles/handlers.py index e711f9a476..8dedd60ce8 100644 --- a/django/contrib/staticfiles/handlers.py +++ b/django/contrib/staticfiles/handlers.py @@ -1,10 +1,9 @@ from django.conf import settings -from django.core.handlers.wsgi import get_path_info, WSGIHandler -from django.utils.six.moves.urllib.parse import urlparse -from django.utils.six.moves.urllib.request import url2pathname - from django.contrib.staticfiles import utils from django.contrib.staticfiles.views import serve +from django.core.handlers.wsgi import WSGIHandler, get_path_info +from django.utils.six.moves.urllib.parse import urlparse +from django.utils.six.moves.urllib.request import url2pathname class StaticFilesHandler(WSGIHandler): diff --git a/django/contrib/staticfiles/management/commands/collectstatic.py b/django/contrib/staticfiles/management/commands/collectstatic.py index 10c8c8f8d9..1ed7127f96 100644 --- a/django/contrib/staticfiles/management/commands/collectstatic.py +++ b/django/contrib/staticfiles/management/commands/collectstatic.py @@ -3,15 +3,14 @@ from __future__ import unicode_literals import os from collections import OrderedDict +from django.contrib.staticfiles.finders import get_finders +from django.contrib.staticfiles.storage import staticfiles_storage from django.core.files.storage import FileSystemStorage -from django.core.management.base import CommandError, BaseCommand +from django.core.management.base import BaseCommand, CommandError from django.core.management.color import no_style from django.utils.encoding import smart_text from django.utils.six.moves import input -from django.contrib.staticfiles.finders import get_finders -from django.contrib.staticfiles.storage import staticfiles_storage - class Command(BaseCommand): """ diff --git a/django/contrib/staticfiles/management/commands/findstatic.py b/django/contrib/staticfiles/management/commands/findstatic.py index 658ac3f248..2152035dbb 100644 --- a/django/contrib/staticfiles/management/commands/findstatic.py +++ b/django/contrib/staticfiles/management/commands/findstatic.py @@ -1,10 +1,10 @@ from __future__ import unicode_literals import os -from django.core.management.base import LabelCommand -from django.utils.encoding import force_text from django.contrib.staticfiles import finders +from django.core.management.base import LabelCommand +from django.utils.encoding import force_text class Command(LabelCommand): diff --git a/django/contrib/staticfiles/management/commands/runserver.py b/django/contrib/staticfiles/management/commands/runserver.py index fd358bee3d..d42c773457 100644 --- a/django/contrib/staticfiles/management/commands/runserver.py +++ b/django/contrib/staticfiles/management/commands/runserver.py @@ -1,7 +1,7 @@ from django.conf import settings -from django.core.management.commands.runserver import Command as RunserverCommand - from django.contrib.staticfiles.handlers import StaticFilesHandler +from django.core.management.commands.runserver import \ + Command as RunserverCommand class Command(RunserverCommand): diff --git a/django/contrib/staticfiles/storage.py b/django/contrib/staticfiles/storage.py index 9046bb1d51..6a0a5407dd 100644 --- a/django/contrib/staticfiles/storage.py +++ b/django/contrib/staticfiles/storage.py @@ -1,22 +1,25 @@ from __future__ import unicode_literals -from collections import OrderedDict + import hashlib +import json import os import posixpath import re -import json +from collections import OrderedDict from django.conf import settings -from django.core.cache import (caches, InvalidCacheBackendError, - cache as default_cache) +from django.contrib.staticfiles.utils import check_settings, matches_patterns +from django.core.cache import ( + InvalidCacheBackendError, cache as default_cache, caches, +) from django.core.exceptions import ImproperlyConfigured from django.core.files.base import ContentFile from django.core.files.storage import FileSystemStorage, get_storage_class from django.utils.encoding import force_bytes, force_text from django.utils.functional import LazyObject -from django.utils.six.moves.urllib.parse import unquote, urlsplit, urlunsplit, urldefrag - -from django.contrib.staticfiles.utils import check_settings, matches_patterns +from django.utils.six.moves.urllib.parse import ( + unquote, urldefrag, urlsplit, urlunsplit, +) class StaticFilesStorage(FileSystemStorage): diff --git a/django/contrib/staticfiles/templatetags/staticfiles.py b/django/contrib/staticfiles/templatetags/staticfiles.py index b5466cab31..e666e3adba 100644 --- a/django/contrib/staticfiles/templatetags/staticfiles.py +++ b/django/contrib/staticfiles/templatetags/staticfiles.py @@ -1,6 +1,6 @@ from django import template -from django.templatetags.static import StaticNode from django.contrib.staticfiles.storage import staticfiles_storage +from django.templatetags.static import StaticNode register = template.Library() diff --git a/django/contrib/staticfiles/testing.py b/django/contrib/staticfiles/testing.py index 7b30499ece..4eb4adcd04 100644 --- a/django/contrib/staticfiles/testing.py +++ b/django/contrib/staticfiles/testing.py @@ -1,6 +1,5 @@ -from django.test import LiveServerTestCase - from django.contrib.staticfiles.handlers import StaticFilesHandler +from django.test import LiveServerTestCase class StaticLiveServerTestCase(LiveServerTestCase): diff --git a/django/contrib/staticfiles/utils.py b/django/contrib/staticfiles/utils.py index 92bca71d57..2c44bb7790 100644 --- a/django/contrib/staticfiles/utils.py +++ b/django/contrib/staticfiles/utils.py @@ -1,5 +1,6 @@ -import os import fnmatch +import os + from django.conf import settings from django.core.exceptions import ImproperlyConfigured diff --git a/django/contrib/staticfiles/views.py b/django/contrib/staticfiles/views.py index 166879a0e5..cec1247e5e 100644 --- a/django/contrib/staticfiles/views.py +++ b/django/contrib/staticfiles/views.py @@ -7,12 +7,11 @@ import os import posixpath from django.conf import settings +from django.contrib.staticfiles import finders from django.http import Http404 from django.utils.six.moves.urllib.parse import unquote from django.views import static -from django.contrib.staticfiles import finders - def serve(request, path, insecure=False, **kwargs): """ diff --git a/django/contrib/syndication/apps.py b/django/contrib/syndication/apps.py index 8a34fe18f8..27bda578a4 100644 --- a/django/contrib/syndication/apps.py +++ b/django/contrib/syndication/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/contrib/syndication/views.py b/django/contrib/syndication/views.py index da38323b01..e8511ddfc9 100644 --- a/django/contrib/syndication/views.py +++ b/django/contrib/syndication/views.py @@ -5,13 +5,12 @@ from calendar import timegm from django.conf import settings from django.contrib.sites.shortcuts import get_current_site from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist -from django.http import HttpResponse, Http404 -from django.template import loader, TemplateDoesNotExist -from django.utils import feedgenerator +from django.http import Http404, HttpResponse +from django.template import TemplateDoesNotExist, loader +from django.utils import feedgenerator, six from django.utils.encoding import force_text, iri_to_uri, smart_text from django.utils.html import escape from django.utils.http import http_date -from django.utils import six from django.utils.timezone import get_default_timezone, is_naive, make_aware diff --git a/django/contrib/webdesign/apps.py b/django/contrib/webdesign/apps.py index b78e801795..9a332a2234 100644 --- a/django/contrib/webdesign/apps.py +++ b/django/contrib/webdesign/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - from django.utils.translation import ugettext_lazy as _ diff --git a/django/core/cache/backends/base.py b/django/core/cache/backends/base.py index 4b7806fc29..7ac1e5bc32 100644 --- a/django/core/cache/backends/base.py +++ b/django/core/cache/backends/base.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals import time import warnings -from django.core.exceptions import ImproperlyConfigured, DjangoRuntimeWarning +from django.core.exceptions import DjangoRuntimeWarning, ImproperlyConfigured from django.utils.module_loading import import_string diff --git a/django/core/cache/backends/db.py b/django/core/cache/backends/db.py index 99ce96d49e..f016179491 100644 --- a/django/core/cache/backends/db.py +++ b/django/core/cache/backends/db.py @@ -2,18 +2,18 @@ import base64 from datetime import datetime +from django.conf import settings +from django.core.cache.backends.base import DEFAULT_TIMEOUT, BaseCache +from django.db import DatabaseError, connections, router, transaction +from django.db.backends.utils import typecast_timestamp +from django.utils import six, timezone +from django.utils.encoding import force_bytes + try: from django.utils.six.moves import cPickle as pickle except ImportError: import pickle -from django.conf import settings -from django.core.cache.backends.base import BaseCache, DEFAULT_TIMEOUT -from django.db import connections, transaction, router, DatabaseError -from django.db.backends.utils import typecast_timestamp -from django.utils import timezone, six -from django.utils.encoding import force_bytes - class Options(object): """A class that will quack like a Django model _meta class. diff --git a/django/core/cache/backends/dummy.py b/django/core/cache/backends/dummy.py index eb21feebdf..d1aea0a325 100644 --- a/django/core/cache/backends/dummy.py +++ b/django/core/cache/backends/dummy.py @@ -1,6 +1,6 @@ "Dummy cache backend" -from django.core.cache.backends.base import BaseCache, DEFAULT_TIMEOUT +from django.core.cache.backends.base import DEFAULT_TIMEOUT, BaseCache class DummyCache(BaseCache): diff --git a/django/core/cache/backends/filebased.py b/django/core/cache/backends/filebased.py index 94fdfa9ed7..c35efce92c 100644 --- a/django/core/cache/backends/filebased.py +++ b/django/core/cache/backends/filebased.py @@ -8,9 +8,11 @@ import random import tempfile import time import zlib -from django.core.cache.backends.base import BaseCache, DEFAULT_TIMEOUT + +from django.core.cache.backends.base import DEFAULT_TIMEOUT, BaseCache from django.core.files.move import file_move_safe from django.utils.encoding import force_bytes + try: from django.utils.six.moves import cPickle as pickle except ImportError: diff --git a/django/core/cache/backends/locmem.py b/django/core/cache/backends/locmem.py index edf0ff22a7..8916ad176c 100644 --- a/django/core/cache/backends/locmem.py +++ b/django/core/cache/backends/locmem.py @@ -1,15 +1,16 @@ "Thread-safe in-memory cache backend." -from contextlib import contextmanager import time +from contextlib import contextmanager + +from django.core.cache.backends.base import DEFAULT_TIMEOUT, BaseCache +from django.utils.synch import RWLock + try: from django.utils.six.moves import cPickle as pickle except ImportError: import pickle -from django.core.cache.backends.base import BaseCache, DEFAULT_TIMEOUT -from django.utils.synch import RWLock - # Global in-memory store of cache data. Keyed by name, to provide # multiple named local memory caches. diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py index d5058c1e73..af68885641 100644 --- a/django/core/cache/backends/memcached.py +++ b/django/core/cache/backends/memcached.py @@ -1,9 +1,9 @@ "Memcached cache backend" -import time import pickle +import time -from django.core.cache.backends.base import BaseCache, DEFAULT_TIMEOUT +from django.core.cache.backends.base import DEFAULT_TIMEOUT, BaseCache from django.utils import six from django.utils.encoding import force_str from django.utils.functional import cached_property diff --git a/django/core/cache/utils.py b/django/core/cache/utils.py index dd9ad4abd1..c40e4eba0c 100644 --- a/django/core/cache/utils.py +++ b/django/core/cache/utils.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import hashlib + from django.utils.encoding import force_bytes from django.utils.http import urlquote diff --git a/django/core/checks/compatibility/django_1_7_0.py b/django/core/checks/compatibility/django_1_7_0.py index d164241a55..878541d3e5 100644 --- a/django/core/checks/compatibility/django_1_7_0.py +++ b/django/core/checks/compatibility/django_1_7_0.py @@ -1,6 +1,6 @@ from __future__ import unicode_literals -from .. import Warning, register, Tags +from .. import Tags, Warning, register @register(Tags.compatibility) diff --git a/django/core/checks/messages.py b/django/core/checks/messages.py index 6b5fd319a3..9245842039 100644 --- a/django/core/checks/messages.py +++ b/django/core/checks/messages.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.utils.encoding import python_2_unicode_compatible, force_str - +from django.utils.encoding import force_str, python_2_unicode_compatible # Levels DEBUG = 10 diff --git a/django/core/checks/security/base.py b/django/core/checks/security/base.py index 20fbd189b3..f740b63c7b 100644 --- a/django/core/checks/security/base.py +++ b/django/core/checks/security/base.py @@ -1,7 +1,6 @@ from django.conf import settings -from .. import register, Tags, Warning - +from .. import Tags, Warning, register SECRET_KEY_MIN_LENGTH = 50 SECRET_KEY_MIN_UNIQUE_CHARACTERS = 5 diff --git a/django/core/checks/security/csrf.py b/django/core/checks/security/csrf.py index 79cb6d4fa4..3effbc4498 100644 --- a/django/core/checks/security/csrf.py +++ b/django/core/checks/security/csrf.py @@ -1,7 +1,6 @@ from django.conf import settings -from .. import register, Tags, Warning - +from .. import Tags, Warning, register W003 = Warning( "You don't appear to be using Django's built-in " diff --git a/django/core/checks/security/sessions.py b/django/core/checks/security/sessions.py index b27aa1f9c2..7e857d74d8 100644 --- a/django/core/checks/security/sessions.py +++ b/django/core/checks/security/sessions.py @@ -1,6 +1,6 @@ from django.conf import settings -from .. import register, Tags, Warning +from .. import Tags, Warning, register def add_session_cookie_message(message): diff --git a/django/core/context_processors.py b/django/core/context_processors.py index 19cc8b4def..f2303bec59 100644 --- a/django/core/context_processors.py +++ b/django/core/context_processors.py @@ -1,9 +1,8 @@ import warnings -from django.template.context_processors import * # NOQA +from django.template.context_processors import * # NOQA from django.utils.deprecation import RemovedInDjango20Warning - warnings.warn( "django.core.context_processors is deprecated in favor of " "django.template.context_processors.", diff --git a/django/core/files/move.py b/django/core/files/move.py index 124529d9b9..f3972c5f98 100644 --- a/django/core/files/move.py +++ b/django/core/files/move.py @@ -10,7 +10,6 @@ from shutil import copystat from django.core.files import locks - __all__ = ['file_move_safe'] diff --git a/django/core/files/storage.py b/django/core/files/storage.py index 90ab1be27a..65b6d46463 100644 --- a/django/core/files/storage.py +++ b/django/core/files/storage.py @@ -1,23 +1,22 @@ -from datetime import datetime import errno -from inspect import getargspec import os import warnings +from datetime import datetime +from inspect import getargspec from django.conf import settings from django.core.exceptions import SuspiciousFileOperation -from django.core.files import locks, File +from django.core.files import File, locks from django.core.files.move import file_move_safe +from django.utils._os import abspathu, safe_join from django.utils.crypto import get_random_string -from django.utils.encoding import force_text, filepath_to_uri +from django.utils.deconstruct import deconstructible +from django.utils.deprecation import RemovedInDjango20Warning +from django.utils.encoding import filepath_to_uri, force_text from django.utils.functional import LazyObject from django.utils.module_loading import import_string from django.utils.six.moves.urllib.parse import urljoin from django.utils.text import get_valid_filename -from django.utils._os import safe_join, abspathu -from django.utils.deconstruct import deconstructible -from django.utils.deprecation import RemovedInDjango20Warning - __all__ = ('Storage', 'FileSystemStorage', 'DefaultStorage', 'default_storage') diff --git a/django/core/files/temp.py b/django/core/files/temp.py index 19849a4260..0791b8536e 100644 --- a/django/core/files/temp.py +++ b/django/core/files/temp.py @@ -18,6 +18,7 @@ full range of keyword arguments available in Python 2.6+ and 3.0+. import os import tempfile + from django.core.files.utils import FileProxyMixin __all__ = ('NamedTemporaryFile', 'gettempdir',) diff --git a/django/core/files/uploadedfile.py b/django/core/files/uploadedfile.py index 9a94894424..20eaecea75 100644 --- a/django/core/files/uploadedfile.py +++ b/django/core/files/uploadedfile.py @@ -7,8 +7,8 @@ import os from io import BytesIO from django.conf import settings -from django.core.files.base import File from django.core.files import temp as tempfile +from django.core.files.base import File from django.utils.encoding import force_str __all__ = ('UploadedFile', 'TemporaryUploadedFile', 'InMemoryUploadedFile', diff --git a/django/core/files/uploadhandler.py b/django/core/files/uploadhandler.py index c6fddce331..e5a2667342 100644 --- a/django/core/files/uploadhandler.py +++ b/django/core/files/uploadhandler.py @@ -7,7 +7,9 @@ from __future__ import unicode_literals from io import BytesIO from django.conf import settings -from django.core.files.uploadedfile import TemporaryUploadedFile, InMemoryUploadedFile +from django.core.files.uploadedfile import ( + InMemoryUploadedFile, TemporaryUploadedFile, +) from django.utils.encoding import python_2_unicode_compatible from django.utils.module_loading import import_string diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py index eba7811529..e40eb2fa59 100644 --- a/django/core/handlers/base.py +++ b/django/core/handlers/base.py @@ -6,14 +6,15 @@ import types from django import http from django.conf import settings -from django.core import urlresolvers -from django.core import signals -from django.core.exceptions import MiddlewareNotUsed, PermissionDenied, SuspiciousOperation +from django.core import signals, urlresolvers +from django.core.exceptions import ( + MiddlewareNotUsed, PermissionDenied, SuspiciousOperation, +) from django.db import connections, transaction from django.http.multipartparser import MultiPartParserError +from django.utils import six from django.utils.encoding import force_text from django.utils.module_loading import import_string -from django.utils import six from django.views import debug logger = logging.getLogger('django.request') diff --git a/django/core/handlers/wsgi.py b/django/core/handlers/wsgi.py index 3f69bfaaae..df6afdd297 100644 --- a/django/core/handlers/wsgi.py +++ b/django/core/handlers/wsgi.py @@ -12,9 +12,9 @@ from django.conf import settings from django.core import signals from django.core.handlers import base from django.core.urlresolvers import set_script_prefix +from django.utils import six from django.utils.encoding import force_str, force_text from django.utils.functional import cached_property -from django.utils import six logger = logging.getLogger('django.request') diff --git a/django/core/mail/backends/filebased.py b/django/core/mail/backends/filebased.py index 277d4bc88c..cfe033fb48 100644 --- a/django/core/mail/backends/filebased.py +++ b/django/core/mail/backends/filebased.py @@ -5,7 +5,8 @@ import os from django.conf import settings from django.core.exceptions import ImproperlyConfigured -from django.core.mail.backends.console import EmailBackend as ConsoleEmailBackend +from django.core.mail.backends.console import \ + EmailBackend as ConsoleEmailBackend from django.utils import six diff --git a/django/core/mail/backends/smtp.py b/django/core/mail/backends/smtp.py index 620168eab2..432f3a64c4 100644 --- a/django/core/mail/backends/smtp.py +++ b/django/core/mail/backends/smtp.py @@ -5,8 +5,8 @@ import threading from django.conf import settings from django.core.mail.backends.base import BaseEmailBackend -from django.core.mail.utils import DNS_NAME from django.core.mail.message import sanitize_address +from django.core.mail.utils import DNS_NAME class EmailBackend(BaseEmailBackend): diff --git a/django/core/mail/message.py b/django/core/mail/message.py index b895cd6f78..76cd477595 100644 --- a/django/core/mail/message.py +++ b/django/core/mail/message.py @@ -5,21 +5,21 @@ import os import random import sys import time -from email import (charset as Charset, encoders as Encoders, - message_from_string, generator) +from email import ( + charset as Charset, encoders as Encoders, generator, message_from_string, +) +from email.header import Header from email.message import Message -from email.mime.text import MIMEText -from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.mime.message import MIMEMessage -from email.header import Header -from email.utils import formatdate, getaddresses, formataddr, parseaddr +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText +from email.utils import formataddr, formatdate, getaddresses, parseaddr from django.conf import settings from django.core.mail.utils import DNS_NAME -from django.utils.encoding import force_text from django.utils import six - +from django.utils.encoding import force_text # Don't BASE64-encode UTF-8 messages so that we avoid unwanted attention from # some spam filters. diff --git a/django/core/management/base.py b/django/core/management/base.py index 51a2aed11f..564f15ebc5 100644 --- a/django/core/management/base.py +++ b/django/core/management/base.py @@ -1,16 +1,13 @@ # -*- coding: utf-8 -*- - -from __future__ import unicode_literals - """ Base classes for writing management commands (named commands which can be executed through ``django-admin`` or ``manage.py``). """ +from __future__ import unicode_literals import os import sys import warnings - from argparse import ArgumentParser from optparse import OptionParser diff --git a/django/core/management/color.py b/django/core/management/color.py index ce47f318ff..96dd557556 100644 --- a/django/core/management/color.py +++ b/django/core/management/color.py @@ -5,8 +5,7 @@ Sets up the terminal color scheme. import os import sys -from django.utils import lru_cache -from django.utils import termcolors +from django.utils import lru_cache, termcolors def supports_color(): diff --git a/django/core/management/commands/createcachetable.py b/django/core/management/commands/createcachetable.py index da39e9ad1e..750e787200 100644 --- a/django/core/management/commands/createcachetable.py +++ b/django/core/management/commands/createcachetable.py @@ -2,7 +2,9 @@ from django.conf import settings from django.core.cache import caches from django.core.cache.backends.db import BaseDatabaseCache from django.core.management.base import BaseCommand, CommandError -from django.db import connections, router, transaction, models, DEFAULT_DB_ALIAS +from django.db import ( + DEFAULT_DB_ALIAS, connections, models, router, transaction, +) from django.db.utils import DatabaseError from django.utils.encoding import force_text diff --git a/django/core/management/commands/dbshell.py b/django/core/management/commands/dbshell.py index b771585bef..9d6097eb47 100644 --- a/django/core/management/commands/dbshell.py +++ b/django/core/management/commands/dbshell.py @@ -1,5 +1,5 @@ from django.core.management.base import BaseCommand, CommandError -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections class Command(BaseCommand): diff --git a/django/core/management/commands/dumpdata.py b/django/core/management/commands/dumpdata.py index 94d2427304..a7c8bd7615 100644 --- a/django/core/management/commands/dumpdata.py +++ b/django/core/management/commands/dumpdata.py @@ -1,9 +1,9 @@ from collections import OrderedDict from django.apps import apps -from django.core.management.base import BaseCommand, CommandError from django.core import serializers -from django.db import router, DEFAULT_DB_ALIAS +from django.core.management.base import BaseCommand, CommandError +from django.db import DEFAULT_DB_ALIAS, router class Command(BaseCommand): diff --git a/django/core/management/commands/flush.py b/django/core/management/commands/flush.py index 090e26357a..97c94501c4 100644 --- a/django/core/management/commands/flush.py +++ b/django/core/management/commands/flush.py @@ -4,12 +4,12 @@ import sys from importlib import import_module from django.apps import apps -from django.db import connections, router, transaction, DEFAULT_DB_ALIAS from django.core.management.base import BaseCommand, CommandError from django.core.management.color import no_style -from django.core.management.sql import sql_flush, emit_post_migrate_signal -from django.utils.six.moves import input +from django.core.management.sql import emit_post_migrate_signal, sql_flush +from django.db import DEFAULT_DB_ALIAS, connections, router, transaction from django.utils import six +from django.utils.six.moves import input class Command(BaseCommand): diff --git a/django/core/management/commands/inspectdb.py b/django/core/management/commands/inspectdb.py index e433e62854..40bfffe5d0 100644 --- a/django/core/management/commands/inspectdb.py +++ b/django/core/management/commands/inspectdb.py @@ -1,11 +1,11 @@ from __future__ import unicode_literals -from collections import OrderedDict import keyword import re +from collections import OrderedDict from django.core.management.base import BaseCommand, CommandError -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections class Command(BaseCommand): diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py index 15a90d727b..a07f6b7300 100644 --- a/django/core/management/commands/loaddata.py +++ b/django/core/management/commands/loaddata.py @@ -5,6 +5,7 @@ import gzip import os import warnings import zipfile +from itertools import product from django.apps import apps from django.conf import settings @@ -12,13 +13,14 @@ from django.core import serializers from django.core.exceptions import ImproperlyConfigured from django.core.management.base import BaseCommand, CommandError from django.core.management.color import no_style -from django.db import (connections, router, transaction, DEFAULT_DB_ALIAS, - IntegrityError, DatabaseError) +from django.db import ( + DEFAULT_DB_ALIAS, DatabaseError, IntegrityError, connections, router, + transaction, +) from django.utils import lru_cache +from django.utils._os import upath from django.utils.encoding import force_text from django.utils.functional import cached_property -from django.utils._os import upath -from itertools import product try: import bz2 diff --git a/django/core/management/commands/makemessages.py b/django/core/management/commands/makemessages.py index 4e46c66114..2796524dc9 100644 --- a/django/core/management/commands/makemessages.py +++ b/django/core/management/commands/makemessages.py @@ -11,14 +11,15 @@ from itertools import dropwhile import django from django.conf import settings -from django.core.management.base import CommandError, BaseCommand -from django.core.management.utils import (handle_extensions, find_command, - popen_wrapper) +from django.core.management.base import BaseCommand, CommandError +from django.core.management.utils import ( + find_command, handle_extensions, popen_wrapper, +) +from django.utils import six from django.utils.encoding import force_str from django.utils.functional import cached_property, total_ordering -from django.utils import six -from django.utils.text import get_text_list from django.utils.jslex import prepare_js_for_gettext +from django.utils.text import get_text_list plural_forms_re = re.compile(r'^(?P<value>"Plural-Forms.+?\\n")\s*$', re.MULTILINE | re.DOTALL) STATUS_OK = 0 diff --git a/django/core/management/commands/makemigrations.py b/django/core/management/commands/makemigrations.py index 8cce2fae76..cb78107d33 100644 --- a/django/core/management/commands/makemigrations.py +++ b/django/core/management/commands/makemigrations.py @@ -1,13 +1,15 @@ -from itertools import takewhile -import sys import os +import sys +from itertools import takewhile from django.apps import apps from django.core.management.base import BaseCommand, CommandError from django.db.migrations import Migration -from django.db.migrations.loader import MigrationLoader from django.db.migrations.autodetector import MigrationAutodetector -from django.db.migrations.questioner import MigrationQuestioner, InteractiveMigrationQuestioner +from django.db.migrations.loader import MigrationLoader +from django.db.migrations.questioner import ( + InteractiveMigrationQuestioner, MigrationQuestioner, +) from django.db.migrations.state import ProjectState from django.db.migrations.writer import MigrationWriter from django.utils.six import iteritems diff --git a/django/core/management/commands/migrate.py b/django/core/management/commands/migrate.py index 4034f3fe5a..d1aff756f0 100644 --- a/django/core/management/commands/migrate.py +++ b/django/core/management/commands/migrate.py @@ -1,20 +1,22 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from collections import OrderedDict -from importlib import import_module import time import warnings +from collections import OrderedDict +from importlib import import_module from django.apps import apps from django.core.management import call_command from django.core.management.base import BaseCommand, CommandError -from django.core.management.sql import emit_post_migrate_signal, emit_pre_migrate_signal -from django.db import connections, router, transaction, DEFAULT_DB_ALIAS +from django.core.management.sql import ( + emit_post_migrate_signal, emit_pre_migrate_signal, +) +from django.db import DEFAULT_DB_ALIAS, connections, router, transaction +from django.db.migrations.autodetector import MigrationAutodetector from django.db.migrations.executor import MigrationExecutor from django.db.migrations.loader import AmbiguityError from django.db.migrations.state import ProjectState -from django.db.migrations.autodetector import MigrationAutodetector from django.utils.deprecation import RemovedInDjango20Warning from django.utils.module_loading import module_has_submodule diff --git a/django/core/management/commands/runserver.py b/django/core/management/commands/runserver.py index 7df5f15acf..fb388062e7 100644 --- a/django/core/management/commands/runserver.py +++ b/django/core/management/commands/runserver.py @@ -1,20 +1,19 @@ from __future__ import unicode_literals -from datetime import datetime import errno import os import re -import sys import socket +import sys +from datetime import datetime +from django.core.exceptions import ImproperlyConfigured from django.core.management.base import BaseCommand, CommandError -from django.core.servers.basehttp import run, get_internal_wsgi_application -from django.db import connections, DEFAULT_DB_ALIAS +from django.core.servers.basehttp import get_internal_wsgi_application, run +from django.db import DEFAULT_DB_ALIAS, connections from django.db.migrations.executor import MigrationExecutor -from django.utils import autoreload +from django.utils import autoreload, six from django.utils.encoding import force_text, get_system_encoding -from django.utils import six -from django.core.exceptions import ImproperlyConfigured naiveip_re = re.compile(r"""^(?: (?P<addr> diff --git a/django/core/management/commands/showmigrations.py b/django/core/management/commands/showmigrations.py index b6ef6a2ece..246bea588f 100644 --- a/django/core/management/commands/showmigrations.py +++ b/django/core/management/commands/showmigrations.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.core.management.base import BaseCommand, CommandError -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections from django.db.migrations.loader import MigrationLoader diff --git a/django/core/management/commands/sqlflush.py b/django/core/management/commands/sqlflush.py index 530bdfd7e1..eba9197be7 100644 --- a/django/core/management/commands/sqlflush.py +++ b/django/core/management/commands/sqlflush.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.core.management.base import BaseCommand from django.core.management.sql import sql_flush -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections class Command(BaseCommand): diff --git a/django/core/management/commands/sqlmigrate.py b/django/core/management/commands/sqlmigrate.py index 2358cd5259..14c2742c07 100644 --- a/django/core/management/commands/sqlmigrate.py +++ b/django/core/management/commands/sqlmigrate.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.core.management.base import BaseCommand, CommandError -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections from django.db.migrations.executor import MigrationExecutor from django.db.migrations.loader import AmbiguityError diff --git a/django/core/management/commands/sqlsequencereset.py b/django/core/management/commands/sqlsequencereset.py index 690ea902a4..ea7286c6ac 100644 --- a/django/core/management/commands/sqlsequencereset.py +++ b/django/core/management/commands/sqlsequencereset.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals from django.core.management.base import AppCommand -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections class Command(AppCommand): diff --git a/django/core/management/commands/squashmigrations.py b/django/core/management/commands/squashmigrations.py index 13dcb6da67..0087a96007 100644 --- a/django/core/management/commands/squashmigrations.py +++ b/django/core/management/commands/squashmigrations.py @@ -1,11 +1,11 @@ -from django.core.management.base import BaseCommand, CommandError from django.conf import settings -from django.db import connections, DEFAULT_DB_ALIAS, migrations -from django.db.migrations.loader import AmbiguityError +from django.core.management.base import BaseCommand, CommandError +from django.db import DEFAULT_DB_ALIAS, connections, migrations from django.db.migrations.executor import MigrationExecutor -from django.db.migrations.writer import MigrationWriter -from django.db.migrations.optimizer import MigrationOptimizer +from django.db.migrations.loader import AmbiguityError from django.db.migrations.migration import SwappableTuple +from django.db.migrations.optimizer import MigrationOptimizer +from django.db.migrations.writer import MigrationWriter from django.utils import six from django.utils.version import get_docs_version diff --git a/django/core/management/commands/test.py b/django/core/management/commands/test.py index 8dbff62653..127ed5c846 100644 --- a/django/core/management/commands/test.py +++ b/django/core/management/commands/test.py @@ -1,6 +1,6 @@ import logging -import sys import os +import sys from django.conf import settings from django.core.management.base import BaseCommand diff --git a/django/core/management/templates.py b/django/core/management/templates.py index b0bd7a7117..6648fafde9 100644 --- a/django/core/management/templates.py +++ b/django/core/management/templates.py @@ -8,18 +8,16 @@ import shutil import stat import sys import tempfile - from os import path import django -from django.template import Template, Context +from django.core.management.base import BaseCommand, CommandError +from django.core.management.utils import handle_extensions +from django.template import Context, Template from django.utils import archive -from django.utils.six.moves.urllib.request import urlretrieve from django.utils._os import rmtree_errorhandler +from django.utils.six.moves.urllib.request import urlretrieve from django.utils.version import get_docs_version -from django.core.management.base import BaseCommand, CommandError -from django.core.management.utils import handle_extensions - _drive_re = re.compile('^([a-z]):', re.I) _url_drive_re = re.compile('^([a-z])[:|]', re.I) diff --git a/django/core/management/utils.py b/django/core/management/utils.py index 7a823424a6..06ed04e377 100644 --- a/django/core/management/utils.py +++ b/django/core/management/utils.py @@ -1,11 +1,11 @@ from __future__ import unicode_literals import os -from subprocess import PIPE, Popen import sys +from subprocess import PIPE, Popen -from django.utils.encoding import force_text, DEFAULT_LOCALE_ENCODING from django.utils import six +from django.utils.encoding import DEFAULT_LOCALE_ENCODING, force_text from .base import CommandError diff --git a/django/core/serializers/json.py b/django/core/serializers/json.py index 614427f9a7..f67295edf9 100644 --- a/django/core/serializers/json.py +++ b/django/core/serializers/json.py @@ -3,8 +3,7 @@ Serialize data to/from JSON """ # Avoid shadowing the standard library json module -from __future__ import absolute_import -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import datetime import decimal @@ -12,8 +11,9 @@ import json import sys from django.core.serializers.base import DeserializationError -from django.core.serializers.python import Serializer as PythonSerializer -from django.core.serializers.python import Deserializer as PythonDeserializer +from django.core.serializers.python import ( + Deserializer as PythonDeserializer, Serializer as PythonSerializer, +) from django.utils import six from django.utils.timezone import is_aware diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index f8dd7aebac..137dfc134e 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -9,8 +9,8 @@ from django.apps import apps from django.conf import settings from django.core.serializers import base from django.db import DEFAULT_DB_ALIAS, models -from django.utils.encoding import force_text, is_protected_type from django.utils import six +from django.utils.encoding import force_text, is_protected_type class Serializer(base.Serializer): diff --git a/django/core/serializers/pyyaml.py b/django/core/serializers/pyyaml.py index 2d8bb187c1..105072b54e 100644 --- a/django/core/serializers/pyyaml.py +++ b/django/core/serializers/pyyaml.py @@ -5,14 +5,16 @@ Requires PyYaml (http://pyyaml.org/), but that's checked for in __init__. """ import decimal -import yaml import sys from io import StringIO -from django.db import models +import yaml + from django.core.serializers.base import DeserializationError -from django.core.serializers.python import Serializer as PythonSerializer -from django.core.serializers.python import Deserializer as PythonDeserializer +from django.core.serializers.python import ( + Deserializer as PythonDeserializer, Serializer as PythonSerializer, +) +from django.db import models from django.utils import six # Use the C (faster) implementation if possible diff --git a/django/core/serializers/xml_serializer.py b/django/core/serializers/xml_serializer.py index 0b759799d2..73bed113b9 100644 --- a/django/core/serializers/xml_serializer.py +++ b/django/core/serializers/xml_serializer.py @@ -4,15 +4,16 @@ XML serializer. from __future__ import unicode_literals +from xml.dom import pulldom +from xml.sax import handler +from xml.sax.expatreader import ExpatParser as _ExpatParser + from django.apps import apps from django.conf import settings from django.core.serializers import base -from django.db import models, DEFAULT_DB_ALIAS -from django.utils.xmlutils import SimplerXMLGenerator +from django.db import DEFAULT_DB_ALIAS, models from django.utils.encoding import smart_text -from xml.dom import pulldom -from xml.sax import handler -from xml.sax.expatreader import ExpatParser as _ExpatParser +from django.utils.xmlutils import SimplerXMLGenerator class Serializer(base.Serializer): diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py index 702290b61d..42a9fbc2fe 100644 --- a/django/core/urlresolvers.py +++ b/django/core/urlresolvers.py @@ -9,13 +9,14 @@ a string) and returns a tuple in this format: from __future__ import unicode_literals import functools -from importlib import import_module import re -from threading import local import warnings +from importlib import import_module +from threading import local -from django.http import Http404 from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist +from django.http import Http404 +from django.utils import lru_cache, six from django.utils.datastructures import MultiValueDict from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_str, force_text, iri_to_uri @@ -23,10 +24,8 @@ from django.utils.functional import cached_property, lazy from django.utils.http import RFC3986_SUBDELIMS, urlquote from django.utils.module_loading import module_has_submodule from django.utils.regex_helper import normalize -from django.utils import six, lru_cache from django.utils.translation import get_language - # SCRIPT_NAME prefixes for each thread are stored here. If there's no entry for # the current thread (which is the only one we ever access), it is assumed to # be empty. diff --git a/django/core/validators.py b/django/core/validators.py index 8d87cef412..bb8224f728 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -3,13 +3,12 @@ from __future__ import unicode_literals import re from django.core.exceptions import ValidationError +from django.utils import six from django.utils.deconstruct import deconstructible -from django.utils.translation import ugettext_lazy as _, ungettext_lazy from django.utils.encoding import force_text from django.utils.ipv6 import is_valid_ipv6_address -from django.utils import six from django.utils.six.moves.urllib.parse import urlsplit, urlunsplit - +from django.utils.translation import ugettext_lazy as _, ungettext_lazy # These values, if given to validate(), will trigger the self.required check. EMPTY_VALUES = (None, '', [], (), {}) diff --git a/django/db/backends/base/base.py b/django/db/backends/base/base.py index cbc4983046..460fceab71 100644 --- a/django/db/backends/base/base.py +++ b/django/db/backends/base/base.py @@ -1,18 +1,17 @@ -from collections import deque -from contextlib import contextmanager import time import warnings +from collections import deque +from contextlib import contextmanager from django.conf import settings from django.db import DEFAULT_DB_ALIAS -from django.db.backends.signals import connection_created from django.db.backends import utils +from django.db.backends.signals import connection_created from django.db.transaction import TransactionManagementError from django.db.utils import DatabaseError, DatabaseErrorWrapper from django.utils.functional import cached_property from django.utils.six.moves import _thread as thread - NO_DB_ALIAS = '__no_db__' diff --git a/django/db/backends/base/creation.py b/django/db/backends/base/creation.py index 30e094cfe7..854e17b6c2 100644 --- a/django/db/backends/base/creation.py +++ b/django/db/backends/base/creation.py @@ -8,7 +8,6 @@ from django.db import router from django.utils.six import StringIO from django.utils.six.moves import input - # The prefix to put on the default database name when creating # the test database. TEST_DATABASE_PREFIX = 'test_' diff --git a/django/db/backends/base/introspection.py b/django/db/backends/base/introspection.py index d20bfa1df0..5f828b94cc 100644 --- a/django/db/backends/base/introspection.py +++ b/django/db/backends/base/introspection.py @@ -2,7 +2,6 @@ from collections import namedtuple from django.utils import six - # Structure returned by DatabaseIntrospection.get_table_list() TableInfo = namedtuple('TableInfo', ['name', 'type']) diff --git a/django/db/backends/base/operations.py b/django/db/backends/base/operations.py index 50f6c93a07..aebe4312c8 100644 --- a/django/db/backends/base/operations.py +++ b/django/db/backends/base/operations.py @@ -1,7 +1,7 @@ import datetime import decimal -from importlib import import_module import warnings +from importlib import import_module from django.conf import settings from django.core.exceptions import ImproperlyConfigured diff --git a/django/db/backends/dummy/base.py b/django/db/backends/dummy/base.py index e39d7e621e..ba8ad10210 100644 --- a/django/db/backends/dummy/base.py +++ b/django/db/backends/dummy/base.py @@ -12,8 +12,8 @@ from django.db.backends.base.base import BaseDatabaseWrapper from django.db.backends.base.client import BaseDatabaseClient from django.db.backends.base.creation import BaseDatabaseCreation from django.db.backends.base.features import BaseDatabaseFeatures -from django.db.backends.base.operations import BaseDatabaseOperations from django.db.backends.base.introspection import BaseDatabaseIntrospection +from django.db.backends.base.operations import BaseDatabaseOperations from django.db.backends.base.validation import BaseDatabaseValidation diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index f3413f43f3..515988babd 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -15,9 +15,9 @@ from django.conf import settings from django.db import utils from django.db.backends import utils as backend_utils from django.db.backends.base.base import BaseDatabaseWrapper -from django.utils.encoding import force_str from django.db.backends.mysql.schema import DatabaseSchemaEditor from django.utils import six, timezone +from django.utils.encoding import force_str from django.utils.functional import cached_property from django.utils.safestring import SafeBytes, SafeText @@ -27,16 +27,16 @@ except ImportError as e: from django.core.exceptions import ImproperlyConfigured raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) -from MySQLdb.converters import conversions, Thing2Literal -from MySQLdb.constants import FIELD_TYPE, CLIENT +from MySQLdb.constants import CLIENT, FIELD_TYPE # isort:skip +from MySQLdb.converters import Thing2Literal, conversions # isort:skip # Some of these import MySQLdb, so import them after checking if it's installed. -from .client import DatabaseClient -from .creation import DatabaseCreation -from .features import DatabaseFeatures -from .introspection import DatabaseIntrospection -from .operations import DatabaseOperations -from .validation import DatabaseValidation +from .client import DatabaseClient # isort:skip +from .creation import DatabaseCreation # isort:skip +from .features import DatabaseFeatures # isort:skip +from .introspection import DatabaseIntrospection # isort:skip +from .operations import DatabaseOperations # isort:skip +from .validation import DatabaseValidation # isort:skip # We want version (1, 2, 1, 'final', 2) or later. We can't just use # lexicographic ordering in this check because then (1, 2, 1, 'gamma') diff --git a/django/db/backends/mysql/introspection.py b/django/db/backends/mysql/introspection.py index aa3c008d13..f40e8962f8 100644 --- a/django/db/backends/mysql/introspection.py +++ b/django/db/backends/mysql/introspection.py @@ -1,14 +1,14 @@ -from collections import namedtuple import re +from collections import namedtuple + +from MySQLdb.constants import FIELD_TYPE -from django.utils.datastructures import OrderedSet from django.db.backends.base.introspection import ( BaseDatabaseIntrospection, FieldInfo, TableInfo, ) +from django.utils.datastructures import OrderedSet from django.utils.encoding import force_text -from MySQLdb.constants import FIELD_TYPE - FieldInfo = namedtuple('FieldInfo', FieldInfo._fields + ('extra', 'default')) InfoLine = namedtuple('InfoLine', 'col_name data_type max_len num_prec num_scale extra column_default') foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)") diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 134321cecc..d79b582e82 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -55,13 +55,13 @@ except ImportError as e: raise ImproperlyConfigured("Error loading cx_Oracle module: %s" % e) # Some of these import cx_Oracle, so import them after checking if it's installed. -from .client import DatabaseClient -from .creation import DatabaseCreation -from .features import DatabaseFeatures -from .introspection import DatabaseIntrospection -from .operations import DatabaseOperations -from .schema import DatabaseSchemaEditor -from .utils import convert_unicode, Oracle_datetime +from .client import DatabaseClient # isort:skip +from .creation import DatabaseCreation # isort:skip +from .features import DatabaseFeatures # isort:skip +from .introspection import DatabaseIntrospection # isort:skip +from .operations import DatabaseOperations # isort:skip +from .schema import DatabaseSchemaEditor # isort:skip +from .utils import Oracle_datetime, convert_unicode # isort:skip DatabaseError = Database.DatabaseError IntegrityError = Database.IntegrityError diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py index de9de2c5b1..1e999f8358 100644 --- a/django/db/backends/oracle/creation.py +++ b/django/db/backends/oracle/creation.py @@ -6,7 +6,6 @@ from django.db.backends.base.creation import BaseDatabaseCreation from django.db.utils import DatabaseError from django.utils.six.moves import input - TEST_DATABASE_PREFIX = 'test_' PASSWORD = 'Im_a_lumberjack' diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py index fe9c93ba90..1ba49909d8 100644 --- a/django/db/backends/oracle/operations.py +++ b/django/db/backends/oracle/operations.py @@ -11,7 +11,7 @@ from django.utils import six, timezone from django.utils.encoding import force_bytes, force_text from .base import Database -from .utils import convert_unicode, InsertIdVar, Oracle_datetime +from .utils import InsertIdVar, Oracle_datetime, convert_unicode class DatabaseOperations(BaseDatabaseOperations): diff --git a/django/db/backends/oracle/schema.py b/django/db/backends/oracle/schema.py index 6b1dcf5343..fa710dc443 100644 --- a/django/db/backends/oracle/schema.py +++ b/django/db/backends/oracle/schema.py @@ -1,11 +1,11 @@ +import binascii import copy import datetime -import binascii -from django.utils import six -from django.utils.text import force_text from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.db.utils import DatabaseError +from django.utils import six +from django.utils.text import force_text class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index a73d1f27bf..4410a173a0 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -9,7 +9,7 @@ from django.db.backends.base.base import BaseDatabaseWrapper from django.db.backends.base.validation import BaseDatabaseValidation from django.utils.encoding import force_str from django.utils.functional import cached_property -from django.utils.safestring import SafeText, SafeBytes +from django.utils.safestring import SafeBytes, SafeText try: import psycopg2 as Database @@ -20,14 +20,14 @@ except ImportError as e: raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) # Some of these import psycopg2, so import them after checking if it's installed. -from .client import DatabaseClient -from .creation import DatabaseCreation -from .features import DatabaseFeatures -from .introspection import DatabaseIntrospection -from .operations import DatabaseOperations -from .schema import DatabaseSchemaEditor -from .utils import utc_tzinfo_factory -from .version import get_version +from .client import DatabaseClient # isort:skip +from .creation import DatabaseCreation # isort:skip +from .features import DatabaseFeatures # isort:skip +from .introspection import DatabaseIntrospection # isort:skip +from .operations import DatabaseOperations # isort:skip +from .schema import DatabaseSchemaEditor # isort:skip +from .utils import utc_tzinfo_factory # isort:skip +from .version import get_version # isort:skip DatabaseError = Database.DatabaseError IntegrityError = Database.IntegrityError diff --git a/django/db/backends/postgresql_psycopg2/introspection.py b/django/db/backends/postgresql_psycopg2/introspection.py index 7236f5121f..32c69bc510 100644 --- a/django/db/backends/postgresql_psycopg2/introspection.py +++ b/django/db/backends/postgresql_psycopg2/introspection.py @@ -1,4 +1,5 @@ from __future__ import unicode_literals + from collections import namedtuple from django.db.backends.base.introspection import ( @@ -6,7 +7,6 @@ from django.db.backends.base.introspection import ( ) from django.utils.encoding import force_text - FieldInfo = namedtuple('FieldInfo', FieldInfo._fields + ('default',)) diff --git a/django/db/backends/postgresql_psycopg2/operations.py b/django/db/backends/postgresql_psycopg2/operations.py index ab9f60e927..7483d97aee 100644 --- a/django/db/backends/postgresql_psycopg2/operations.py +++ b/django/db/backends/postgresql_psycopg2/operations.py @@ -1,10 +1,10 @@ from __future__ import unicode_literals +from psycopg2.extras import Inet + from django.conf import settings from django.db.backends.base.operations import BaseDatabaseOperations -from psycopg2.extras import Inet - class DatabaseOperations(BaseDatabaseOperations): def unification_cast_sql(self, output_field): diff --git a/django/db/backends/postgresql_psycopg2/schema.py b/django/db/backends/postgresql_psycopg2/schema.py index c75123a349..8340059b26 100644 --- a/django/db/backends/postgresql_psycopg2/schema.py +++ b/django/db/backends/postgresql_psycopg2/schema.py @@ -1,7 +1,7 @@ -from django.db.backends.base.schema import BaseDatabaseSchemaEditor - import psycopg2 +from django.db.backends.base.schema import BaseDatabaseSchemaEditor + class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index a71bae99b2..84d24e5bfe 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -36,13 +36,13 @@ except ImportError as exc: raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc) # Some of these import sqlite3, so import them after checking if it's installed. -from .client import DatabaseClient -from .creation import DatabaseCreation -from .features import DatabaseFeatures -from .introspection import DatabaseIntrospection -from .operations import DatabaseOperations -from .schema import DatabaseSchemaEditor -from .utils import parse_datetime_with_timezone_support +from .client import DatabaseClient # isort:skip +from .creation import DatabaseCreation # isort:skip +from .features import DatabaseFeatures # isort:skip +from .introspection import DatabaseIntrospection # isort:skip +from .operations import DatabaseOperations # isort:skip +from .schema import DatabaseSchemaEditor # isort:skip +from .utils import parse_datetime_with_timezone_support # isort:skip DatabaseError = Database.DatabaseError IntegrityError = Database.IntegrityError diff --git a/django/db/backends/sqlite3/introspection.py b/django/db/backends/sqlite3/introspection.py index a002b79933..5f3fb4a45d 100644 --- a/django/db/backends/sqlite3/introspection.py +++ b/django/db/backends/sqlite3/introspection.py @@ -5,7 +5,6 @@ from django.db.backends.base.introspection import ( BaseDatabaseIntrospection, FieldInfo, TableInfo, ) - field_size_re = re.compile(r'^\s*(?:var)?char\s*\(\s*(\d+)\s*\)\s*$') FieldInfo = namedtuple('FieldInfo', FieldInfo._fields + ('default',)) diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py index cd29092cd7..5d974f36df 100644 --- a/django/db/backends/sqlite3/operations.py +++ b/django/db/backends/sqlite3/operations.py @@ -4,14 +4,14 @@ import datetime import uuid from django.conf import settings -from django.core.exceptions import ImproperlyConfigured, FieldError +from django.core.exceptions import FieldError, ImproperlyConfigured from django.db import utils from django.db.backends import utils as backend_utils from django.db.backends.base.operations import BaseDatabaseOperations -from django.db.models import fields, aggregates +from django.db.models import aggregates, fields +from django.utils import six, timezone from django.utils.dateparse import parse_date, parse_time from django.utils.duration import duration_string -from django.utils import six, timezone from .utils import parse_datetime_with_timezone_support diff --git a/django/db/backends/sqlite3/schema.py b/django/db/backends/sqlite3/schema.py index 031bf77840..0d101b0f27 100644 --- a/django/db/backends/sqlite3/schema.py +++ b/django/db/backends/sqlite3/schema.py @@ -2,12 +2,12 @@ import codecs import copy from decimal import Decimal +import _sqlite3 + from django.apps.registry import Apps from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.utils import six -import _sqlite3 - class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): diff --git a/django/db/backends/utils.py b/django/db/backends/utils.py index 7aa0cfdad5..84444548d3 100644 --- a/django/db/backends/utils.py +++ b/django/db/backends/utils.py @@ -10,7 +10,6 @@ from django.conf import settings from django.utils.encoding import force_bytes from django.utils.timezone import utc - logger = logging.getLogger('django.db.backends') diff --git a/django/db/migrations/autodetector.py b/django/db/migrations/autodetector.py index e86e9c5f68..16df9bfd91 100644 --- a/django/db/migrations/autodetector.py +++ b/django/db/migrations/autodetector.py @@ -1,18 +1,17 @@ from __future__ import unicode_literals -import re import datetime - +import re from itertools import chain -from django.utils import six from django.conf import settings from django.db import models from django.db.migrations import operations from django.db.migrations.migration import Migration -from django.db.migrations.questioner import MigrationQuestioner -from django.db.migrations.optimizer import MigrationOptimizer from django.db.migrations.operations.models import AlterModelOptions +from django.db.migrations.optimizer import MigrationOptimizer +from django.db.migrations.questioner import MigrationQuestioner +from django.utils import six from .topological_sort import stable_topological_sort diff --git a/django/db/migrations/executor.py b/django/db/migrations/executor.py index cc38758f5a..8a55ed0d69 100644 --- a/django/db/migrations/executor.py +++ b/django/db/migrations/executor.py @@ -1,7 +1,8 @@ from __future__ import unicode_literals -from django.db import migrations from django.apps.registry import apps as global_apps +from django.db import migrations + from .loader import MigrationLoader from .recorder import MigrationRecorder from .state import ProjectState diff --git a/django/db/migrations/graph.py b/django/db/migrations/graph.py index 0e3c5905d6..bf4d6b5252 100644 --- a/django/db/migrations/graph.py +++ b/django/db/migrations/graph.py @@ -1,4 +1,5 @@ from __future__ import unicode_literals + from collections import deque from django.db.migrations.state import ProjectState diff --git a/django/db/migrations/loader.py b/django/db/migrations/loader.py index d7ee805bb1..26a89d492f 100644 --- a/django/db/migrations/loader.py +++ b/django/db/migrations/loader.py @@ -1,16 +1,15 @@ from __future__ import unicode_literals -from importlib import import_module import os import sys +from importlib import import_module from django.apps import apps +from django.conf import settings from django.db import connection -from django.db.migrations.recorder import MigrationRecorder from django.db.migrations.graph import MigrationGraph, NodeNotFoundError +from django.db.migrations.recorder import MigrationRecorder from django.utils import six -from django.conf import settings - MIGRATIONS_MODULE_NAME = 'migrations' diff --git a/django/db/migrations/migration.py b/django/db/migrations/migration.py index 71e662db67..1c3f560d6e 100644 --- a/django/db/migrations/migration.py +++ b/django/db/migrations/migration.py @@ -1,4 +1,5 @@ from __future__ import unicode_literals + from django.db.transaction import atomic from django.utils.encoding import python_2_unicode_compatible diff --git a/django/db/migrations/operations/base.py b/django/db/migrations/operations/base.py index 04089938c2..557c956732 100644 --- a/django/db/migrations/operations/base.py +++ b/django/db/migrations/operations/base.py @@ -1,4 +1,5 @@ from __future__ import unicode_literals + from django.db import router diff --git a/django/db/migrations/operations/fields.py b/django/db/migrations/operations/fields.py index ea9dffff1f..70e7a0f296 100644 --- a/django/db/migrations/operations/fields.py +++ b/django/db/migrations/operations/fields.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from django.db.models.fields import NOT_PROVIDED from django.utils import six from django.utils.functional import cached_property + from .base import Operation diff --git a/django/db/migrations/operations/models.py b/django/db/migrations/operations/models.py index cdc3c06e50..99df8a073e 100644 --- a/django/db/migrations/operations/models.py +++ b/django/db/migrations/operations/models.py @@ -1,9 +1,9 @@ from __future__ import unicode_literals from django.db import models -from django.db.models.options import normalize_together -from django.db.migrations.state import ModelState from django.db.migrations.operations.base import Operation +from django.db.migrations.state import ModelState +from django.db.models.options import normalize_together from django.utils import six from django.utils.functional import cached_property diff --git a/django/db/migrations/state.py b/django/db/migrations/state.py index 7eb1e5b8b9..2e2fbaa0f8 100644 --- a/django/db/migrations/state.py +++ b/django/db/migrations/state.py @@ -1,14 +1,15 @@ from __future__ import unicode_literals -from collections import OrderedDict + import copy +from collections import OrderedDict from django.apps import AppConfig from django.apps.registry import Apps, apps as global_apps +from django.conf import settings from django.db import models -from django.db.models.options import DEFAULT_NAMES, normalize_together -from django.db.models.fields.related import do_pending_lookups from django.db.models.fields.proxy import OrderWrt -from django.conf import settings +from django.db.models.fields.related import do_pending_lookups +from django.db.models.options import DEFAULT_NAMES, normalize_together from django.utils import six from django.utils.encoding import force_text, smart_text from django.utils.functional import cached_property diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py index 5a38861fc4..37f2c81838 100644 --- a/django/db/migrations/writer.py +++ b/django/db/migrations/writer.py @@ -3,16 +3,16 @@ from __future__ import unicode_literals import collections import datetime import decimal -from importlib import import_module import inspect import math import os import re import sys import types +from importlib import import_module from django.apps import apps -from django.db import models, migrations +from django.db import migrations, models from django.db.migrations.loader import MigrationLoader from django.utils import datetime_safe, six from django.utils.encoding import force_text @@ -20,7 +20,6 @@ from django.utils.functional import Promise from django.utils.timezone import utc from django.utils.version import get_docs_version - COMPILED_REGEX_TYPE = type(re.compile('')) diff --git a/django/db/models/aggregates.py b/django/db/models/aggregates.py index c1ddc75d4c..01ab61f71a 100644 --- a/django/db/models/aggregates.py +++ b/django/db/models/aggregates.py @@ -3,7 +3,7 @@ Classes to represent the definitions of aggregate functions. """ from django.core.exceptions import FieldError from django.db.models.expressions import Func, Value -from django.db.models.fields import IntegerField, FloatField +from django.db.models.fields import FloatField, IntegerField __all__ = [ 'Aggregate', 'Avg', 'Count', 'Max', 'Min', 'StdDev', 'Sum', 'Variance', diff --git a/django/db/models/base.py b/django/db/models/base.py index 4f00a6f0ce..4faccd89f4 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -2,33 +2,40 @@ from __future__ import unicode_literals import copy import inspect -from itertools import chain import sys import warnings +from itertools import chain from django.apps import apps from django.apps.config import MODELS_MODULE_NAME from django.conf import settings from django.core import checks -from django.core.exceptions import (FieldDoesNotExist, ObjectDoesNotExist, - MultipleObjectsReturned, FieldError, ValidationError, NON_FIELD_ERRORS) -from django.db import (router, connections, transaction, DatabaseError, - DEFAULT_DB_ALIAS, DJANGO_VERSION_PICKLE_KEY) +from django.core.exceptions import ( + NON_FIELD_ERRORS, FieldDoesNotExist, FieldError, MultipleObjectsReturned, + ObjectDoesNotExist, ValidationError, +) +from django.db import ( + DEFAULT_DB_ALIAS, DJANGO_VERSION_PICKLE_KEY, DatabaseError, connections, + router, transaction, +) from django.db.models import signals from django.db.models.constants import LOOKUP_SEP from django.db.models.deletion import Collector from django.db.models.fields import AutoField -from django.db.models.fields.related import (ForeignObjectRel, ManyToOneRel, - OneToOneField, add_lazy_relation) +from django.db.models.fields.related import ( + ForeignObjectRel, ManyToOneRel, OneToOneField, add_lazy_relation, +) from django.db.models.manager import ensure_default_manager from django.db.models.options import Options from django.db.models.query import Q -from django.db.models.query_utils import DeferredAttribute, deferred_class_factory +from django.db.models.query_utils import ( + DeferredAttribute, deferred_class_factory, +) from django.utils import six from django.utils.encoding import force_str, force_text from django.utils.functional import curry from django.utils.six.moves import zip -from django.utils.text import get_text_list, capfirst +from django.utils.text import capfirst, get_text_list from django.utils.translation import ugettext_lazy as _ from django.utils.version import get_version diff --git a/django/db/models/deletion.py b/django/db/models/deletion.py index 016fc5637e..431b15b0ef 100644 --- a/django/db/models/deletion.py +++ b/django/db/models/deletion.py @@ -2,7 +2,7 @@ from collections import OrderedDict from itertools import chain from operator import attrgetter -from django.db import connections, transaction, IntegrityError +from django.db import IntegrityError, connections, transaction from django.db.models import signals, sql from django.utils import six diff --git a/django/db/models/expressions.py b/django/db/models/expressions.py index 87a08ecc3b..c15b095bc2 100644 --- a/django/db/models/expressions.py +++ b/django/db/models/expressions.py @@ -6,7 +6,7 @@ from django.core.exceptions import FieldError from django.db.backends import utils as backend_utils from django.db.models import fields from django.db.models.constants import LOOKUP_SEP -from django.db.models.query_utils import refs_aggregate, Q +from django.db.models.query_utils import Q, refs_aggregate from django.utils import timezone from django.utils.functional import cached_property diff --git a/django/db/models/fields/files.py b/django/db/models/fields/files.py index 301244bbef..5eb6e7845f 100644 --- a/django/db/models/fields/files.py +++ b/django/db/models/fields/files.py @@ -1,19 +1,19 @@ import datetime -from inspect import getargspec import os import warnings +from inspect import getargspec from django import forms -from django.db.models.fields import Field from django.core import checks from django.core.files.base import File -from django.core.files.storage import default_storage from django.core.files.images import ImageFile +from django.core.files.storage import default_storage from django.db.models import signals -from django.utils.encoding import force_str, force_text +from django.db.models.fields import Field from django.utils import six -from django.utils.translation import ugettext_lazy as _ from django.utils.deprecation import RemovedInDjango20Warning +from django.utils.encoding import force_str, force_text +from django.utils.translation import ugettext_lazy as _ class FieldFile(File): diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 40e1028f1c..c045391aaa 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -1,27 +1,28 @@ from __future__ import unicode_literals -from operator import attrgetter import warnings +from operator import attrgetter +from django import forms from django.apps import apps -from django.core import checks +from django.core import checks, exceptions from django.core.exceptions import FieldDoesNotExist from django.db import connection, connections, router, transaction from django.db.backends import utils -from django.db.models import signals, Q -from django.db.models.deletion import SET_NULL, SET_DEFAULT, CASCADE -from django.db.models.fields import (AutoField, Field, IntegerField, - PositiveIntegerField, PositiveSmallIntegerField, BLANK_CHOICE_DASH) +from django.db.models import Q, signals +from django.db.models.deletion import CASCADE, SET_DEFAULT, SET_NULL +from django.db.models.fields import ( + BLANK_CHOICE_DASH, AutoField, Field, IntegerField, PositiveIntegerField, + PositiveSmallIntegerField, +) from django.db.models.lookups import IsNull from django.db.models.query import QuerySet from django.db.models.query_utils import PathInfo -from django.utils.encoding import force_text, smart_text from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning +from django.utils.encoding import force_text, smart_text +from django.utils.functional import cached_property, curry from django.utils.translation import ugettext_lazy as _ -from django.utils.functional import curry, cached_property -from django.core import exceptions -from django import forms RECURSIVE_RELATIONSHIP_CONSTANT = 'self' diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py index f3bb0fcd33..de64129e19 100644 --- a/django/db/models/lookups.py +++ b/django/db/models/lookups.py @@ -1,5 +1,5 @@ -from copy import copy import inspect +from copy import copy from django.conf import settings from django.utils import timezone diff --git a/django/db/models/manager.py b/django/db/models/manager.py index aa2df3f0e8..e194e28feb 100644 --- a/django/db/models/manager.py +++ b/django/db/models/manager.py @@ -1,6 +1,6 @@ import copy -from importlib import import_module import inspect +from importlib import import_module from django.db import router from django.db.models.query import QuerySet diff --git a/django/db/models/options.py b/django/db/models/options.py index fa9726556b..83f1eb036a 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -1,20 +1,22 @@ from __future__ import unicode_literals +import warnings from bisect import bisect from collections import OrderedDict, defaultdict from itertools import chain -import warnings from django.apps import apps from django.conf import settings from django.core.exceptions import FieldDoesNotExist -from django.db.models.fields.related import ManyToManyField from django.db.models.fields import AutoField from django.db.models.fields.proxy import OrderWrt +from django.db.models.fields.related import ManyToManyField from django.utils import six from django.utils.datastructures import ImmutableList, OrderedSet from django.utils.deprecation import RemovedInDjango20Warning -from django.utils.encoding import force_text, smart_text, python_2_unicode_compatible +from django.utils.encoding import ( + force_text, python_2_unicode_compatible, smart_text, +) from django.utils.functional import cached_property from django.utils.lru_cache import lru_cache from django.utils.text import camel_case_to_spaces diff --git a/django/db/models/query.py b/django/db/models/query.py index 57684bb23a..f7a49059bf 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -2,25 +2,28 @@ The main QuerySet implementation. This provides the public API for the ORM. """ -from collections import deque, OrderedDict import copy import sys import warnings +from collections import OrderedDict, deque from django.conf import settings from django.core import exceptions -from django.db import (connections, router, transaction, IntegrityError, - DJANGO_VERSION_PICKLE_KEY) +from django.db import ( + DJANGO_VERSION_PICKLE_KEY, IntegrityError, connections, router, + transaction, +) +from django.db.models import sql from django.db.models.constants import LOOKUP_SEP -from django.db.models.fields import AutoField -from django.db.models.query_utils import Q, deferred_class_factory, InvalidQuery from django.db.models.deletion import Collector +from django.db.models.expressions import F, Date, DateTime +from django.db.models.fields import AutoField +from django.db.models.query_utils import ( + Q, InvalidQuery, deferred_class_factory, +) from django.db.models.sql.constants import CURSOR -from django.db.models import sql -from django.db.models.expressions import Date, DateTime, F +from django.utils import six, timezone from django.utils.functional import partition -from django.utils import six -from django.utils import timezone from django.utils.version import get_version # The maximum number of items to display in a QuerySet.__repr__ diff --git a/django/db/models/query_utils.py b/django/db/models/query_utils.py index 1d6e8f731b..005bd99956 100644 --- a/django/db/models/query_utils.py +++ b/django/db/models/query_utils.py @@ -13,9 +13,7 @@ from django.apps import apps from django.core.exceptions import FieldDoesNotExist from django.db.backends import utils from django.db.models.constants import LOOKUP_SEP -from django.utils import six -from django.utils import tree - +from django.utils import six, tree # PathInfo is used when converting lookups (fk__somecol). The contents # describe the relation in Model terms (model Options and Fields for both diff --git a/django/db/models/sql/aggregates.py b/django/db/models/sql/aggregates.py index 713f530a91..0ebe10e83f 100644 --- a/django/db/models/sql/aggregates.py +++ b/django/db/models/sql/aggregates.py @@ -4,12 +4,11 @@ Classes to represent the default SQL aggregate functions import copy import warnings -from django.db.models.fields import IntegerField, FloatField +from django.db.models.fields import FloatField, IntegerField from django.db.models.lookups import RegisterLookupMixin from django.utils.deprecation import RemovedInDjango20Warning from django.utils.functional import cached_property - __all__ = ['Aggregate', 'Avg', 'Count', 'Max', 'Min', 'StdDev', 'Sum', 'Variance'] diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index 210ca742f6..3ca2d6d675 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -1,15 +1,16 @@ -from itertools import chain import re import warnings +from itertools import chain from django.core.exceptions import FieldError from django.db.models.constants import LOOKUP_SEP from django.db.models.expressions import OrderBy, Random, RawSQL, Ref -from django.db.models.query_utils import select_related_descend, QueryWrapper -from django.db.models.sql.constants import (CURSOR, SINGLE, MULTI, NO_RESULTS, - ORDER_DIR, GET_ITERATOR_CHUNK_SIZE) +from django.db.models.query_utils import QueryWrapper, select_related_descend +from django.db.models.sql.constants import ( + CURSOR, GET_ITERATOR_CHUNK_SIZE, MULTI, NO_RESULTS, ORDER_DIR, SINGLE, +) from django.db.models.sql.datastructures import EmptyResultSet -from django.db.models.sql.query import get_order_dir, Query +from django.db.models.sql.query import Query, get_order_dir from django.db.transaction import TransactionManagementError from django.db.utils import DatabaseError from django.utils.deprecation import RemovedInDjango20Warning diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 5335d27570..9dede765f7 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -6,26 +6,27 @@ themselves do not have to (and could be backed by things other than SQL databases). The abstraction barrier only works one way: this module has to know all about the internals of models in order to get the information it needs. """ -from string import ascii_uppercase -from itertools import count, product - -from collections import Mapping, OrderedDict import copy -from itertools import chain import warnings +from collections import Mapping, OrderedDict +from itertools import chain, count, product +from string import ascii_uppercase from django.core.exceptions import FieldDoesNotExist, FieldError -from django.db import connections, DEFAULT_DB_ALIAS +from django.db import DEFAULT_DB_ALIAS, connections from django.db.models.aggregates import Count from django.db.models.constants import LOOKUP_SEP from django.db.models.expressions import Col, Ref -from django.db.models.query_utils import PathInfo, Q, refs_aggregate -from django.db.models.sql.constants import (QUERY_TERMS, ORDER_DIR, SINGLE, - ORDER_PATTERN, INNER, LOUTER) +from django.db.models.query_utils import Q, PathInfo, refs_aggregate +from django.db.models.sql.constants import ( + INNER, LOUTER, ORDER_DIR, ORDER_PATTERN, QUERY_TERMS, SINGLE, +) from django.db.models.sql.datastructures import ( - EmptyResultSet, Empty, MultiJoin, Join, BaseTable) -from django.db.models.sql.where import (WhereNode, ExtraWhere, AND, OR, - NothingNode) + BaseTable, Empty, EmptyResultSet, Join, MultiJoin, +) +from django.db.models.sql.where import ( + AND, OR, ExtraWhere, NothingNode, WhereNode, +) from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py index 727eabc5f5..14739dea0e 100644 --- a/django/db/models/sql/subqueries.py +++ b/django/db/models/sql/subqueries.py @@ -9,7 +9,6 @@ from django.db.models.sql.constants import GET_ITERATOR_CHUNK_SIZE, NO_RESULTS from django.db.models.sql.query import Query from django.utils import six - __all__ = ['DeleteQuery', 'UpdateQuery', 'InsertQuery', 'AggregateQuery'] diff --git a/django/db/models/sql/where.py b/django/db/models/sql/where.py index de51e1db04..9836da8735 100644 --- a/django/db/models/sql/where.py +++ b/django/db/models/sql/where.py @@ -6,7 +6,6 @@ from django.db.models.sql.datastructures import EmptyResultSet from django.utils import tree from django.utils.functional import cached_property - # Connection types AND = 'AND' OR = 'OR' diff --git a/django/db/transaction.py b/django/db/transaction.py index 6d2bff52f4..d1388675d5 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -1,6 +1,6 @@ from django.db import ( - connections, DEFAULT_DB_ALIAS, - DatabaseError, Error, ProgrammingError) + DEFAULT_DB_ALIAS, DatabaseError, Error, ProgrammingError, connections, +) from django.utils.decorators import ContextDecorator diff --git a/django/db/utils.py b/django/db/utils.py index ea622cddc6..0480adf2dc 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -1,15 +1,14 @@ -from importlib import import_module import os import pkgutil +from importlib import import_module from threading import local from django.conf import settings from django.core.exceptions import ImproperlyConfigured +from django.utils import six +from django.utils._os import upath from django.utils.functional import cached_property from django.utils.module_loading import import_string -from django.utils._os import upath -from django.utils import six - DEFAULT_DB_ALIAS = 'default' DJANGO_VERSION_PICKLE_KEY = '_django_version' diff --git a/django/dispatch/weakref_backports.py b/django/dispatch/weakref_backports.py index 4647436891..edc86936de 100644 --- a/django/dispatch/weakref_backports.py +++ b/django/dispatch/weakref_backports.py @@ -66,4 +66,3 @@ class WeakMethod(ref): return True __hash__ = ref.__hash__ - diff --git a/django/forms/fields.py b/django/forms/fields.py index 59490a318a..cca2091ffa 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -16,20 +16,24 @@ from io import BytesIO from django.core import validators from django.core.exceptions import ValidationError +# Provide this import for backwards compatibility. +from django.core.validators import EMPTY_VALUES # NOQA from django.forms.utils import from_current_timezone, to_current_timezone from django.forms.widgets import ( - TextInput, NumberInput, EmailInput, URLInput, HiddenInput, - MultipleHiddenInput, ClearableFileInput, CheckboxInput, Select, - NullBooleanSelect, SelectMultiple, DateInput, DateTimeInput, TimeInput, - SplitDateTimeWidget, SplitHiddenDateTimeWidget, FILE_INPUT_CONTRADICTION + FILE_INPUT_CONTRADICTION, CheckboxInput, ClearableFileInput, DateInput, + DateTimeInput, EmailInput, HiddenInput, MultipleHiddenInput, + NullBooleanSelect, NumberInput, Select, SelectMultiple, + SplitDateTimeWidget, SplitHiddenDateTimeWidget, TextInput, TimeInput, + URLInput, ) -from django.utils import formats -from django.utils.encoding import smart_text, force_str, force_text -from django.utils.ipv6 import clean_ipv6_address +from django.utils import formats, six from django.utils.dateparse import parse_duration -from django.utils.deprecation import RemovedInDjango20Warning, RenameMethodsBase +from django.utils.deprecation import ( + RemovedInDjango20Warning, RenameMethodsBase, +) from django.utils.duration import duration_string -from django.utils import six +from django.utils.encoding import force_str, force_text, smart_text +from django.utils.ipv6 import clean_ipv6_address from django.utils.six.moves.urllib.parse import urlsplit, urlunsplit from django.utils.translation import ugettext_lazy as _, ungettext_lazy diff --git a/django/forms/forms.py b/django/forms/forms.py index c9b8cf2242..64405079d8 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -4,20 +4,21 @@ Form classes from __future__ import unicode_literals -from collections import OrderedDict import copy import datetime +from collections import OrderedDict -from django.core.exceptions import ValidationError, NON_FIELD_ERRORS +from django.core.exceptions import NON_FIELD_ERRORS, ValidationError from django.forms.fields import Field, FileField -from django.forms.utils import flatatt, ErrorDict, ErrorList -from django.forms.widgets import Media, MediaDefiningClass, TextInput, Textarea -from django.utils.encoding import smart_text, force_text, python_2_unicode_compatible +from django.forms.utils import ErrorDict, ErrorList, flatatt +from django.forms.widgets import Media, MediaDefiningClass, Textarea, TextInput +from django.utils import six +from django.utils.encoding import ( + force_text, python_2_unicode_compatible, smart_text, +) from django.utils.html import conditional_escape, format_html from django.utils.safestring import mark_safe from django.utils.translation import ugettext as _ -from django.utils import six - __all__ = ('BaseForm', 'Form') diff --git a/django/forms/formsets.py b/django/forms/formsets.py index 566269beb5..adacd00fdc 100644 --- a/django/forms/formsets.py +++ b/django/forms/formsets.py @@ -2,16 +2,15 @@ from __future__ import unicode_literals from django.core.exceptions import ValidationError from django.forms import Form -from django.forms.fields import IntegerField, BooleanField +from django.forms.fields import BooleanField, IntegerField from django.forms.utils import ErrorList from django.forms.widgets import HiddenInput +from django.utils import six from django.utils.encoding import python_2_unicode_compatible from django.utils.functional import cached_property from django.utils.safestring import mark_safe -from django.utils import six from django.utils.six.moves import range -from django.utils.translation import ungettext, ugettext as _ - +from django.utils.translation import ugettext as _, ungettext __all__ = ('BaseFormSet', 'formset_factory', 'all_valid') diff --git a/django/forms/models.py b/django/forms/models.py index 7d5473276c..c861eed321 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -9,18 +9,19 @@ from collections import OrderedDict from itertools import chain from django.core.exceptions import ( - ImproperlyConfigured, ValidationError, NON_FIELD_ERRORS, FieldError) -from django.forms.fields import Field, ChoiceField -from django.forms.forms import DeclarativeFieldsMetaclass, BaseForm + NON_FIELD_ERRORS, FieldError, ImproperlyConfigured, ValidationError, +) +from django.forms.fields import ChoiceField, Field +from django.forms.forms import BaseForm, DeclarativeFieldsMetaclass from django.forms.formsets import BaseFormSet, formset_factory from django.forms.utils import ErrorList -from django.forms.widgets import (SelectMultiple, HiddenInput, - MultipleHiddenInput) +from django.forms.widgets import ( + HiddenInput, MultipleHiddenInput, SelectMultiple, +) from django.utils import six -from django.utils.encoding import smart_text, force_text -from django.utils.text import get_text_list, capfirst -from django.utils.translation import ugettext_lazy as _, ugettext - +from django.utils.encoding import force_text, smart_text +from django.utils.text import capfirst, get_text_list +from django.utils.translation import ugettext, ugettext_lazy as _ __all__ = ( 'ModelForm', 'BaseModelForm', 'model_to_dict', 'fields_for_model', diff --git a/django/forms/utils.py b/django/forms/utils.py index 19c27f9b8c..ab0c80769b 100644 --- a/django/forms/utils.py +++ b/django/forms/utils.py @@ -3,21 +3,17 @@ from __future__ import unicode_literals import json import sys -try: - from collections import UserList -except ImportError: # Python 2 - from UserList import UserList - from django.conf import settings +from django.core.exceptions import ValidationError # backwards compatibility +from django.utils import six, timezone from django.utils.encoding import force_text, python_2_unicode_compatible -from django.utils.html import format_html, format_html_join, escape -from django.utils import timezone +from django.utils.html import escape, format_html, format_html_join from django.utils.translation import ugettext_lazy as _ -from django.utils import six -# Import ValidationError so that it can be imported from this -# module to maintain backwards compatibility. -from django.core.exceptions import ValidationError +try: + from collections import UserList +except ImportError: # Python 2 + from UserList import UserList def flatatt(attrs): diff --git a/django/forms/widgets.py b/django/forms/widgets.py index c434ecf0a1..fedd78c838 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -6,15 +6,17 @@ from __future__ import unicode_literals import copy import datetime -from itertools import chain import re +from itertools import chain from django.conf import settings from django.forms.utils import flatatt, to_current_timezone from django.utils import datetime_safe, formats, six from django.utils.datastructures import MultiValueDict from django.utils.dates import MONTHS -from django.utils.encoding import force_str, force_text, python_2_unicode_compatible +from django.utils.encoding import ( + force_str, force_text, python_2_unicode_compatible, +) from django.utils.formats import get_format from django.utils.html import conditional_escape, format_html from django.utils.safestring import mark_safe diff --git a/django/http/cookie.py b/django/http/cookie.py index 3bd9065d3a..a3dbd2a0b2 100644 --- a/django/http/cookie.py +++ b/django/http/cookie.py @@ -1,11 +1,11 @@ from __future__ import unicode_literals + import sys -from django.utils.encoding import force_str from django.utils import six +from django.utils.encoding import force_str from django.utils.six.moves import http_cookies - # Some versions of Python 2.7 and later won't need this encoding bug fix: _cookie_encodes_correctly = http_cookies.SimpleCookie().value_encode(';') == (';', '"\\073"') # See ticket #13007, http://bugs.python.org/issue2193 and http://trac.edgewall.org/ticket/2256 diff --git a/django/http/multipartparser.py b/django/http/multipartparser.py index e1de03f8b1..53e4149519 100644 --- a/django/http/multipartparser.py +++ b/django/http/multipartparser.py @@ -13,12 +13,14 @@ import sys from django.conf import settings from django.core.exceptions import SuspiciousMultipartForm +from django.core.files.uploadhandler import ( + SkipFile, StopFutureHandlers, StopUpload, +) +from django.utils import six from django.utils.datastructures import MultiValueDict from django.utils.encoding import force_text -from django.utils import six from django.utils.six.moves.urllib.parse import unquote from django.utils.text import unescape_entities -from django.core.files.uploadhandler import StopUpload, SkipFile, StopFutureHandlers __all__ = ('MultiPartParser', 'MultiPartParserError', 'InputStreamExhausted') diff --git a/django/http/request.py b/django/http/request.py index ea32574c68..398cf20dfb 100644 --- a/django/http/request.py +++ b/django/http/request.py @@ -14,12 +14,13 @@ from django.core.exceptions import DisallowedHost, ImproperlyConfigured from django.core.files import uploadhandler from django.http.multipartparser import MultiPartParser, MultiPartParserError from django.utils import six -from django.utils.datastructures import MultiValueDict, ImmutableList +from django.utils.datastructures import ImmutableList, MultiValueDict from django.utils.encoding import ( - force_bytes, force_text, force_str, escape_uri_path, iri_to_uri, + escape_uri_path, force_bytes, force_str, force_text, iri_to_uri, +) +from django.utils.six.moves.urllib.parse import ( + parse_qsl, quote, urlencode, urljoin, urlsplit, ) -from django.utils.six.moves.urllib.parse import parse_qsl, urlencode, quote, urljoin, urlsplit - RAISE_ERROR = object() host_validation_re = re.compile(r"^([a-z0-9.-]+|\[[a-f0-9]*:[a-f0-9:]+\])(:\d+)?$") diff --git a/django/http/response.py b/django/http/response.py index 0386ec3a94..a317f96eb4 100644 --- a/django/http/response.py +++ b/django/http/response.py @@ -8,19 +8,19 @@ import time from email.header import Header from django.conf import settings -from django.core import signals -from django.core import signing +from django.core import signals, signing from django.core.exceptions import DisallowedRedirect from django.core.serializers.json import DjangoJSONEncoder from django.http.cookie import SimpleCookie from django.utils import six, timezone -from django.utils.encoding import force_bytes, force_text, force_str, iri_to_uri +from django.utils.encoding import ( + force_bytes, force_str, force_text, iri_to_uri, +) from django.utils.http import cookie_date from django.utils.six.moves import map from django.utils.six.moves.http_client import responses from django.utils.six.moves.urllib.parse import urlparse - _charset_from_content_type_re = re.compile(r';\s*charset=(?P<charset>[^\s;]+)', re.I) diff --git a/django/middleware/cache.py b/django/middleware/cache.py index 7fab78f3dc..79202adda3 100644 --- a/django/middleware/cache.py +++ b/django/middleware/cache.py @@ -44,9 +44,11 @@ More details about how the caching works: """ from django.conf import settings -from django.core.cache import caches, DEFAULT_CACHE_ALIAS -from django.utils.cache import (get_cache_key, get_max_age, has_vary_header, - learn_cache_key, patch_response_headers) +from django.core.cache import DEFAULT_CACHE_ALIAS, caches +from django.utils.cache import ( + get_cache_key, get_max_age, has_vary_header, learn_cache_key, + patch_response_headers, +) class UpdateCacheMiddleware(object): diff --git a/django/middleware/common.py b/django/middleware/common.py index 0531d31908..c1414db375 100644 --- a/django/middleware/common.py +++ b/django/middleware/common.py @@ -2,14 +2,13 @@ import hashlib import logging import re +from django import http from django.conf import settings -from django.core.mail import mail_managers from django.core import urlresolvers -from django import http +from django.core.mail import mail_managers +from django.utils import six from django.utils.encoding import force_text from django.utils.http import urlquote -from django.utils import six - logger = logging.getLogger('django.request') diff --git a/django/middleware/csrf.py b/django/middleware/csrf.py index 7cbec6c772..f12126fa9f 100644 --- a/django/middleware/csrf.py +++ b/django/middleware/csrf.py @@ -12,10 +12,9 @@ import re from django.conf import settings from django.core.urlresolvers import get_callable from django.utils.cache import patch_vary_headers +from django.utils.crypto import constant_time_compare, get_random_string from django.utils.encoding import force_text from django.utils.http import same_origin -from django.utils.crypto import constant_time_compare, get_random_string - logger = logging.getLogger('django.request') diff --git a/django/middleware/gzip.py b/django/middleware/gzip.py index 8548c083e3..e772cb326d 100644 --- a/django/middleware/gzip.py +++ b/django/middleware/gzip.py @@ -1,7 +1,7 @@ import re -from django.utils.text import compress_sequence, compress_string from django.utils.cache import patch_vary_headers +from django.utils.text import compress_sequence, compress_string re_accepts_gzip = re.compile(r'\bgzip\b') diff --git a/django/middleware/locale.py b/django/middleware/locale.py index 996b2d4c5b..9719150d59 100644 --- a/django/middleware/locale.py +++ b/django/middleware/locale.py @@ -1,11 +1,12 @@ "This is the locale selecting middleware that will look at accept headers" from django.conf import settings -from django.core.urlresolvers import (is_valid_path, get_resolver, get_script_prefix, - LocaleRegexURLResolver) +from django.core.urlresolvers import ( + LocaleRegexURLResolver, get_resolver, get_script_prefix, is_valid_path, +) from django.http import HttpResponseRedirect -from django.utils.cache import patch_vary_headers from django.utils import translation +from django.utils.cache import patch_vary_headers class LocaleMiddleware(object): diff --git a/django/shortcuts.py b/django/shortcuts.py index bbfc99299f..415e51887e 100644 --- a/django/shortcuts.py +++ b/django/shortcuts.py @@ -6,16 +6,18 @@ for convenience's sake. import warnings -from django.template import loader, RequestContext -from django.template.context import _current_app_undefined -from django.template.engine import ( - _context_instance_undefined, _dictionary_undefined, _dirs_undefined) -from django.http import HttpResponse, Http404 -from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect +from django.core import urlresolvers from django.db.models.base import ModelBase from django.db.models.manager import Manager from django.db.models.query import QuerySet -from django.core import urlresolvers +from django.http import ( + Http404, HttpResponse, HttpResponsePermanentRedirect, HttpResponseRedirect, +) +from django.template import RequestContext, loader +from django.template.context import _current_app_undefined +from django.template.engine import ( + _context_instance_undefined, _dictionary_undefined, _dirs_undefined, +) from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text diff --git a/django/template/backends/base.py b/django/template/backends/base.py index 25a7dd2a15..00b5fc4b2b 100644 --- a/django/template/backends/base.py +++ b/django/template/backends/base.py @@ -2,7 +2,8 @@ from __future__ import absolute_import from django.core.exceptions import ( - ImproperlyConfigured, SuspiciousFileOperation) + ImproperlyConfigured, SuspiciousFileOperation, +) from django.template.utils import get_app_template_dirs from django.utils._os import safe_join from django.utils.functional import cached_property diff --git a/django/template/backends/django.py b/django/template/backends/django.py index 2fe3227237..942445d367 100644 --- a/django/template/backends/django.py +++ b/django/template/backends/django.py @@ -5,10 +5,9 @@ import warnings from django.conf import settings from django.template.context import Context, RequestContext -from django.template.engine import _dirs_undefined, Engine +from django.template.engine import Engine, _dirs_undefined from django.utils.deprecation import RemovedInDjango20Warning - from .base import BaseEngine diff --git a/django/template/backends/jinja2.py b/django/template/backends/jinja2.py index cc99a745cf..b26cb391f2 100644 --- a/django/template/backends/jinja2.py +++ b/django/template/backends/jinja2.py @@ -3,13 +3,13 @@ from __future__ import absolute_import import sys +import jinja2 + from django.conf import settings from django.template import TemplateDoesNotExist, TemplateSyntaxError from django.utils import six from django.utils.module_loading import import_string -import jinja2 - from .base import BaseEngine from .utils import csrf_input_lazy, csrf_token_lazy diff --git a/django/template/base.py b/django/template/base.py index 775b5d8238..16b76f51fd 100644 --- a/django/template/base.py +++ b/django/template/base.py @@ -52,31 +52,34 @@ u'<html></html>' from __future__ import unicode_literals import re +import warnings from functools import partial from importlib import import_module from inspect import getargspec, getcallargs -import warnings from django.apps import apps -from django.template.context import (BaseContext, Context, RequestContext, # NOQA: imported for backwards compatibility - ContextPopException) -from django.utils import lru_cache -from django.utils.deprecation import (RemovedInDjango20Warning, - RemovedInDjango21Warning) -from django.utils.itercompat import is_iterable -from django.utils.text import (smart_split, unescape_string_literal, - get_text_list) -from django.utils.encoding import force_str, force_text -from django.utils.translation import ugettext_lazy, pgettext_lazy -from django.utils.safestring import (SafeData, EscapeData, mark_safe, - mark_for_escaping) +from django.template.context import ( # NOQA: imported for backwards compatibility + BaseContext, Context, ContextPopException, RequestContext, +) +from django.utils import lru_cache, six +from django.utils.deprecation import ( + RemovedInDjango20Warning, RemovedInDjango21Warning, +) +from django.utils.encoding import ( + force_str, force_text, python_2_unicode_compatible, +) from django.utils.formats import localize from django.utils.html import conditional_escape +from django.utils.itercompat import is_iterable from django.utils.module_loading import module_has_submodule -from django.utils import six +from django.utils.safestring import ( + EscapeData, SafeData, mark_for_escaping, mark_safe, +) +from django.utils.text import ( + get_text_list, smart_split, unescape_string_literal, +) from django.utils.timezone import template_localtime -from django.utils.encoding import python_2_unicode_compatible - +from django.utils.translation import pgettext_lazy, ugettext_lazy TOKEN_TEXT = 0 TOKEN_VAR = 1 diff --git a/django/template/context.py b/django/template/context.py index 9543931cec..aff8aa2e1c 100644 --- a/django/template/context.py +++ b/django/template/context.py @@ -1,9 +1,8 @@ -from copy import copy import warnings +from copy import copy from django.utils.deprecation import RemovedInDjango20Warning - # Hard-coded processor for easier use of CSRF protection. _builtin_context_processors = ('django.template.context_processors.csrf',) diff --git a/django/template/debug.py b/django/template/debug.py index 465d7ff926..7f2cbc585a 100644 --- a/django/template/debug.py +++ b/django/template/debug.py @@ -1,8 +1,10 @@ -from django.template.base import Lexer, Parser, tag_re, NodeList, VariableNode, TemplateSyntaxError +from django.template.base import ( + Lexer, NodeList, Parser, TemplateSyntaxError, VariableNode, tag_re, +) from django.utils.encoding import force_text -from django.utils.html import conditional_escape -from django.utils.safestring import SafeData, EscapeData from django.utils.formats import localize +from django.utils.html import conditional_escape +from django.utils.safestring import EscapeData, SafeData from django.utils.timezone import template_localtime diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index 16a3d4d6e9..57a4a7f1f9 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -1,29 +1,30 @@ """Default variable filters.""" from __future__ import unicode_literals -import re import random as random_module -from decimal import Decimal, InvalidOperation, Context, ROUND_HALF_UP +import re +import warnings +from decimal import ROUND_HALF_UP, Context, Decimal, InvalidOperation from functools import wraps from pprint import pformat -import warnings -from django.template.base import Variable, Library, VariableDoesNotExist from django.conf import settings -from django.utils import formats +from django.template.base import Library, Variable, VariableDoesNotExist +from django.utils import formats, six from django.utils.dateformat import format, time_format from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text, iri_to_uri -from django.utils.html import (conditional_escape, escapejs, - escape, urlize as _urlize, linebreaks, strip_tags, avoid_wrapping, - remove_tags) +from django.utils.html import ( + avoid_wrapping, conditional_escape, escape, escapejs, linebreaks, + remove_tags, strip_tags, urlize as _urlize, +) from django.utils.http import urlquote -from django.utils.text import Truncator, wrap, phone2numeric -from django.utils.safestring import mark_safe, SafeData, mark_for_escaping -from django.utils import six +from django.utils.safestring import SafeData, mark_for_escaping, mark_safe +from django.utils.text import ( + Truncator, normalize_newlines, phone2numeric, slugify as _slugify, wrap, +) from django.utils.timesince import timesince, timeuntil from django.utils.translation import ugettext, ungettext -from django.utils.text import normalize_newlines, slugify as _slugify register = Library() diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index b65bed7bf8..a75248332c 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -2,28 +2,29 @@ from __future__ import unicode_literals import os -import sys import re -from datetime import datetime -from itertools import groupby, cycle as itertools_cycle +import sys import warnings +from datetime import datetime +from itertools import cycle as itertools_cycle, groupby from django.conf import settings -from django.template.base import (Node, NodeList, Template, Context, Library, - TemplateSyntaxError, VariableDoesNotExist, InvalidTemplateLibrary, - BLOCK_TAG_START, BLOCK_TAG_END, VARIABLE_TAG_START, VARIABLE_TAG_END, - SINGLE_BRACE_START, SINGLE_BRACE_END, COMMENT_TAG_START, COMMENT_TAG_END, - VARIABLE_ATTRIBUTE_SEPARATOR, get_library, token_kwargs, kwarg_re, - render_value_in_context) -from django.template.smartif import IfParser, Literal +from django.template.base import ( + BLOCK_TAG_END, BLOCK_TAG_START, COMMENT_TAG_END, COMMENT_TAG_START, + SINGLE_BRACE_END, SINGLE_BRACE_START, VARIABLE_ATTRIBUTE_SEPARATOR, + VARIABLE_TAG_END, VARIABLE_TAG_START, Context, InvalidTemplateLibrary, + Library, Node, NodeList, Template, TemplateSyntaxError, + VariableDoesNotExist, get_library, kwarg_re, render_value_in_context, + token_kwargs, +) from django.template.defaultfilters import date +from django.template.smartif import IfParser, Literal +from django.utils import six, timezone from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text, smart_text -from django.utils.lorem_ipsum import words, paragraphs -from django.utils.safestring import mark_safe from django.utils.html import format_html -from django.utils import six -from django.utils import timezone +from django.utils.lorem_ipsum import paragraphs, words +from django.utils.safestring import mark_safe register = Library() diff --git a/django/template/engine.py b/django/template/engine.py index b346f41f8b..9e7f88aeb4 100644 --- a/django/template/engine.py +++ b/django/template/engine.py @@ -1,8 +1,7 @@ import warnings from django.core.exceptions import ImproperlyConfigured -from django.utils import lru_cache -from django.utils import six +from django.utils import lru_cache, six from django.utils.deprecation import RemovedInDjango20Warning from django.utils.functional import cached_property from django.utils.module_loading import import_string @@ -10,7 +9,6 @@ from django.utils.module_loading import import_string from .base import Context, Lexer, Parser, Template, TemplateDoesNotExist from .context import _builtin_context_processors - _context_instance_undefined = object() _dictionary_undefined = object() _dirs_undefined = object() diff --git a/django/template/loader.py b/django/template/loader.py index c03690fbd1..c8fb16bf92 100644 --- a/django/template/loader.py +++ b/django/template/loader.py @@ -6,7 +6,9 @@ from . import engines from .backends.django import DjangoTemplates from .base import Origin, TemplateDoesNotExist from .engine import ( - _context_instance_undefined, _dictionary_undefined, _dirs_undefined) + _context_instance_undefined, _dictionary_undefined, _dirs_undefined, +) +from .loaders import base class LoaderOrigin(Origin): @@ -142,10 +144,6 @@ def _engine_list(using=None): return engines.all() if using is None else [engines[using]] -# This line must remain at the bottom to avoid import loops. -from .loaders import base - - class BaseLoader(base.Loader): _accepts_engine_in_init = False diff --git a/django/template/loader_tags.py b/django/template/loader_tags.py index b41b1ea4c3..f1c08ee955 100644 --- a/django/template/loader_tags.py +++ b/django/template/loader_tags.py @@ -1,9 +1,10 @@ from collections import defaultdict -from django.template.base import TemplateSyntaxError, Library, Node, TextNode,\ - token_kwargs, Variable -from django.utils.safestring import mark_safe +from django.template.base import ( + Library, Node, TemplateSyntaxError, TextNode, Variable, token_kwargs, +) from django.utils import six +from django.utils.safestring import mark_safe register = Library() diff --git a/django/template/loaders/cached.py b/django/template/loaders/cached.py index 5c53b0a658..188268e92e 100644 --- a/django/template/loaders/cached.py +++ b/django/template/loaders/cached.py @@ -4,6 +4,7 @@ to load templates from them in order, caching the result. """ import hashlib + from django.template.base import Template, TemplateDoesNotExist from django.utils.encoding import force_bytes diff --git a/django/template/loaders/eggs.py b/django/template/loaders/eggs.py index 4ced12936f..14a586877d 100644 --- a/django/template/loaders/eggs.py +++ b/django/template/loaders/eggs.py @@ -1,17 +1,17 @@ # Wrapper for loading templates from eggs via pkg_resources.resource_string. from __future__ import unicode_literals -try: - from pkg_resources import resource_string -except ImportError: - resource_string = None - from django.apps import apps from django.template.base import TemplateDoesNotExist from django.utils import six from .base import Loader as BaseLoader +try: + from pkg_resources import resource_string +except ImportError: + resource_string = None + class Loader(BaseLoader): diff --git a/django/template/response.py b/django/template/response.py index 48295c5e05..094907ed97 100644 --- a/django/template/response.py +++ b/django/template/response.py @@ -1,7 +1,7 @@ import warnings from django.http import HttpResponse -from django.template import loader, Context, RequestContext, Template +from django.template import Context, RequestContext, Template, loader from django.template.backends.django import Template as BackendTemplate from django.template.context import _current_app_undefined from django.utils import six diff --git a/django/template/utils.py b/django/template/utils.py index be2166810c..f9b322fea9 100644 --- a/django/template/utils.py +++ b/django/template/utils.py @@ -1,13 +1,12 @@ -from collections import Counter, OrderedDict 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 -from django.utils import six +from django.utils import lru_cache, six from django.utils.deprecation import RemovedInDjango20Warning from django.utils.functional import cached_property from django.utils.module_loading import import_string diff --git a/django/templatetags/cache.py b/django/templatetags/cache.py index 994868e43a..997e03fc99 100644 --- a/django/templatetags/cache.py +++ b/django/templatetags/cache.py @@ -1,8 +1,10 @@ from __future__ import unicode_literals -from django.core.cache import caches, InvalidCacheBackendError +from django.core.cache import InvalidCacheBackendError, caches from django.core.cache.utils import make_template_fragment_key -from django.template import Library, Node, TemplateSyntaxError, VariableDoesNotExist +from django.template import ( + Library, Node, TemplateSyntaxError, VariableDoesNotExist, +) register = Library() diff --git a/django/templatetags/future.py b/django/templatetags/future.py index d584a1dd2b..257bd9ac6c 100644 --- a/django/templatetags/future.py +++ b/django/templatetags/future.py @@ -1,7 +1,6 @@ import warnings -from django.template import Library -from django.template import defaulttags +from django.template import Library, defaulttags from django.utils.deprecation import RemovedInDjango20Warning register = Library() diff --git a/django/templatetags/i18n.py b/django/templatetags/i18n.py index aa0a34ef40..2a2b433508 100644 --- a/django/templatetags/i18n.py +++ b/django/templatetags/i18n.py @@ -1,14 +1,15 @@ from __future__ import unicode_literals + import re import sys from django.conf import settings from django.template import Library, Node, TemplateSyntaxError, Variable -from django.template.base import render_value_in_context, TokenParser, TOKEN_TEXT, TOKEN_VAR +from django.template.base import ( + TOKEN_TEXT, TOKEN_VAR, TokenParser, render_value_in_context, +) from django.template.defaulttags import token_kwargs -from django.utils import six -from django.utils import translation - +from django.utils import six, translation register = Library() diff --git a/django/templatetags/l10n.py b/django/templatetags/l10n.py index 31dae9b105..cbc47bcb94 100644 --- a/django/templatetags/l10n.py +++ b/django/templatetags/l10n.py @@ -1,5 +1,4 @@ -from django.template import Node -from django.template import TemplateSyntaxError, Library +from django.template import Library, Node, TemplateSyntaxError from django.utils import formats from django.utils.encoding import force_text diff --git a/django/templatetags/tz.py b/django/templatetags/tz.py index 05088e1a89..2af165e7ab 100644 --- a/django/templatetags/tz.py +++ b/django/templatetags/tz.py @@ -1,14 +1,13 @@ from datetime import datetime, tzinfo +from django.template import Library, Node, TemplateSyntaxError +from django.utils import six, timezone + try: import pytz except ImportError: pytz = None -from django.template import Node -from django.template import TemplateSyntaxError, Library -from django.utils import six -from django.utils import timezone register = Library() diff --git a/django/test/client.py b/django/test/client.py index a19970f02e..d845fe76a7 100644 --- a/django/test/client.py +++ b/django/test/client.py @@ -1,9 +1,9 @@ from __future__ import unicode_literals -import sys +import mimetypes import os import re -import mimetypes +import sys from copy import copy from importlib import import_module from io import BytesIO @@ -12,20 +12,21 @@ from django.apps import apps from django.conf import settings from django.core import urlresolvers from django.core.handlers.base import BaseHandler -from django.core.handlers.wsgi import WSGIRequest, ISO_8859_1, UTF_8 -from django.core.signals import (request_started, request_finished, - got_request_exception) +from django.core.handlers.wsgi import ISO_8859_1, UTF_8, WSGIRequest +from django.core.signals import ( + got_request_exception, request_finished, request_started, +) from django.db import close_old_connections -from django.http import SimpleCookie, HttpRequest, QueryDict +from django.http import HttpRequest, QueryDict, SimpleCookie from django.template import TemplateDoesNotExist from django.test import signals -from django.utils.functional import curry, SimpleLazyObject +from django.test.utils import ContextList +from django.utils import six from django.utils.encoding import force_bytes, force_str, uri_to_iri +from django.utils.functional import SimpleLazyObject, curry from django.utils.http import urlencode from django.utils.itercompat import is_iterable -from django.utils import six from django.utils.six.moves.urllib.parse import urlparse, urlsplit -from django.test.utils import ContextList __all__ = ('Client', 'RedirectCycleError', 'RequestFactory', 'encode_file', 'encode_multipart') diff --git a/django/test/html.py b/django/test/html.py index cca4a48491..28db398cf7 100644 --- a/django/test/html.py +++ b/django/test/html.py @@ -5,11 +5,10 @@ Comparing two html documents. from __future__ import unicode_literals import re -from django.utils.encoding import force_text -from django.utils.html_parser import HTMLParser, HTMLParseError -from django.utils import six -from django.utils.encoding import python_2_unicode_compatible +from django.utils import six +from django.utils.encoding import force_text, python_2_unicode_compatible +from django.utils.html_parser import HTMLParseError, HTMLParser WHITESPACE = re.compile('\s+') diff --git a/django/test/runner.py b/django/test/runner.py index 73a5a9d175..1106c52803 100644 --- a/django/test/runner.py +++ b/django/test/runner.py @@ -1,7 +1,7 @@ -from importlib import import_module import logging import os import unittest +from importlib import import_module from unittest import TestSuite, defaultTestLoader from django.conf import settings diff --git a/django/test/signals.py b/django/test/signals.py index 56a8945e01..d2bb209dbf 100644 --- a/django/test/signals.py +++ b/django/test/signals.py @@ -1,13 +1,13 @@ import os -import time import threading +import time import warnings from django.conf import settings from django.core.signals import setting_changed from django.db import connections, router from django.db.utils import ConnectionRouter -from django.dispatch import receiver, Signal +from django.dispatch import Signal, receiver from django.utils import timezone from django.utils.functional import empty diff --git a/django/test/testcases.py b/django/test/testcases.py index 5195145998..853ac7b4d5 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -1,10 +1,7 @@ from __future__ import unicode_literals -from collections import Counter -from copy import copy import difflib import errno -from functools import wraps import json import os import posixpath @@ -14,34 +11,40 @@ import sys import threading import unittest import warnings +from collections import Counter +from copy import copy +from functools import wraps from unittest.util import safe_repr from django.apps import apps from django.conf import settings from django.core import mail -from django.core.exceptions import ValidationError, ImproperlyConfigured -from django.core.handlers.wsgi import get_path_info, WSGIHandler +from django.core.exceptions import ImproperlyConfigured, ValidationError +from django.core.handlers.wsgi import WSGIHandler, get_path_info from django.core.management import call_command from django.core.management.color import no_style from django.core.management.commands import flush from django.core.servers.basehttp import WSGIRequestHandler, WSGIServer from django.core.urlresolvers import clear_url_caches, set_urlconf -from django.db import connection, connections, DEFAULT_DB_ALIAS, transaction +from django.db import DEFAULT_DB_ALIAS, connection, connections, transaction from django.forms.fields import CharField from django.http import QueryDict from django.test.client import Client from django.test.html import HTMLParseError, parse_html from django.test.signals import setting_changed, template_rendered -from django.test.utils import (CaptureQueriesContext, ContextList, - override_settings, modify_settings, compare_xml) +from django.test.utils import ( + CaptureQueriesContext, ContextList, compare_xml, modify_settings, + override_settings, +) +from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text -from django.utils import six -from django.utils.six.moves.urllib.parse import urlsplit, urlunsplit, urlparse, unquote +from django.utils.six.moves.urllib.parse import ( + unquote, urlparse, urlsplit, urlunsplit, +) from django.utils.six.moves.urllib.request import url2pathname from django.views.static import serve - __all__ = ('TestCase', 'TransactionTestCase', 'SimpleTestCase', 'skipIfDBFeature', 'skipUnlessDBFeature') diff --git a/django/test/utils.py b/django/test/utils.py index f0d8993a40..5224bcfb71 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -1,21 +1,21 @@ -from contextlib import contextmanager import logging import re import sys import time -from unittest import skipIf, skipUnless import warnings +from contextlib import contextmanager from functools import wraps -from xml.dom.minidom import parseString, Node +from unittest import skipIf, skipUnless +from xml.dom.minidom import Node, parseString from django.apps import apps -from django.conf import settings, UserSettingsHolder +from django.conf import UserSettingsHolder, settings from django.core import mail from django.core.signals import request_started from django.db import reset_queries from django.http import request from django.template import Template -from django.test.signals import template_rendered, setting_changed +from django.test.signals import setting_changed, template_rendered from django.utils import six from django.utils.encoding import force_str from django.utils.translation import deactivate diff --git a/django/utils/_os.py b/django/utils/_os.py index bcfe3de636..679b206e18 100644 --- a/django/utils/_os.py +++ b/django/utils/_os.py @@ -2,11 +2,11 @@ import os import stat import sys import tempfile -from os.path import join, normcase, normpath, abspath, isabs, sep, dirname +from os.path import abspath, dirname, isabs, join, normcase, normpath, sep from django.core.exceptions import SuspiciousFileOperation -from django.utils.encoding import force_text from django.utils import six +from django.utils.encoding import force_text try: WindowsError = WindowsError diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py index 0fa6ee2855..9c3e0bf5ef 100644 --- a/django/utils/autoreload.py +++ b/django/utils/autoreload.py @@ -28,7 +28,8 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from __future__ import absolute_import # Avoid importing `importlib` from this package. +# Avoid importing `import importlib` from this package +from __future__ import absolute_import import os import signal diff --git a/django/utils/cache.py b/django/utils/cache.py index 365733fedf..e48e159910 100644 --- a/django/utils/cache.py +++ b/django/utils/cache.py @@ -24,7 +24,7 @@ import time from django.conf import settings from django.core.cache import caches -from django.utils.encoding import iri_to_uri, force_bytes, force_text +from django.utils.encoding import force_bytes, force_text, iri_to_uri from django.utils.http import http_date from django.utils.timezone import get_current_timezone_name from django.utils.translation import get_language diff --git a/django/utils/crypto.py b/django/utils/crypto.py index a2a64052b7..b364762275 100644 --- a/django/utils/crypto.py +++ b/django/utils/crypto.py @@ -3,14 +3,19 @@ Django's standard crypto functions and utilities. """ from __future__ import unicode_literals +import binascii +import hashlib import hmac +import random import struct -import hashlib -import binascii import time +from django.conf import settings +from django.utils import six +from django.utils.encoding import force_bytes +from django.utils.six.moves import range + # Use the system PRNG if possible -import random try: random = random.SystemRandom() using_sysrandom = True @@ -20,11 +25,6 @@ except NotImplementedError: 'on your system. Falling back to Mersenne Twister.') using_sysrandom = False -from django.conf import settings -from django.utils.encoding import force_bytes -from django.utils import six -from django.utils.six.moves import range - def salted_hmac(key_salt, value, secret=None): """ diff --git a/django/utils/dateformat.py b/django/utils/dateformat.py index 1640f9ae5a..f4de4e7f7c 100644 --- a/django/utils/dateformat.py +++ b/django/utils/dateformat.py @@ -12,16 +12,18 @@ Usage: """ from __future__ import unicode_literals -import re -import time import calendar import datetime +import re +import time -from django.utils.dates import MONTHS, MONTHS_3, MONTHS_ALT, MONTHS_AP, WEEKDAYS, WEEKDAYS_ABBR -from django.utils.translation import ugettext as _ -from django.utils.encoding import force_text from django.utils import six +from django.utils.dates import ( + MONTHS, MONTHS_3, MONTHS_ALT, MONTHS_AP, WEEKDAYS, WEEKDAYS_ABBR, +) +from django.utils.encoding import force_text from django.utils.timezone import get_default_timezone, is_aware, is_naive +from django.utils.translation import ugettext as _ re_formatchars = re.compile(r'(?<!\\)([aAbBcdDeEfFgGhHiIjlLmMnNoOPrsStTUuwWyYzZ])') re_escaped = re.compile(r'\\(.)') diff --git a/django/utils/dateparse.py b/django/utils/dateparse.py index 2c749f015c..a3c760e8fb 100644 --- a/django/utils/dateparse.py +++ b/django/utils/dateparse.py @@ -7,9 +7,9 @@ import datetime import re -from django.utils import six -from django.utils.timezone import utc, get_fixed_timezone +from django.utils import six +from django.utils.timezone import get_fixed_timezone, utc date_re = re.compile( r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})$' diff --git a/django/utils/dates.py b/django/utils/dates.py index 25f092e618..680415fccb 100644 --- a/django/utils/dates.py +++ b/django/utils/dates.py @@ -1,6 +1,6 @@ "Commonly-used date structures" -from django.utils.translation import ugettext_lazy as _, pgettext_lazy +from django.utils.translation import pgettext_lazy, ugettext_lazy as _ WEEKDAYS = { 0: _('Monday'), 1: _('Tuesday'), 2: _('Wednesday'), 3: _('Thursday'), 4: _('Friday'), diff --git a/django/utils/datetime_safe.py b/django/utils/datetime_safe.py index 51cdfe31ef..d2e5b95241 100644 --- a/django/utils/datetime_safe.py +++ b/django/utils/datetime_safe.py @@ -7,9 +7,11 @@ # >>> datetime_safe.date(1850, 8, 2).strftime("%Y/%m/%d was a %A") # '1850/08/02 was a Friday' -from datetime import date as real_date, time as real_time, datetime as real_datetime import re import time as ttime +from datetime import ( + date as real_date, datetime as real_datetime, time as real_time, +) class date(real_date): diff --git a/django/utils/deconstruct.py b/django/utils/deconstruct.py index e0713a6d61..a94d242f61 100644 --- a/django/utils/deconstruct.py +++ b/django/utils/deconstruct.py @@ -1,4 +1,6 @@ -from __future__ import absolute_import # Avoid importing `importlib` from this package. +# Avoid importing `importlib` from this package. +from __future__ import absolute_import + from importlib import import_module from django.utils.version import get_docs_version diff --git a/django/utils/decorators.py b/django/utils/decorators.py index ba951a9ebc..10ad1ce506 100644 --- a/django/utils/decorators.py +++ b/django/utils/decorators.py @@ -5,7 +5,7 @@ try: except ImportError: ContextDecorator = None -from functools import wraps, update_wrapper, WRAPPER_ASSIGNMENTS +from functools import WRAPPER_ASSIGNMENTS, update_wrapper, wraps from django.utils import six diff --git a/django/utils/encoding.py b/django/utils/encoding.py index 40096741a7..99c9da843a 100644 --- a/django/utils/encoding.py +++ b/django/utils/encoding.py @@ -3,12 +3,13 @@ from __future__ import unicode_literals import codecs import datetime -from decimal import Decimal import locale +from decimal import Decimal -from django.utils.functional import Promise from django.utils import six +from django.utils.functional import Promise from django.utils.six.moves.urllib.parse import quote, unquote + if six.PY3: from urllib.parse import unquote_to_bytes diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py index 5578ddf46f..d870b50435 100644 --- a/django/utils/feedgenerator.py +++ b/django/utils/feedgenerator.py @@ -24,13 +24,13 @@ http://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004/ from __future__ import unicode_literals import datetime -from django.utils.xmlutils import SimplerXMLGenerator + +from django.utils import datetime_safe, six from django.utils.encoding import force_text, iri_to_uri -from django.utils import datetime_safe -from django.utils import six from django.utils.six import StringIO from django.utils.six.moves.urllib.parse import urlparse from django.utils.timezone import is_aware +from django.utils.xmlutils import SimplerXMLGenerator def rfc2822_date(date): diff --git a/django/utils/formats.py b/django/utils/formats.py index 855b1a1cc0..c40e542e7d 100644 --- a/django/utils/formats.py +++ b/django/utils/formats.py @@ -1,17 +1,19 @@ -from __future__ import absolute_import # Avoid importing `importlib` from this package. +# Avoid importing `importlib` from this package. +from __future__ import absolute_import -import decimal import datetime -from importlib import import_module +import decimal import unicodedata +from importlib import import_module from django.conf import settings -from django.utils import dateformat, numberformat, datetime_safe +from django.utils import dateformat, datetime_safe, numberformat, six from django.utils.encoding import force_str from django.utils.functional import lazy from django.utils.safestring import mark_safe -from django.utils import six -from django.utils.translation import get_language, to_locale, check_for_language +from django.utils.translation import ( + check_for_language, get_language, to_locale, +) # format_cache is a mapping from (format_type, lang) to the format string. # By using the cache, it is possible to avoid running get_format_modules diff --git a/django/utils/functional.py b/django/utils/functional.py index 4c085d9c6d..50ff8824f9 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -1,7 +1,7 @@ import copy import operator -from functools import wraps import sys +from functools import wraps from django.utils import six from django.utils.six.moves import copyreg diff --git a/django/utils/html.py b/django/utils/html.py index 758d458f40..569ac74e96 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -5,17 +5,18 @@ from __future__ import unicode_literals import re import warnings +from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning -from django.utils.encoding import force_text, force_str +from django.utils.encoding import force_str, force_text from django.utils.functional import allow_lazy from django.utils.http import RFC3986_GENDELIMS, RFC3986_SUBDELIMS from django.utils.safestring import SafeData, SafeText, mark_safe -from django.utils import six -from django.utils.six.moves.urllib.parse import parse_qsl, quote, unquote, urlencode, urlsplit, urlunsplit +from django.utils.six.moves.urllib.parse import ( + parse_qsl, quote, unquote, urlencode, urlsplit, urlunsplit, +) from django.utils.text import normalize_newlines -from .html_parser import HTMLParser, HTMLParseError - +from .html_parser import HTMLParseError, HTMLParser # Configuration for urlize() function. TRAILING_PUNCTUATION = ['.', ',', ':', ';', '.)', '"', '\'', '!'] diff --git a/django/utils/html_parser.py b/django/utils/html_parser.py index 4aff4a9a78..e7f7c11571 100644 --- a/django/utils/html_parser.py +++ b/django/utils/html_parser.py @@ -1,7 +1,8 @@ -from django.utils.six.moves import html_parser as _html_parser import re import sys +from django.utils.six.moves import html_parser as _html_parser + current_version = sys.version_info use_workaround = current_version < (2, 7, 3) diff --git a/django/utils/http.py b/django/utils/http.py index 431f83df21..d732a9c825 100644 --- a/django/utils/http.py +++ b/django/utils/http.py @@ -5,17 +5,17 @@ import calendar import datetime import re import sys - from binascii import Error as BinasciiError from email.utils import formatdate +from django.utils import six from django.utils.datastructures import MultiValueDict from django.utils.encoding import force_bytes, force_str, force_text from django.utils.functional import allow_lazy -from django.utils import six from django.utils.six.moves.urllib.parse import ( - quote, quote_plus, unquote, unquote_plus, urlparse, - urlencode as original_urlencode) + quote, quote_plus, unquote, unquote_plus, urlencode as original_urlencode, + urlparse, +) ETAG_MATCH = re.compile(r'(?:W/)?"((?:\\.|[^"])*)"') diff --git a/django/utils/ipv6.py b/django/utils/ipv6.py index 54ccc73b94..94e9dcf50e 100644 --- a/django/utils/ipv6.py +++ b/django/utils/ipv6.py @@ -2,8 +2,8 @@ # Copyright 2007 Google Inc. http://code.google.com/p/ipaddr-py/ # Licensed under the Apache License, Version 2.0 (the "License"). from django.core.exceptions import ValidationError -from django.utils.translation import ugettext_lazy as _ from django.utils.six.moves import range +from django.utils.translation import ugettext_lazy as _ def clean_ipv6_address(ip_str, unpack_ipv4=False, diff --git a/django/utils/jslex.py b/django/utils/jslex.py index 35bdc57e1a..cfc8654432 100644 --- a/django/utils/jslex.py +++ b/django/utils/jslex.py @@ -1,6 +1,7 @@ """JsLex: a lexer for Javascript""" # Originally from https://bitbucket.org/ned/jslex from __future__ import unicode_literals + import re diff --git a/django/utils/module_loading.py b/django/utils/module_loading.py index a4e255842d..568493ba96 100644 --- a/django/utils/module_loading.py +++ b/django/utils/module_loading.py @@ -1,9 +1,10 @@ -from __future__ import absolute_import # Avoid importing `importlib` from this package. +# Avoid importing `importlib` from this package. +from __future__ import absolute_import import copy -from importlib import import_module import os import sys +from importlib import import_module from django.utils import six diff --git a/django/utils/numberformat.py b/django/utils/numberformat.py index c3cf55bca5..dcccc99e0b 100644 --- a/django/utils/numberformat.py +++ b/django/utils/numberformat.py @@ -1,8 +1,8 @@ from decimal import Decimal from django.conf import settings -from django.utils.safestring import mark_safe from django.utils import six +from django.utils.safestring import mark_safe def format(number, decimal_sep, decimal_pos=None, grouping=0, thousand_sep='', diff --git a/django/utils/safestring.py b/django/utils/safestring.py index ab4d8149c9..3d3bf1b62a 100644 --- a/django/utils/safestring.py +++ b/django/utils/safestring.py @@ -4,8 +4,8 @@ without further escaping in HTML. Marking something as a "safe string" means that the producer of the string has already turned characters that should not be interpreted by the HTML engine (e.g. '<') into the appropriate entities. """ -from django.utils.functional import curry, Promise from django.utils import six +from django.utils.functional import Promise, curry class EscapeData(object): diff --git a/django/utils/text.py b/django/utils/text.py index ad549c349d..5d1f4a0998 100644 --- a/django/utils/text.py +++ b/django/utils/text.py @@ -5,12 +5,12 @@ import unicodedata from gzip import GzipFile from io import BytesIO -from django.utils.encoding import force_text -from django.utils.functional import allow_lazy, SimpleLazyObject from django.utils import six -from django.utils.six.moves import html_entities -from django.utils.translation import ugettext_lazy, ugettext as _, pgettext +from django.utils.encoding import force_text +from django.utils.functional import SimpleLazyObject, allow_lazy from django.utils.safestring import SafeText, mark_safe +from django.utils.six.moves import html_entities +from django.utils.translation import pgettext, ugettext as _, ugettext_lazy if six.PY2: # Import force_unicode even though this module doesn't use it, because some diff --git a/django/utils/timezone.py b/django/utils/timezone.py index a45a72f2f9..dbda90c64a 100644 --- a/django/utils/timezone.py +++ b/django/utils/timezone.py @@ -4,20 +4,20 @@ Timezone-related classes and functions. This module uses pytz when it's available and fallbacks when it isn't. """ -from datetime import datetime, timedelta, tzinfo -from threading import local import sys import time as _time +from datetime import datetime, timedelta, tzinfo +from threading import local + +from django.conf import settings +from django.utils import lru_cache, six +from django.utils.decorators import ContextDecorator try: import pytz except ImportError: pytz = None -from django.conf import settings -from django.utils import lru_cache -from django.utils import six -from django.utils.decorators import ContextDecorator __all__ = [ 'utc', 'get_fixed_timezone', diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py index 18bb84b1de..9cdf02f3fd 100644 --- a/django/utils/translation/trans_real.py +++ b/django/utils/translation/trans_real.py @@ -1,13 +1,13 @@ """Translation helper functions.""" from __future__ import unicode_literals -from collections import OrderedDict +import gettext as gettext_module import os import re import sys -import gettext as gettext_module -from threading import local import warnings +from collections import OrderedDict +from threading import local from django.apps import apps from django.conf import settings @@ -15,12 +15,14 @@ from django.conf.locale import LANG_INFO from django.core.exceptions import AppRegistryNotReady from django.core.signals import setting_changed from django.dispatch import receiver -from django.utils.encoding import force_text +from django.utils import lru_cache, six from django.utils._os import upath -from django.utils.safestring import mark_safe, SafeData -from django.utils import six, lru_cache +from django.utils.encoding import force_text +from django.utils.safestring import SafeData, mark_safe from django.utils.six import StringIO -from django.utils.translation import TranslatorCommentWarning, trim_whitespace, LANGUAGE_SESSION_KEY +from django.utils.translation import ( + LANGUAGE_SESSION_KEY, TranslatorCommentWarning, trim_whitespace, +) # Translations are cached in a dictionary for every language. # The active translations are stored by threadid to make them thread local. diff --git a/django/views/csrf.py b/django/views/csrf.py index a709e5fc1c..aa227d3b6e 100644 --- a/django/views/csrf.py +++ b/django/views/csrf.py @@ -4,6 +4,7 @@ from django.template import Context, Template from django.utils.translation import ugettext as _ from django.utils.version import get_docs_version + # We include the template inline since we need to be able to reliably display # this error message, especially for the sake of developers, and there isn't any # other way of making it available independent of what is in the settings file. diff --git a/django/views/debug.py b/django/views/debug.py index 19254c5cf2..0a4aa8f74d 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -7,20 +7,19 @@ import sys import types from django.conf import settings -from django.core.urlresolvers import resolve, Resolver404 -from django.http import (HttpResponse, HttpResponseNotFound, HttpRequest, - build_request_repr) +from django.core.urlresolvers import Resolver404, resolve +from django.http import ( + HttpRequest, HttpResponse, HttpResponseNotFound, build_request_repr, +) from django.template import Context, Engine, TemplateDoesNotExist from django.template.defaultfilters import force_escape, pprint +from django.utils import lru_cache, six from django.utils.datastructures import MultiValueDict -from django.utils.html import escape from django.utils.encoding import force_bytes, smart_text -from django.utils import lru_cache +from django.utils.html import escape from django.utils.module_loading import import_string -from django.utils import six from django.utils.translation import ugettext as _ - # Minimal Django templates engine to render the error templates # regardless of the project's TEMPLATES setting. DEBUG_ENGINE = Engine(debug=True) diff --git a/django/views/decorators/cache.py b/django/views/decorators/cache.py index f52169db4f..07e0e70946 100644 --- a/django/views/decorators/cache.py +++ b/django/views/decorators/cache.py @@ -1,7 +1,10 @@ from functools import wraps -from django.utils.decorators import decorator_from_middleware_with_args, available_attrs -from django.utils.cache import patch_cache_control, add_never_cache_headers + from django.middleware.cache import CacheMiddleware +from django.utils.cache import add_never_cache_headers, patch_cache_control +from django.utils.decorators import ( + available_attrs, decorator_from_middleware_with_args, +) def cache_page(*args, **kwargs): diff --git a/django/views/decorators/csrf.py b/django/views/decorators/csrf.py index 1ebed2a6a1..d8c89c176c 100644 --- a/django/views/decorators/csrf.py +++ b/django/views/decorators/csrf.py @@ -1,7 +1,8 @@ -from django.middleware.csrf import CsrfViewMiddleware, get_token -from django.utils.decorators import decorator_from_middleware, available_attrs from functools import wraps +from django.middleware.csrf import CsrfViewMiddleware, get_token +from django.utils.decorators import available_attrs, decorator_from_middleware + csrf_protect = decorator_from_middleware(CsrfViewMiddleware) csrf_protect.__name__ = "csrf_protect" csrf_protect.__doc__ = """ diff --git a/django/views/decorators/gzip.py b/django/views/decorators/gzip.py index f5b009db4a..96d6aa805e 100644 --- a/django/views/decorators/gzip.py +++ b/django/views/decorators/gzip.py @@ -1,5 +1,5 @@ -from django.utils.decorators import decorator_from_middleware from django.middleware.gzip import GZipMiddleware +from django.utils.decorators import decorator_from_middleware gzip_page = decorator_from_middleware(GZipMiddleware) gzip_page.__doc__ = "Decorator for views that gzips pages if the client supports it." diff --git a/django/views/decorators/http.py b/django/views/decorators/http.py index 990c3770db..4399182fbd 100644 --- a/django/views/decorators/http.py +++ b/django/views/decorators/http.py @@ -6,10 +6,14 @@ import logging from calendar import timegm from functools import wraps -from django.utils.decorators import decorator_from_middleware, available_attrs -from django.utils.http import http_date, parse_http_date_safe, parse_etags, quote_etag +from django.http import ( + HttpResponse, HttpResponseNotAllowed, HttpResponseNotModified, +) from django.middleware.http import ConditionalGetMiddleware -from django.http import HttpResponseNotAllowed, HttpResponseNotModified, HttpResponse +from django.utils.decorators import available_attrs, decorator_from_middleware +from django.utils.http import ( + http_date, parse_etags, parse_http_date_safe, quote_etag, +) conditional_page = decorator_from_middleware(ConditionalGetMiddleware) diff --git a/django/views/decorators/vary.py b/django/views/decorators/vary.py index 056669278b..df92c65c5c 100644 --- a/django/views/decorators/vary.py +++ b/django/views/decorators/vary.py @@ -1,4 +1,5 @@ from functools import wraps + from django.utils.cache import patch_vary_headers from django.utils.decorators import available_attrs diff --git a/django/views/defaults.py b/django/views/defaults.py index e71756d1dd..35d42830a4 100644 --- a/django/views/defaults.py +++ b/django/views/defaults.py @@ -1,5 +1,5 @@ from django import http -from django.template import loader, Context, Engine, TemplateDoesNotExist +from django.template import Context, Engine, TemplateDoesNotExist, loader from django.views.decorators.csrf import requires_csrf_token diff --git a/django/views/generic/base.py b/django/views/generic/base.py index 88b6608fd2..5bc610355a 100644 --- a/django/views/generic/base.py +++ b/django/views/generic/base.py @@ -5,10 +5,10 @@ from functools import update_wrapper from django import http from django.core.exceptions import ImproperlyConfigured -from django.core.urlresolvers import reverse, NoReverseMatch +from django.core.urlresolvers import NoReverseMatch, reverse from django.template.response import TemplateResponse -from django.utils.decorators import classonlymethod from django.utils import six +from django.utils.decorators import classonlymethod logger = logging.getLogger('django.request') diff --git a/django/views/generic/dates.py b/django/views/generic/dates.py index 27f0ba1065..2a63db2fe9 100644 --- a/django/views/generic/dates.py +++ b/django/views/generic/dates.py @@ -1,17 +1,22 @@ from __future__ import unicode_literals import datetime + from django.conf import settings -from django.db import models from django.core.exceptions import ImproperlyConfigured +from django.db import models from django.http import Http404 +from django.utils import timezone from django.utils.encoding import force_str, force_text from django.utils.functional import cached_property from django.utils.translation import ugettext as _ -from django.utils import timezone from django.views.generic.base import View -from django.views.generic.detail import BaseDetailView, SingleObjectTemplateResponseMixin -from django.views.generic.list import MultipleObjectMixin, MultipleObjectTemplateResponseMixin +from django.views.generic.detail import ( + BaseDetailView, SingleObjectTemplateResponseMixin, +) +from django.views.generic.list import ( + MultipleObjectMixin, MultipleObjectTemplateResponseMixin, +) class YearMixin(object): diff --git a/django/views/generic/detail.py b/django/views/generic/detail.py index a40e93a7f5..13649a318b 100644 --- a/django/views/generic/detail.py +++ b/django/views/generic/detail.py @@ -4,7 +4,7 @@ from django.core.exceptions import ImproperlyConfigured from django.db import models from django.http import Http404 from django.utils.translation import ugettext as _ -from django.views.generic.base import TemplateResponseMixin, ContextMixin, View +from django.views.generic.base import ContextMixin, TemplateResponseMixin, View class SingleObjectMixin(ContextMixin): diff --git a/django/views/generic/edit.py b/django/views/generic/edit.py index a4329a25b0..2a2590263f 100644 --- a/django/views/generic/edit.py +++ b/django/views/generic/edit.py @@ -8,9 +8,10 @@ from django.http import HttpResponseRedirect from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_text -from django.views.generic.base import TemplateResponseMixin, ContextMixin, View -from django.views.generic.detail import (SingleObjectMixin, - SingleObjectTemplateResponseMixin, BaseDetailView) +from django.views.generic.base import ContextMixin, TemplateResponseMixin, View +from django.views.generic.detail import ( + BaseDetailView, SingleObjectMixin, SingleObjectTemplateResponseMixin, +) PERCENT_PLACEHOLDER_REGEX = re.compile(r'%\([^\)]+\)') # RemovedInDjango20Warning diff --git a/django/views/generic/list.py b/django/views/generic/list.py index 2243bcec4a..ccb2185524 100644 --- a/django/views/generic/list.py +++ b/django/views/generic/list.py @@ -1,12 +1,12 @@ from __future__ import unicode_literals -from django.core.paginator import Paginator, InvalidPage from django.core.exceptions import ImproperlyConfigured +from django.core.paginator import InvalidPage, Paginator from django.db.models.query import QuerySet from django.http import Http404 from django.utils import six from django.utils.translation import ugettext as _ -from django.views.generic.base import TemplateResponseMixin, ContextMixin, View +from django.views.generic.base import ContextMixin, TemplateResponseMixin, View class MultipleObjectMixin(ContextMixin): diff --git a/django/views/i18n.py b/django/views/i18n.py index 7278f6ce1b..11ce8c6293 100644 --- a/django/views/i18n.py +++ b/django/views/i18n.py @@ -1,18 +1,20 @@ +import gettext as gettext_module import importlib import json import os -import gettext as gettext_module from django import http from django.apps import apps from django.conf import settings from django.template import Context, Template -from django.utils.translation import check_for_language, to_locale, get_language, LANGUAGE_SESSION_KEY -from django.utils.encoding import smart_text -from django.utils.formats import get_format_modules, get_format +from django.utils import six from django.utils._os import upath +from django.utils.encoding import smart_text +from django.utils.formats import get_format, get_format_modules from django.utils.http import is_safe_url -from django.utils import six +from django.utils.translation import ( + LANGUAGE_SESSION_KEY, check_for_language, get_language, to_locale, +) def set_language(request): diff --git a/django/views/static.py b/django/views/static.py index 75e81eccd3..1ff36bc8e9 100644 --- a/django/views/static.py +++ b/django/views/static.py @@ -6,13 +6,15 @@ from __future__ import unicode_literals import mimetypes import os -import stat import posixpath import re +import stat -from django.http import (Http404, HttpResponse, HttpResponseRedirect, - HttpResponseNotModified, FileResponse) -from django.template import loader, Template, Context, TemplateDoesNotExist +from django.http import ( + FileResponse, Http404, HttpResponse, HttpResponseNotModified, + HttpResponseRedirect, +) +from django.template import Context, Template, TemplateDoesNotExist, loader from django.utils.http import http_date, parse_http_date from django.utils.six.moves.urllib.parse import unquote from django.utils.translation import ugettext as _, ugettext_lazy |