docs: def UpdateHuntObject(self,
                         hunt_id,
                         duration=None,
                         client_rate=None,
                         client_limit=None,
                         hunt_state=None,
                         hunt_state_comment=None,
                         start_time=None,
                         num_clients_at_start_time=None,
                         cursor=None):
      """Updates the hunt object by applying the update function."""
      vals = []
      args = {}
  
      if duration is not None:
        vals.append("duration_micros = %(duration_micros)s")
        args["duration_micros"] = duration.microseconds
  
      if client_rate is not None:
        vals.append("client_rate = %(client_rate)s")
        args["client_rate"] = client_rate
  
      if client_limit is not None:
        vals.append("client_limit = %(client_limit)s")
        args["client_limit"] = client_limit
  
      if hunt_state is not None:
        vals.append("hunt_state = %(hunt_state)s")
        args["hunt_state"] = int(hunt_state)
  
      if hunt_state_comment is not None:
        vals.append("hunt_state_comment = %(hunt_state_comment)s")
        args["hunt_state_comment"] = hunt_state_comment
  
      if start_time is not None:
        vals.append("""
        init_start_time = IFNULL(init_start_time, FROM_UNIXTIME(%(start_time)s))
        """)
        vals.append("""
        last_start_time = FROM_UNIXTIME(%(start_time)s)
        """)
        args["start_time"] = mysql_utils.RDFDatetimeToTimestamp(start_time)
  
      if num_clients_at_start_time is not None:
        vals.append("num_clients_at_start_time = %(num_clients_at_start_time)s")
        args["num_clients_at_start_time"] = num_clients_at_start_time
  
      vals.append("last_update_timestamp = NOW(6)")
  
      query = """
      UPDATE hunts
         SET {updates}
       WHERE hunt_id = %(hunt_id)s
      """.format(updates=", ".join(vals))
      args["hunt_id"] = db_utils.HuntIDToInt(hunt_id)
  
      rows_modified = cursor.execute(query, args)
      if rows_modified == 0:
        raise db.UnknownHuntError(hunt_id)