code: def prep_jid(nocache=False, passed_jid=None):
      '''
      Return a job id and prepare the job id directory
      This is the function responsible for making sure jids don't collide
      (unless its passed a jid). So do what you have to do to make sure that
      stays the case
      '''
      conn = _get_conn()
      if conn is None:
          return None
      cur = conn.cursor()
      if passed_jid is None:
          jid = _gen_jid(cur)
      else:
          jid = passed_jid
      while not jid:
          log.info("jid clash, generating a new one")
          jid = _gen_jid(cur)
  
      cur.close()
      conn.close()
      return jif prep_jid(nocache=False, passed_jid=None):
      '''
      Return a job id and prepare the job id directory
      This is the function responsible for making sure jids don't collide
      (unless its passed a jid). So do what you have to do to make sure that
      stays the case
      '''
      conn = _get_conn()
      if conn is None:
          return None
      cur = conn.cursor()
      if passed_jid is None:
          jid = _gen_jid(cur)
      else:
          jid = passed_jid
      while not jid:
          log.info("jid clash, generating a new one")
          jid = _gen_jid(cur)
  
      cur.close()
      conn.close()
      return jid
docs: Return a job id and prepare the job id directory
      This is the function responsible for making sure jids don't collide
      (unless its passed a jid). So do what you have to do to make sure that
      stays the case