code: def middleware(self, middleware_or_request):
          '''Decorate and register middleware to be called before a request.
          Can either be called as @app.middleware or @app.middleware('request')
          '''
          def register_middleware(middleware, attach_to='request'):
              if attach_to == 'request':
                  self.request_middleware.append(middleware)
              if attach_to == 'response':
                  self.response_middleware.appendleft(middleware)
              return middleware
  
          # Detect which way this was called, @middleware or @middleware('AT')
          if callable(middleware_or_request):
              return register_middleware(middleware_or_request)
  
          else:
              return partial(register_middleware,
                             attach_to=middleware_or_requestf middleware(self, middleware_or_request):
          '''Decorate and register middleware to be called before a request.
          Can either be called as @app.middleware or @app.middleware('request')
          '''
          def register_middleware(middleware, attach_to='request'):
              if attach_to == 'request':
                  self.request_middleware.append(middleware)
              if attach_to == 'response':
                  self.response_middleware.appendleft(middleware)
              return middleware
  
          # Detect which way this was called, @middleware or @middleware('AT')
          if callable(middleware_or_request):
              return register_middleware(middleware_or_request)
  
          else:
              return partial(register_middleware,
                             attach_to=middleware_or_request)
docs: Decorate and register middleware to be called before a request.
          Can either be called as @app.middleware or @app.middleware('request')