class_docstr: Information about a single job created by OGE/SGE or similar
  Each job is responsible for knowing it's own refresh state
  :author Hans J. Johnson
class_docstr_tok: ["Information","about","a","single","job","created","by","OGE\/SGE","or","similar","Each","job","is","responsible","for","knowing","it","'s","own","refresh","state",":","author","Hans","J.","Johnson"]
code: def __init__(
      self,
      job_num,
      job_queue_state,
      job_time,
      job_queue_name,
      job_slots,
      qsub_command_line,
  ):
      # self._jobName = None           # Ascii text name of job not unique
      self._job_num = int(
          job_num
      )  # The primary unique identifier for this job, must be an integer!
      # self._jobOwn  = None           # Who owns this job
      self._job_queue_state = str(
          job_queue_state
      )  # ["running","zombie",...??]
      # self._jobActionState = str(jobActionState)  # ['r','qw','S',...??]
      self._job_time = job_time  # The job start time
      self._job_info_creation_time = (
          time.time()
      )  # When this job was created (for comparing against initialization)
      self._job_queue_name = job_queue_name  # Where the job is running
      self._job_slots = int(job_slots)  # How many slots are being used
      self._qsub_command_line = qsub_command_line
  
imports: import os
  import pwd
  import re
  import subprocess
  import time
  import xml.dom.minidom
  import random
  from ...None import logging
  from ...interfaces.base import CommandLine
  from .base import SGELikeBatchManagerBase, logger
label_desc: Use image node_id 1 to create a new QJobInfo object  with example: obj = QJobInfo(job_num, job_queue_state, job_time, job_queue_name, job_slots, qsub_command_line)