Skip to content

Commit 759e109

Browse files
committed
Reorder import try block for use Zero-cost improvement
1 parent 25811cc commit 759e109

9 files changed

+49
-42
lines changed

password_policies/admin.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from django.contrib import admin
22
try:
3-
# Deprecated in Django 3.0
4-
from django.utils.translation import ugettext_lazy as _
5-
except ImportError:
63
from django.utils.translation import gettext_lazy as _
4+
except ImportError:
5+
# Before Django 3.0
6+
from django.utils.translation import ugettext_lazy as _
77

88
from password_policies.conf import settings
99
from password_policies.models import PasswordChangeRequired, PasswordHistory

password_policies/context_processors.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@ def password_status(request):
2424
)
2525
"""
2626
d = {}
27-
try:
28-
# Did this ever worked? It gives error on Django 2.0
29-
# and I haven't ran the test suite before that...
30-
auth = request.user.is_authenticated()
31-
except TypeError:
32-
auth = request.user.is_authenticated
27+
auth = request.user.is_authenticated
28+
if callable(auth): # Before Django 1.10
29+
auth = auth()
30+
3331
if auth:
3432
if '_password_policies_change_required' not in request.session:
3533
r = PasswordHistory.objects.change_required(request.user)

password_policies/forms/__init__.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@
1616

1717

1818
try:
19-
from django.contrib.sites.models import get_current_site
20-
except ImportError:
2119
from django.contrib.sites.shortcuts import get_current_site
20+
except ImportError:
21+
# Before Django 1.9
22+
from django.contrib.sites.models import get_current_site
2223

2324
from django.utils.encoding import force_bytes
2425
from django.utils.http import urlsafe_base64_encode
2526
try:
26-
# Deprecated in Django 3.0
27-
from django.utils.translation import ugettext_lazy as _
28-
except ImportError:
2927
from django.utils.translation import gettext_lazy as _
28+
except ImportError:
29+
# Before in Django 3.0
30+
from django.utils.translation import ugettext_lazy as _
3031

3132
from password_policies.conf import settings
3233
from password_policies.forms.fields import PasswordPoliciesField

password_policies/forms/admin.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from django import forms
22
from django.contrib.auth.forms import AdminPasswordChangeForm
33
try:
4-
# Deprecated in Django 3.0
5-
from django.utils.translation import ugettext_lazy as _
6-
except ImportError:
74
from django.utils.translation import gettext_lazy as _
5+
except ImportError:
6+
# Before in Django 3.0
7+
from django.utils.translation import ugettext_lazy as _
88

99
from password_policies.conf import settings
1010
from password_policies.forms.fields import PasswordPoliciesField

password_policies/forms/validators.py

+12-10
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,23 @@
77
from django.core.exceptions import ValidationError
88

99
try:
10-
from django.utils.encoding import smart_text
11-
except ImportError:
1210
from django.utils.encoding import smart_str as smart_text
11+
except ImportError:
12+
# Before in Django 2.0
13+
from django.utils.encoding import smart_text
1314

1415
try:
15-
from django.utils.encoding import force_text
16-
except ImportError:
1716
from django.utils.encoding import force_str as force_text
18-
try:
19-
# Deprecated in Django 3.0
20-
from django.utils.translation import ugettext_lazy as _
21-
from django.utils.translation import ungettext
2217
except ImportError:
18+
# Before in Django 2.0
19+
from django.utils.encoding import force_text
20+
try:
2321
from django.utils.translation import gettext_lazy as _
2422
from django.utils.translation import ngettext as ungettext
23+
except ImportError:
24+
# Before in Django 3.0
25+
from django.utils.translation import ugettext_lazy as _
26+
from django.utils.translation import ungettext
2527

2628
from password_policies.conf import settings
2729

@@ -329,9 +331,9 @@ def __call__(self, value):
329331
return
330332
ent = self.entropy(value)
331333
idealent = self.entropy_ideal(pwlen)
332-
try:
334+
if idealent:
333335
ent_quotient = ent / idealent
334-
except ZeroDivisionError:
336+
else:
335337
ent_quotient = 0
336338
if (pwlen < 100 and ent_quotient < self.short_min_entropy) or (
337339
pwlen >= 100 and ent < self.long_min_entropy

password_policies/middleware.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@
22
from datetime import timedelta
33

44
try:
5-
from django.core.urlresolvers import NoReverseMatch, Resolver404, resolve, reverse
6-
except ImportError:
75
from django.urls.base import reverse, resolve, NoReverseMatch, Resolver404
6+
except ImportError:
7+
# Before Django 2.0
8+
from django.core.urlresolvers import NoReverseMatch, Resolver404, resolve, reverse
89

910
from django.http import HttpResponseRedirect
1011
from django.utils import timezone
1112

12-
try:
13+
import django.utils.deprecation
14+
if hasattr(django.utils.deprecation, 'MiddlewareMixin'):
1315
from django.utils.deprecation import MiddlewareMixin
14-
except ImportError:
16+
else:
1517
MiddlewareMixin = object
1618

1719
from django.conf import settings as django_setings

password_policies/models.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
from django.db.models import signals
55
from django.utils import timezone
66
try:
7-
# Deprecated in Django 3.0
8-
from django.utils.translation import ugettext_lazy as _
9-
except ImportError:
107
from django.utils.translation import gettext_lazy as _
8+
except ImportError:
9+
# Before in Django 3.0
10+
from django.utils.translation import ugettext_lazy as _
1111

1212
from password_policies.conf import settings
1313
from password_policies.managers import PasswordHistoryManager

password_policies/urls.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
try:
2-
from django.conf.urls import url
3-
except ImportError:
42
from django.urls import re_path as url
3+
except ImportError:
4+
# Before Django 2.0
5+
from django.conf.urls import url
56

6-
try:
7+
import django.conf.urls
8+
if hasattr(django.conf.urls, 'patterns'):
79
# patterns was deprecated in Django 1.8
810
from django.conf.urls import patterns
9-
except ImportError:
11+
else:
1012
# patterns is unavailable in Django 1.10+
1113
patterns = False
1214

password_policies/views.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@
66
from password_policies.exceptions import MustBeLoggedOutException
77

88
try:
9-
from django.core.urlresolvers import reverse
10-
except ImportError:
119
from django.urls.base import reverse
10+
except ImportError:
11+
# Before Django 2.0
12+
from django.core.urlresolvers import reverse
1213

1314
from django.shortcuts import resolve_url
1415
from django.utils.decorators import method_decorator
1516

1617
try:
17-
from django.utils.encoding import force_text
18-
except ImportError:
1918
from django.utils.encoding import force_str as force_text
19+
except ImportError:
20+
# Before in Django 2.0
21+
from django.utils.encoding import force_text
2022

2123
from django.utils.http import urlsafe_base64_decode
2224
from django.views.decorators.cache import never_cache

0 commit comments

Comments
 (0)