diff --git a/analytics/views.py b/analytics/views.py index 937956a84d..af52993b07 100644 --- a/analytics/views.py +++ b/analytics/views.py @@ -11,7 +11,7 @@ from typing import Any, Callable, Dict, List, \ import pytz from django.conf import settings -from django.core import urlresolvers +from django.urls import reverse from django.db import connection from django.db.models import Sum from django.db.models.query import QuerySet @@ -881,13 +881,13 @@ def format_date_for_activity_reports(date: Optional[datetime]) -> str: def user_activity_link(email: str) -> mark_safe: url_name = 'analytics.views.get_user_activity' - url = urlresolvers.reverse(url_name, kwargs=dict(email=email)) + url = reverse(url_name, kwargs=dict(email=email)) email_link = '%s' % (url, email) return mark_safe(email_link) def realm_activity_link(realm_str: str) -> mark_safe: url_name = 'analytics.views.get_realm_activity' - url = urlresolvers.reverse(url_name, kwargs=dict(realm_str=realm_str)) + url = reverse(url_name, kwargs=dict(realm_str=realm_str)) realm_link = '%s' % (url, realm_str) return mark_safe(realm_link) diff --git a/zerver/forms.py b/zerver/forms.py index 378e668f5b..9877daf8d8 100644 --- a/zerver/forms.py +++ b/zerver/forms.py @@ -5,7 +5,7 @@ from django.contrib.auth import authenticate from django.contrib.auth.forms import SetPasswordForm, AuthenticationForm, \ PasswordResetForm from django.core.exceptions import ValidationError -from django.core.urlresolvers import reverse +from django.urls import reverse from django.core.validators import validate_email from django.db.models.query import QuerySet from django.utils.translation import ugettext as _ diff --git a/zerver/lib/integrations.py b/zerver/lib/integrations.py index e304eb360a..600f50eb18 100644 --- a/zerver/lib/integrations.py +++ b/zerver/lib/integrations.py @@ -4,7 +4,7 @@ import pathlib from typing import Dict, List, Optional, TypeVar, Any, Text from django.conf import settings from django.conf.urls import url -from django.core.urlresolvers import LocaleRegexProvider +from django.urls.resolvers import LocaleRegexProvider from django.utils.module_loading import import_string from django.utils.safestring import mark_safe from django.utils.translation import ugettext as _ diff --git a/zerver/lib/test_classes.py b/zerver/lib/test_classes.py index e11c271bc0..bbc518cfb0 100644 --- a/zerver/lib/test_classes.py +++ b/zerver/lib/test_classes.py @@ -2,7 +2,7 @@ from contextlib import contextmanager from typing import (cast, Any, Callable, Dict, Iterable, Iterator, List, Mapping, Optional, Sized, Tuple, Union, Text) -from django.core.urlresolvers import resolve +from django.urls import resolve from django.conf import settings from django.test import TestCase from django.test.client import ( diff --git a/zerver/lib/test_helpers.py b/zerver/lib/test_helpers.py index 6b04caa240..dee26ffedd 100644 --- a/zerver/lib/test_helpers.py +++ b/zerver/lib/test_helpers.py @@ -5,7 +5,7 @@ from typing import ( ) from django.core import signing -from django.core.urlresolvers import LocaleRegexURLResolver +from django.urls.resolvers import LocaleRegexURLResolver from django.conf import settings from django.test import TestCase, override_settings from django.test.client import ( diff --git a/zerver/tests/test_auth_backends.py b/zerver/tests/test_auth_backends.py index d277741870..dfea35d1b5 100644 --- a/zerver/tests/test_auth_backends.py +++ b/zerver/tests/test_auth_backends.py @@ -10,7 +10,7 @@ from typing import Any, Callable, Dict, List, Optional, Text from builtins import object from oauth2client.crypt import AppIdentityError from django.core import signing -from django.core.urlresolvers import reverse +from django.urls import reverse import jwt import mock diff --git a/zerver/tests/test_urls.py b/zerver/tests/test_urls.py index bcc28f20f0..e8bdbc57b9 100644 --- a/zerver/tests/test_urls.py +++ b/zerver/tests/test_urls.py @@ -4,7 +4,7 @@ import importlib import os import ujson -import django.core.urlresolvers +import django.urls.resolvers from django.test import TestCase, Client from typing import List, Optional @@ -106,7 +106,7 @@ class PublicURLTest(ZulipTestCase): self.assertEqual('ABCD', data['google_client_id']) class URLResolutionTest(TestCase): - def get_callback_string(self, pattern: django.core.urlresolvers.RegexURLPattern) -> Optional[str]: + def get_callback_string(self, pattern: django.urls.resolvers.RegexURLPattern) -> Optional[str]: callback_str = hasattr(pattern, 'lookup_str') and 'lookup_str' callback_str = callback_str or '_callback_str' return getattr(pattern, callback_str, None) diff --git a/zerver/tornado/handlers.py b/zerver/tornado/handlers.py index ce1c684d94..1507f0540c 100644 --- a/zerver/tornado/handlers.py +++ b/zerver/tornado/handlers.py @@ -8,12 +8,13 @@ from typing import Any, Callable, Dict, List, Optional import tornado.web from django import http from django.conf import settings -from django.core import exceptions, signals, urlresolvers +from django.core import exceptions, signals +from django.urls import resolvers from django.core.exceptions import MiddlewareNotUsed from django.core.handlers import base from django.core.handlers.exception import convert_exception_to_response from django.core.handlers.wsgi import WSGIRequest, get_script_name -from django.core.urlresolvers import set_script_prefix +from django.urls import set_script_prefix, set_urlconf from django.http import HttpRequest, HttpResponse from django.utils.module_loading import import_string from tornado.wsgi import WSGIContainer @@ -189,8 +190,8 @@ class AsyncDjangoHandler(tornado.web.RequestHandler, base.BaseHandler): try: # Setup default url resolver for this thread. urlconf = settings.ROOT_URLCONF - urlresolvers.set_urlconf(urlconf) - resolver = urlresolvers.RegexURLResolver(r'^/', urlconf) + set_urlconf(urlconf) + resolver = resolvers.RegexURLResolver(r'^/', urlconf) response = None @@ -203,8 +204,8 @@ class AsyncDjangoHandler(tornado.web.RequestHandler, base.BaseHandler): if hasattr(request, "urlconf"): # Reset url resolver with a custom urlconf. urlconf = request.urlconf - urlresolvers.set_urlconf(urlconf) - resolver = urlresolvers.RegexURLResolver(r'^/', urlconf) + set_urlconf(urlconf) + resolver = resolvers.RegexURLResolver(r'^/', urlconf) ### ADDED BY ZULIP request._resolver = resolver @@ -297,7 +298,7 @@ class AsyncDjangoHandler(tornado.web.RequestHandler, base.BaseHandler): return self.handle_uncaught_exception(request, resolver, exc_info) finally: # Reset urlconf on the way out for isolation - urlresolvers.set_urlconf(None) + set_urlconf(None) ### ZULIP CHANGE: The remainder of this function was moved ### into its own function, just below, so we can call it from @@ -308,7 +309,7 @@ class AsyncDjangoHandler(tornado.web.RequestHandler, base.BaseHandler): ### Copied from get_response (above in this file) def apply_response_middleware(self, request: HttpRequest, response: HttpResponse, - resolver: urlresolvers.RegexURLResolver) -> HttpResponse: + resolver: resolvers.RegexURLResolver) -> HttpResponse: try: # Apply response middleware, regardless of the response for middleware_method in self._response_middleware: diff --git a/zerver/views/auth.py b/zerver/views/auth.py index 458a59005a..cd44836520 100644 --- a/zerver/views/auth.py +++ b/zerver/views/auth.py @@ -6,7 +6,7 @@ from django.contrib.auth import authenticate, get_backends from django.contrib.auth.views import login as django_login_page, \ logout_then_login as django_logout_then_login from django.contrib.auth.views import password_reset as django_password_reset -from django.core.urlresolvers import reverse +from django.urls import reverse from zerver.decorator import authenticated_json_post_view, require_post, \ process_client, do_login, log_view_func from django.http import HttpRequest, HttpResponse, HttpResponseRedirect, \ diff --git a/zerver/views/home.py b/zerver/views/home.py index 72be6d62ce..7b8ad4348b 100644 --- a/zerver/views/home.py +++ b/zerver/views/home.py @@ -1,7 +1,7 @@ from typing import Any, List, Dict, Optional, Text, Iterator from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect, HttpResponse, HttpRequest from django.shortcuts import redirect, render from django.utils import translation diff --git a/zerver/views/registration.py b/zerver/views/registration.py index 7ccfcc87c7..6f29dfb0c6 100644 --- a/zerver/views/registration.py +++ b/zerver/views/registration.py @@ -4,7 +4,7 @@ from typing import Any, List, Dict, Mapping, Optional, Text from django.utils.translation import ugettext as _ from django.conf import settings from django.contrib.auth import authenticate, get_backends -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseRedirect, HttpResponseForbidden, HttpResponse, HttpRequest from django.shortcuts import redirect, render from django.template import RequestContext, loader diff --git a/zproject/jinja2/__init__.py b/zproject/jinja2/__init__.py index 2106101223..df8244e28b 100644 --- a/zproject/jinja2/__init__.py +++ b/zproject/jinja2/__init__.py @@ -3,7 +3,7 @@ from typing import Any from django.contrib.staticfiles.storage import staticfiles_storage from django.template.defaultfilters import slugify, pluralize -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils import translation from jinja2 import Environment