@@ -532,7 +532,7 @@ def _wrapped_view_func(
532
532
request : HttpRequest , / , * args : ParamT .args , ** kwargs : ParamT .kwargs
533
533
) -> HttpResponse :
534
534
process_client (request , request .user , is_browser_view = True , query = view_func .__name__ )
535
- return rate_limit ()( view_func )(request , * args , ** kwargs )
535
+ return rate_limit (view_func )(request , * args , ** kwargs )
536
536
537
537
return _wrapped_view_func
538
538
@@ -723,7 +723,7 @@ def _wrapped_func_arguments(
723
723
) -> HttpResponse :
724
724
user_profile = validate_api_key (request , None , api_key , False )
725
725
if not skip_rate_limiting :
726
- limited_func = rate_limit ()( view_func )
726
+ limited_func = rate_limit (view_func )
727
727
else :
728
728
limited_func = view_func
729
729
return limited_func (request , user_profile , * args , ** kwargs )
@@ -787,7 +787,7 @@ def _wrapped_func_arguments(
787
787
try :
788
788
if not skip_rate_limiting :
789
789
# Apply rate limiting
790
- target_view_func = rate_limit ()( view_func )
790
+ target_view_func = rate_limit (view_func )
791
791
else :
792
792
target_view_func = view_func
793
793
return target_view_func (request , profile , * args , ** kwargs )
@@ -864,7 +864,7 @@ def authenticate_log_and_execute_json(
864
864
** kwargs : object ,
865
865
) -> HttpResponse :
866
866
if not skip_rate_limiting :
867
- limited_view_func = rate_limit ()( view_func )
867
+ limited_view_func = rate_limit (view_func )
868
868
else :
869
869
limited_view_func = view_func
870
870
@@ -1069,39 +1069,36 @@ def rate_limit_remote_server(
1069
1069
raise e
1070
1070
1071
1071
1072
- def rate_limit () -> Callable [[ ViewFuncT ], ViewFuncT ] :
1073
- """Rate-limits a view. Returns a decorator """
1072
+ def rate_limit (func : ViewFuncT ) -> ViewFuncT :
1073
+ """Rate-limits a view."""
1074
1074
1075
- def wrapper (func : ViewFuncT ) -> ViewFuncT :
1076
- @wraps (func )
1077
- def wrapped_func (request : HttpRequest , * args : object , ** kwargs : object ) -> HttpResponse :
1078
-
1079
- # It is really tempting to not even wrap our original function
1080
- # when settings.RATE_LIMITING is False, but it would make
1081
- # for awkward unit testing in some situations.
1082
- if not settings .RATE_LIMITING :
1083
- return func (request , * args , ** kwargs )
1075
+ @wraps (func )
1076
+ def wrapped_func (request : HttpRequest , * args : object , ** kwargs : object ) -> HttpResponse :
1084
1077
1085
- if client_is_exempt_from_rate_limiting (request ):
1086
- return func (request , * args , ** kwargs )
1078
+ # It is really tempting to not even wrap our original function
1079
+ # when settings.RATE_LIMITING is False, but it would make
1080
+ # for awkward unit testing in some situations.
1081
+ if not settings .RATE_LIMITING :
1082
+ return func (request , * args , ** kwargs )
1087
1083
1088
- user = request . user
1089
- remote_server = RequestNotes . get_notes (request ). remote_server
1084
+ if client_is_exempt_from_rate_limiting ( request ):
1085
+ return func (request , * args , ** kwargs )
1090
1086
1091
- if settings .ZILENCER_ENABLED and remote_server is not None :
1092
- rate_limit_remote_server (request , remote_server , domain = "api_by_remote_server" )
1093
- elif not user .is_authenticated :
1094
- rate_limit_request_by_ip (request , domain = "api_by_ip" )
1095
- return func (request , * args , ** kwargs )
1096
- else :
1097
- assert isinstance (user , UserProfile )
1098
- rate_limit_user (request , user , domain = "api_by_user" )
1087
+ user = request .user
1088
+ remote_server = RequestNotes .get_notes (request ).remote_server
1099
1089
1090
+ if settings .ZILENCER_ENABLED and remote_server is not None :
1091
+ rate_limit_remote_server (request , remote_server , domain = "api_by_remote_server" )
1092
+ elif not user .is_authenticated :
1093
+ rate_limit_request_by_ip (request , domain = "api_by_ip" )
1100
1094
return func (request , * args , ** kwargs )
1095
+ else :
1096
+ assert isinstance (user , UserProfile )
1097
+ rate_limit_user (request , user , domain = "api_by_user" )
1101
1098
1102
- return cast ( ViewFuncT , wrapped_func ) # https://github.com/python/mypy/issues/1927
1099
+ return func ( request , * args , ** kwargs )
1103
1100
1104
- return wrapper
1101
+ return cast ( ViewFuncT , wrapped_func ) # https://github.com/python/mypy/issues/1927
1105
1102
1106
1103
1107
1104
def return_success_on_head_request (
0 commit comments