docs: def clone_request(request, method):
      """
      Internal helper method to clone a request, replacing with a different
      HTTP method.  Used for checking permissions against other methods.
      """
      ret = Request(request=request._request,
                    parsers=request.parsers,
                    authenticators=request.authenticators,
                    negotiator=request.negotiator,
                    parser_context=request.parser_context)
      ret._data = request._data
      ret._files = request._files
      ret._full_data = request._full_data
      ret._content_type = request._content_type
      ret._stream = request._stream
      ret.method = method
      if hasattr(request, '_user'):
          ret._user = request._user
      if hasattr(request, '_auth'):
          ret._auth = request._auth
      if hasattr(request, '_authenticator'):
          ret._authenticator = request._authenticator
      if hasattr(request, 'accepted_renderer'):
          ret.accepted_renderer = request.accepted_renderer
      if hasattr(request, 'accepted_media_type'):
          ret.accepted_media_type = request.accepted_media_type
      if hasattr(request, 'version'):
          ret.version = request.version
      if hasattr(request, 'versioning_scheme'):
          ret.versioning_scheme = request.versioning_scheme
      return ret