docs: def _FlowObjectFromRow(self, row):
      """Generates a flow object from a database row."""
  
      flow, fs, cci, pt, nr, pd, po, ps, uct, sct, nbs, nrs, ts, lut = row
  
      flow_obj = rdf_flow_objects.Flow.FromSerializedString(flow)
      if fs not in [None, rdf_flow_objects.Flow.FlowState.UNSET]:
        flow_obj.flow_state = fs
      if cci is not None:
        cc_cls = rdf_client.ClientCrash
        flow_obj.client_crash_info = cc_cls.FromSerializedString(cci)
      if pt is not None:
        pt_cls = rdf_flow_objects.PendingFlowTermination
        flow_obj.pending_termination = pt_cls.FromSerializedString(pt)
      if nr:
        flow_obj.next_request_to_process = nr
      if pd is not None:
        flow_obj.processing_deadline = mysql_utils.TimestampToRDFDatetime(pd)
      if po is not None:
        flow_obj.processing_on = po
      if ps is not None:
        flow_obj.processing_since = mysql_utils.TimestampToRDFDatetime(ps)
      flow_obj.cpu_time_used.user_cpu_time = db_utils.MicrosToSeconds(uct)
      flow_obj.cpu_time_used.system_cpu_time = db_utils.MicrosToSeconds(sct)
      flow_obj.network_bytes_sent = nbs
      if nrs:
        flow_obj.num_replies_sent = nrs
      flow_obj.timestamp = mysql_utils.TimestampToRDFDatetime(ts)
      flow_obj.last_update_time = mysql_utils.TimestampToRDFDatetime(lut)
  
      return flow_obj