docs: def write(self, data):
          """Write `data` to the serial port and return the number of bytes
          written.
  
          Args:
              data (bytes, bytearray, list): a byte array or list of 8-bit integers to write.
  
          Returns:
              int: number of bytes written.
  
          Raises:
              SerialError: if an I/O or OS error occurs.
              TypeError: if `data` type is invalid.
              ValueError: if data is not valid bytes.
  
          """
          if not isinstance(data, (bytes, bytearray, list)):
              raise TypeError("Invalid data type, should be bytes, bytearray, or list.")
  
          if isinstance(data, list):
              data = bytearray(data)
  
          try:
              return os.write(self._fd, data)
          except OSError as e:
              raise SerialError(e.errno, "Writing serial port: " + e.strerror)