docs: def force_type(cls, response, environ=None):
          """Enforce that the WSGI response is a response object of the current
          type.  Werkzeug will use the :class:`BaseResponse` internally in many
          situations like the exceptions.  If you call :meth:`get_response` on an
          exception you will get back a regular :class:`BaseResponse` object, even
          if you are using a custom subclass.
  
          This method can enforce a given response type, and it will also
          convert arbitrary WSGI callables into response objects if an environ
          is provided::
  
              # convert a Werkzeug response object into an instance of the
              # MyResponseClass subclass.
              response = MyResponseClass.force_type(response)
  
              # convert any WSGI application into a response object
              response = MyResponseClass.force_type(response, environ)
  
          This is especially useful if you want to post-process responses in
          the main dispatcher and use functionality provided by your subclass.
  
          Keep in mind that this will modify response objects in place if
          possible!
  
          :param response: a response object or wsgi application.
          :param environ: a WSGI environment object.
          :return: a response object.
          """
          if not isinstance(response, BaseResponse):
              if environ is None:
                  raise TypeError(
                      "cannot convert WSGI application into response"
                      " objects without an environ"
                  )
              response = BaseResponse(*_run_wsgi_app(response, environ))
          response.__class__ = cls
          return response