summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChillar Anand <anand21nanda@gmail.com>2017-01-19 21:58:30 +0530
committerTim Graham <timograham@gmail.com>2017-01-19 11:28:30 -0500
commit41e0033caf1267edda2b780ae50a3881c3de94ef (patch)
tree2eb306be974a4c40a774985f6fc372d5fba5de5b
parent4c5ed3e683576ece880ae99398a1e7d8c5829617 (diff)
Refs #23919 -- Removed usage of django.utils.decorators.ContextDecorator.
-rw-r--r--django/db/transaction.py3
-rw-r--r--django/utils/decorators.py22
-rw-r--r--django/utils/timezone.py2
-rw-r--r--django/utils/translation/__init__.py2
4 files changed, 6 insertions, 23 deletions
diff --git a/django/db/transaction.py b/django/db/transaction.py
index e392c13b32..b83aaa6440 100644
--- a/django/db/transaction.py
+++ b/django/db/transaction.py
@@ -1,7 +1,8 @@
+from contextlib import ContextDecorator
+
from django.db import (
DEFAULT_DB_ALIAS, DatabaseError, Error, ProgrammingError, connections,
)
-from django.utils.decorators import ContextDecorator
class TransactionManagementError(ProgrammingError):
diff --git a/django/utils/decorators.py b/django/utils/decorators.py
index 3b2a002e7b..a3af946b33 100644
--- a/django/utils/decorators.py
+++ b/django/utils/decorators.py
@@ -1,10 +1,7 @@
"Functions that help with dynamically creating decorators for views."
-try:
- from contextlib import ContextDecorator
-except ImportError:
- ContextDecorator = None
-
+# For backwards compatibility in Django 2.0.
+from contextlib import ContextDecorator # noqa
from functools import WRAPPER_ASSIGNMENTS, update_wrapper, wraps
@@ -166,21 +163,6 @@ def make_middleware_decorator(middleware_class):
return _make_decorator
-if ContextDecorator is None:
- # ContextDecorator was introduced in Python 3.2
- # See https://docs.python.org/3/library/contextlib.html#contextlib.ContextDecorator
- class ContextDecorator:
- """
- A base class that enables a context manager to also be used as a decorator.
- """
- def __call__(self, func):
- @wraps(func, assigned=available_attrs(func))
- def inner(*args, **kwargs):
- with self:
- return func(*args, **kwargs)
- return inner
-
-
class classproperty:
def __init__(self, method=None):
self.fget = method
diff --git a/django/utils/timezone.py b/django/utils/timezone.py
index 66bfa00030..bc6d60e228 100644
--- a/django/utils/timezone.py
+++ b/django/utils/timezone.py
@@ -3,13 +3,13 @@ Timezone-related classes and functions.
"""
import functools
+from contextlib import ContextDecorator
from datetime import datetime, timedelta, tzinfo
from threading import local
import pytz
from django.conf import settings
-from django.utils.decorators import ContextDecorator
__all__ = [
'utc', 'get_fixed_timezone',
diff --git a/django/utils/translation/__init__.py b/django/utils/translation/__init__.py
index a8f3b751b4..2c508572b8 100644
--- a/django/utils/translation/__init__.py
+++ b/django/utils/translation/__init__.py
@@ -3,8 +3,8 @@ Internationalization support.
"""
import re
import warnings
+from contextlib import ContextDecorator
-from django.utils.decorators import ContextDecorator
from django.utils.deprecation import RemovedInDjango21Warning
from django.utils.encoding import force_text
from django.utils.functional import lazy