11import  logging 
22import  types 
33
4- from  bolt .exceptions  import  ImproperlyConfigured ,  MiddlewareNotUsed 
4+ from  bolt .exceptions  import  ImproperlyConfigured 
55from  bolt .logs  import  log_response 
66from  bolt .runtime  import  settings 
77from  bolt .signals  import  request_finished 
1515
1616class  BaseHandler :
1717    _view_middleware  =  None 
18-     _exception_middleware  =  None 
1918    _middleware_chain  =  None 
2019
2120    def  load_middleware (self ):
@@ -25,29 +24,12 @@ def load_middleware(self):
2524        Must be called after the environment is fixed (see __call__ in subclasses). 
2625        """ 
2726        self ._view_middleware  =  []
28-         self ._exception_middleware  =  []
2927
3028        get_response  =  self ._get_response 
3129        handler  =  convert_exception_to_response (get_response )
3230        for  middleware_path  in  reversed (settings .MIDDLEWARE ):
3331            middleware  =  import_string (middleware_path )
34-             try :
35-                 # Adapt handler, if needed. 
36-                 adapted_handler  =  self .adapt_method_mode (
37-                     handler ,
38-                     debug = settings .DEBUG ,
39-                     name = "middleware %s"  %  middleware_path ,
40-                 )
41-                 mw_instance  =  middleware (adapted_handler )
42-             except  MiddlewareNotUsed  as  exc :
43-                 if  settings .DEBUG :
44-                     if  str (exc ):
45-                         logger .debug ("MiddlewareNotUsed(%r): %s" , middleware_path , exc )
46-                     else :
47-                         logger .debug ("MiddlewareNotUsed: %r" , middleware_path )
48-                 continue 
49-             else :
50-                 handler  =  adapted_handler 
32+             mw_instance  =  middleware (handler )
5133
5234            if  mw_instance  is  None :
5335                raise  ImproperlyConfigured (
@@ -57,42 +39,15 @@ def load_middleware(self):
5739            if  hasattr (mw_instance , "process_view" ):
5840                self ._view_middleware .insert (
5941                    0 ,
60-                     self .adapt_method_mode (mw_instance .process_view ),
61-                 )
62-             if  hasattr (mw_instance , "process_exception" ):
63-                 # The exception-handling stack is still always synchronous for 
64-                 # now, so adapt that way. 
65-                 self ._exception_middleware .append (
66-                     self .adapt_method_mode (False , mw_instance .process_exception ),
42+                     mw_instance .process_view ,
6743                )
6844
6945            handler  =  convert_exception_to_response (mw_instance )
7046
71-         # Adapt the top of the stack, if needed. 
72-         handler  =  self .adapt_method_mode (handler )
7347        # We only assign to this when initialization is complete as it is used 
7448        # as a flag for initialization being complete. 
7549        self ._middleware_chain  =  handler 
7650
77-     def  adapt_method_mode (
78-         self ,
79-         method ,
80-         debug = False ,
81-         name = None ,
82-     ):
83-         """ 
84-         Adapt a method to be in the correct "mode": 
85-         - If is_async is False: 
86-           - Synchronous methods are left alone 
87-           - Asynchronous methods are wrapped with async_to_sync 
88-         - If is_async is True: 
89-           - Synchronous methods are wrapped with sync_to_async() 
90-           - Asynchronous methods are left alone 
91-         """ 
92-         if  debug  and  not  name :
93-             name  =  name  or  "method %s()"  %  method .__qualname__ 
94-         return  method 
95- 
9651    def  get_response (self , request ):
9752        """Return an HttpResponse object for the given HttpRequest.""" 
9853        # Setup default url resolver for this thread 
@@ -128,13 +83,7 @@ def _get_response(self, request):
12883
12984        if  response  is  None :
13085            wrapped_callback  =  self .make_view_atomic (callback )
131- 
132-             try :
133-                 response  =  wrapped_callback (request , * callback_args , ** callback_kwargs )
134-             except  Exception  as  e :
135-                 response  =  self .process_exception_by_middleware (e , request )
136-                 if  response  is  None :
137-                     raise 
86+             response  =  wrapped_callback (request , * callback_args , ** callback_kwargs )
13887
13988        # Complain if the view returned None (a common error). 
14089        self .check_response (response , callback )
@@ -189,17 +138,6 @@ def make_view_atomic(self, view):
189138                view  =  transaction .atomic (using = alias )(view )
190139        return  view 
191140
192-     def  process_exception_by_middleware (self , exception , request ):
193-         """ 
194-         Pass the exception to the exception middleware. If no middleware 
195-         return a response for this exception, return None. 
196-         """ 
197-         for  middleware_method  in  self ._exception_middleware :
198-             response  =  middleware_method (request , exception )
199-             if  response :
200-                 return  response 
201-         return  None 
202- 
203141
204142def  reset_urlconf (sender , ** kwargs ):
205143    """Reset the URLconf after each request is finished.""" 
0 commit comments