diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 9c649215c..fc42108ff 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -17,13 +17,15 @@ from django.utils import six from django.views.generic import View try: - from django.urls import ( - NoReverseMatch, URLPattern as RegexURLPattern, URLResolver as RegexURLResolver, ResolverMatch, Resolver404, get_script_prefix, reverse, reverse_lazy, resolve + from django.urls import ( # noqa + URLPattern as RegexURLPattern, + URLResolver as RegexURLResolver, ) - except ImportError: - from django.core.urlresolvers import ( # Will be removed in Django 2.0 - NoReverseMatch, RegexURLPattern, RegexURLResolver, ResolverMatch, Resolver404, get_script_prefix, reverse, reverse_lazy, resolve + # Will be removed in Django 2.0 + from django.urls import ( # noqa + RegexURLPattern, + RegexURLResolver, ) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 4d3bdba1d..22078e64a 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -6,6 +6,7 @@ from collections import OrderedDict from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist from django.db.models import Manager from django.db.models.query import QuerySet +from django.urls import NoReverseMatch, Resolver404, get_script_prefix, resolve from django.utils import six from django.utils.encoding import ( python_2_unicode_compatible, smart_text, uri_to_iri @@ -13,9 +14,6 @@ from django.utils.encoding import ( from django.utils.six.moves.urllib import parse as urlparse from django.utils.translation import ugettext_lazy as _ -from rest_framework.compat import ( - NoReverseMatch, Resolver404, get_script_prefix, resolve -) from rest_framework.fields import ( Field, empty, get_attribute, is_simple_callable, iter_options ) diff --git a/rest_framework/reverse.py b/rest_framework/reverse.py index fd418dcca..54c463553 100644 --- a/rest_framework/reverse.py +++ b/rest_framework/reverse.py @@ -3,11 +3,11 @@ Provide urlresolver functions that return fully qualified URLs or view names """ from __future__ import unicode_literals +from django.urls import reverse as django_reverse +from django.urls import NoReverseMatch from django.utils import six from django.utils.functional import lazy -from rest_framework.compat import reverse as django_reverse -from rest_framework.compat import NoReverseMatch from rest_framework.settings import api_settings from rest_framework.utils.urls import replace_query_param diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 1ed3b930e..2010a1138 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -20,9 +20,9 @@ from collections import OrderedDict, namedtuple from django.conf.urls import url from django.core.exceptions import ImproperlyConfigured +from django.urls import NoReverseMatch from rest_framework import views -from rest_framework.compat import NoReverseMatch from rest_framework.response import Response from rest_framework.reverse import reverse from rest_framework.schemas import SchemaGenerator diff --git a/rest_framework/templatetags/rest_framework.py b/rest_framework/templatetags/rest_framework.py index 20e0f7a67..bc38c0a34 100644 --- a/rest_framework/templatetags/rest_framework.py +++ b/rest_framework/templatetags/rest_framework.py @@ -5,14 +5,12 @@ from collections import OrderedDict from django import template from django.template import loader +from django.urls import NoReverseMatch, reverse from django.utils import six from django.utils.encoding import force_text, iri_to_uri from django.utils.html import escape, format_html, smart_urlquote from django.utils.safestring import SafeData, mark_safe - -from rest_framework.compat import ( - NoReverseMatch, apply_markdown, pygments_highlight, reverse -) +from rest_framework.compat import apply_markdown, pygments_highlight from rest_framework.renderers import HTMLFormRenderer from rest_framework.utils.urls import replace_query_param diff --git a/rest_framework/utils/breadcrumbs.py b/rest_framework/utils/breadcrumbs.py index 22f0d8a3b..4915eb978 100644 --- a/rest_framework/utils/breadcrumbs.py +++ b/rest_framework/utils/breadcrumbs.py @@ -1,6 +1,6 @@ from __future__ import unicode_literals -from rest_framework.compat import get_script_prefix, resolve +from django.urls import get_script_prefix, resolve def get_breadcrumbs(url, request=None): diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 7ccd43613..5d7cb20ea 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -6,12 +6,13 @@ import unittest from django.contrib.auth.models import Group, Permission, User from django.db import models from django.test import TestCase +from django.urls import ResolverMatch from rest_framework import ( HTTP_HEADER_ENCODING, authentication, generics, permissions, serializers, status, views ) -from rest_framework.compat import ResolverMatch, guardian +from rest_framework.compat import guardian from rest_framework.filters import DjangoObjectPermissionsFilter from rest_framework.routers import DefaultRouter from rest_framework.test import APIRequestFactory diff --git a/tests/test_reverse.py b/tests/test_reverse.py index 47eda256e..145b1a54f 100644 --- a/tests/test_reverse.py +++ b/tests/test_reverse.py @@ -2,8 +2,8 @@ from __future__ import unicode_literals from django.conf.urls import url from django.test import TestCase, override_settings +from django.urls import NoReverseMatch -from rest_framework.compat import NoReverseMatch from rest_framework.reverse import reverse from rest_framework.test import APIRequestFactory diff --git a/tests/test_urlpatterns.py b/tests/test_urlpatterns.py index 7320de479..e84465141 100644 --- a/tests/test_urlpatterns.py +++ b/tests/test_urlpatterns.py @@ -4,8 +4,9 @@ from collections import namedtuple from django.conf.urls import include, url from django.test import TestCase +from django.urls import Resolver404 -from rest_framework.compat import Resolver404, make_url_resolver +from rest_framework.compat import make_url_resolver from rest_framework.test import APIRequestFactory from rest_framework.urlpatterns import format_suffix_patterns diff --git a/tests/utils.py b/tests/utils.py index 0ef37016d..509e6a102 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -1,6 +1,5 @@ from django.core.exceptions import ObjectDoesNotExist - -from rest_framework.compat import NoReverseMatch +from django.urls import NoReverseMatch class MockObject(object):