Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Restricted a workaround for a bug in Python to the affected versions.

  • Loading branch information...
commit 679af4058dae8a54438d95ceb943f449e78448c1 1 parent e1bafdb
@aaugustin aaugustin authored
Showing with 10 additions and 2 deletions.
  1. +10 −2 django/utils/decorators.py
View
12 django/utils/decorators.py
@@ -2,12 +2,16 @@
from functools import wraps, update_wrapper, WRAPPER_ASSIGNMENTS
+from django.utils import six
+
+
class classonlymethod(classmethod):
def __get__(self, instance, owner):
if instance is not None:
raise AttributeError("This method is available only on the view class.")
return super(classonlymethod, self).__get__(instance, owner)
+
def method_decorator(decorator):
"""
Converts a function decorator into a method decorator
@@ -68,9 +72,13 @@ def decorator_from_middleware(middleware_class):
def available_attrs(fn):
"""
Return the list of functools-wrappable attributes on a callable.
- This is required as a workaround for http://bugs.python.org/issue3445.
+ This is required as a workaround for http://bugs.python.org/issue3445
+ under Python 2.
"""
- return tuple(a for a in WRAPPER_ASSIGNMENTS if hasattr(fn, a))
+ if six.PY3:
+ return WRAPPER_ASSIGNMENTS
+ else:
+ return tuple(a for a in WRAPPER_ASSIGNMENTS if hasattr(fn, a))
def make_middleware_decorator(middleware_class):
Please sign in to comment.
Something went wrong with that request. Please try again.