code: def _HuntObjectFromRow(self, row):
      
      (
          create_time,
          last_update_time,
          creator,
          duration_micros,
          client_rate,
          client_limit,
          hunt_state,
          hunt_state_comment,
          init_start_time,
          last_start_time,
          num_clients_at_start_time,
          description,
          body,
      ) = row
      hunt_obj = rdf_hunt_objects.Hunt.FromSerializedString(body)
      hunt_obj.duration = rdfvalue.Duration.FromMicroseconds(duration_micros)
      hunt_obj.create_time = mysql_utils.TimestampToRDFDatetime(create_time)
      hunt_obj.last_update_time = mysql_utils.TimestampToRDFDatetime(
          last_update_time)
  
      # Checks below are needed for hunts that were written to the database before
      # respective fields became part of F1 schema.
      if creator is not None:
        hunt_obj.creator = creator
  
      if client_rate is not None:
        hunt_obj.client_rate = client_rate
  
      if client_limit is not None:
        hunt_obj.client_limit = client_limit
  
      if hunt_state is not None:
        hunt_obj.hunt_state = hunt_state
  
      if hunt_state_comment is not None:
        hunt_obj.hunt_state_comment = hunt_state_comment
  
      if init_start_time is not None:
        hunt_obj.init_start_time = mysql_utils.TimestampToRDFDatetime(
            init_start_time)
  
      if last_start_time is not None:
        hunt_obj.last_start_time = mysql_utils.TimestampToRDFDatetime(
            last_start_time)
  
      if num_clients_at_start_time is not None:
        hunt_obj.num_clients_at_start_time = num_clients_at_start_time
  
      if description is not None:
        hunt_obj.description = description
  
      return hunt_obj
docs: Generates a flow object from a database row.