code: def parse_close(data: bytes) -> Tuple[int, str]:
      
      length = len(data)
      if length >= 2:
          code, = struct.unpack("!H", data[:2])
          check_close(code)
          reason = data[2:].decode("utf-8")
          return code, reason
      elif length == 0:
          return 1005, ""
      else:
          assert length == 1
          raise WebSocketProtocolError("Close frame too short")
docs: Parse the data in a close frame.
  
      Return ``(code, reason)`` when ``code`` is an :class:`int` and ``reason``
      a :class:`str`.
  
      Raise :exc:`~websockets.exceptions.WebSocketProtocolError` or
      :exc:`UnicodeDecodeError` if the data is invalid.