code: def parse_request_start_line(line: str) -> RequestStartLine:
      
      try:
          method, path, version = line.split(" ")
      except ValueError:
          # https://tools.ietf.org/html/rfc7230#section-3.1.1
          # invalid request-line SHOULD respond with a 400 (Bad Request)
          raise HTTPInputError("Malformed HTTP request line")
      if not re.match(r"^HTTP/1\.[0-9]$", version):
          raise HTTPInputError(
              "Malformed HTTP version in HTTP Request-Line: %r" % version
          )
      return RequestStartLine(method, path, version)
docs: Returns a (method, path, version) tuple for an HTTP 1.x request line.
  
      The response is a `collections.namedtuple`.
  
      >>> parse_request_start_line("GET /foo HTTP/1.1")
      RequestStartLine(method='GET', path='/foo', version='HTTP/1.1')