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"]
docstr: Return True, unless job is in the "zombie" status
docstr_tok: ["Return","True",",","unless","job","is","in","the","``","zombie","''","status"]
code: def is_job_state_pending(self):
      """Return True, unless job is in the "zombie" status"""
      time_diff = time.time() - self._job_info_creation_time
      if self.is_zombie():
          sge_debug_print(
              "DONE! QJobInfo.IsPending found in 'zombie' list, returning False so claiming done!\n{}".format(
                  self
              )
          )
          is_pending_status = (
              False  # Job explicitly found as being completed!
          )
      elif self.is_initializing() and (time_diff > 600):
          # if initializing for more than 5 minute, failure due to
          # initialization and completion before registration
          sge_debug_print(
              "FAILURE! QJobInfo.IsPending found long running at {1} seconds"
              "'initializing' returning False for to break loop!\n{0}".format(
                  self, time_diff
              )
          )
          is_pending_status = (
              True  # Job initialization took too long, so report!
          )
      else:  # self.is_running() || self.is_pending():
          is_pending_status = True  # Job cache last listed as running
      return is_pending_status
  
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 7 for calling the QJobInfo obj's underlying member method code with example usage: obj.is_job_state_pending() and returns: is_pending_status