Loading django/utils/decorators.py +3 −10 Original line number Diff line number Diff line Loading @@ -2,16 +2,9 @@ import types try: from functools import wraps, WRAPPER_ASSIGNMENTS from functools import wraps except ImportError: from django.utils.functional import wraps, WRAPPER_ASSIGNMENTS # Python 2.3, 2.4 fallback. 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. """ return tuple(a for a in WRAPPER_ASSIGNMENTS if hasattr(fn, a)) from django.utils.functional import wraps # Python 2.3, 2.4 fallback. def decorator_from_middleware(middleware_class): """ Loading Loading @@ -64,5 +57,5 @@ def decorator_from_middleware(middleware_class): if result is not None: return result return response return wraps(view_func, assigned=available_attrs(view_func))(_wrapped_view) return wraps(view_func)(_wrapped_view) return _decorator_from_middleware django/views/decorators/cache.py +3 −3 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ try: except ImportError: from django.utils.functional import wraps # Python 2.3, 2.4 fallback. from django.utils.decorators import decorator_from_middleware, available_attrs from django.utils.decorators import decorator_from_middleware from django.utils.cache import patch_cache_control, add_never_cache_headers from django.middleware.cache import CacheMiddleware Loading @@ -31,7 +31,7 @@ def cache_control(**kwargs): patch_cache_control(response, **kwargs) return response return wraps(viewfunc, assigned=available_attrs(viewfunc))(_cache_controlled) return wraps(viewfunc)(_cache_controlled) return _cache_controller Loading @@ -44,4 +44,4 @@ def never_cache(view_func): response = view_func(request, *args, **kwargs) add_never_cache_headers(response) return response return wraps(view_func, assigned=available_attrs(view_func))(_wrapped_view_func) return wraps(view_func)(_wrapped_view_func) django/views/decorators/http.py +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ from calendar import timegm from datetime import timedelta from email.Utils import formatdate from django.utils.decorators import decorator_from_middleware, available_attrs from django.utils.decorators import decorator_from_middleware from django.utils.http import parse_etags, quote_etag from django.middleware.http import ConditionalGetMiddleware from django.http import HttpResponseNotAllowed, HttpResponseNotModified, HttpResponse Loading @@ -35,7 +35,7 @@ def require_http_methods(request_method_list): if request.method not in request_method_list: return HttpResponseNotAllowed(request_method_list) return func(request, *args, **kwargs) return wraps(func, assigned=available_attrs(func))(inner) return wraps(func)(inner) return decorator require_GET = require_http_methods(["GET"]) Loading django/views/decorators/vary.py +2 −3 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ except ImportError: from django.utils.functional import wraps # Python 2.3, 2.4 fallback. from django.utils.cache import patch_vary_headers from django.utils.decorators import available_attrs def vary_on_headers(*headers): """ Loading @@ -22,7 +21,7 @@ def vary_on_headers(*headers): response = func(*args, **kwargs) patch_vary_headers(response, headers) return response return wraps(func, assigned=available_attrs(func))(inner_func) return wraps(func)(inner_func) return decorator def vary_on_cookie(func): Loading @@ -38,4 +37,4 @@ def vary_on_cookie(func): response = func(*args, **kwargs) patch_vary_headers(response, ('Cookie',)) return response return wraps(func, assigned=available_attrs(func))(inner_func) return wraps(func)(inner_func) tests/regressiontests/utils/decorators.py +0 −6 Original line number Diff line number Diff line Loading @@ -11,9 +11,3 @@ class DecoratorFromMiddlewareTests(TestCase): Test a middleware that implements process_view. """ self.client.get('/utils/xview/') def test_callable_process_view_middleware(self): """ Test a middleware that implements process_view, operating on a callable class. """ self.client.get('/utils/class_xview/') Loading
django/utils/decorators.py +3 −10 Original line number Diff line number Diff line Loading @@ -2,16 +2,9 @@ import types try: from functools import wraps, WRAPPER_ASSIGNMENTS from functools import wraps except ImportError: from django.utils.functional import wraps, WRAPPER_ASSIGNMENTS # Python 2.3, 2.4 fallback. 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. """ return tuple(a for a in WRAPPER_ASSIGNMENTS if hasattr(fn, a)) from django.utils.functional import wraps # Python 2.3, 2.4 fallback. def decorator_from_middleware(middleware_class): """ Loading Loading @@ -64,5 +57,5 @@ def decorator_from_middleware(middleware_class): if result is not None: return result return response return wraps(view_func, assigned=available_attrs(view_func))(_wrapped_view) return wraps(view_func)(_wrapped_view) return _decorator_from_middleware
django/views/decorators/cache.py +3 −3 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ try: except ImportError: from django.utils.functional import wraps # Python 2.3, 2.4 fallback. from django.utils.decorators import decorator_from_middleware, available_attrs from django.utils.decorators import decorator_from_middleware from django.utils.cache import patch_cache_control, add_never_cache_headers from django.middleware.cache import CacheMiddleware Loading @@ -31,7 +31,7 @@ def cache_control(**kwargs): patch_cache_control(response, **kwargs) return response return wraps(viewfunc, assigned=available_attrs(viewfunc))(_cache_controlled) return wraps(viewfunc)(_cache_controlled) return _cache_controller Loading @@ -44,4 +44,4 @@ def never_cache(view_func): response = view_func(request, *args, **kwargs) add_never_cache_headers(response) return response return wraps(view_func, assigned=available_attrs(view_func))(_wrapped_view_func) return wraps(view_func)(_wrapped_view_func)
django/views/decorators/http.py +2 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ from calendar import timegm from datetime import timedelta from email.Utils import formatdate from django.utils.decorators import decorator_from_middleware, available_attrs from django.utils.decorators import decorator_from_middleware from django.utils.http import parse_etags, quote_etag from django.middleware.http import ConditionalGetMiddleware from django.http import HttpResponseNotAllowed, HttpResponseNotModified, HttpResponse Loading @@ -35,7 +35,7 @@ def require_http_methods(request_method_list): if request.method not in request_method_list: return HttpResponseNotAllowed(request_method_list) return func(request, *args, **kwargs) return wraps(func, assigned=available_attrs(func))(inner) return wraps(func)(inner) return decorator require_GET = require_http_methods(["GET"]) Loading
django/views/decorators/vary.py +2 −3 Original line number Diff line number Diff line Loading @@ -4,7 +4,6 @@ except ImportError: from django.utils.functional import wraps # Python 2.3, 2.4 fallback. from django.utils.cache import patch_vary_headers from django.utils.decorators import available_attrs def vary_on_headers(*headers): """ Loading @@ -22,7 +21,7 @@ def vary_on_headers(*headers): response = func(*args, **kwargs) patch_vary_headers(response, headers) return response return wraps(func, assigned=available_attrs(func))(inner_func) return wraps(func)(inner_func) return decorator def vary_on_cookie(func): Loading @@ -38,4 +37,4 @@ def vary_on_cookie(func): response = func(*args, **kwargs) patch_vary_headers(response, ('Cookie',)) return response return wraps(func, assigned=available_attrs(func))(inner_func) return wraps(func)(inner_func)
tests/regressiontests/utils/decorators.py +0 −6 Original line number Diff line number Diff line Loading @@ -11,9 +11,3 @@ class DecoratorFromMiddlewareTests(TestCase): Test a middleware that implements process_view. """ self.client.get('/utils/xview/') def test_callable_process_view_middleware(self): """ Test a middleware that implements process_view, operating on a callable class. """ self.client.get('/utils/class_xview/')