docs: def get_job(db, job_id, username=None):
      """
      If job_id is negative, return the last calculation of the current
      user, otherwise returns the job_id unchanged.
  
      :param db: a :class:`openquake.server.dbapi.Db` instance
      :param job_id: a job ID (can be negative and can be nonexisting)
      :param username: an user name (if None, ignore it)
      :returns: a valid job or None if the original job ID was invalid
      """
      job_id = int(job_id)
  
      if job_id > 0:
          dic = dict(id=job_id)
          if username:
              dic['user_name'] = username
          try:
              return db('SELECT * FROM job WHERE ?A', dic, one=True)
          except NotFound:
              return
  
      # else negative job_id
      if username:
          joblist = db('SELECT * FROM job WHERE user_name=?x '
                       'ORDER BY id DESC LIMIT ?x', username, -job_id)
      else:
          joblist = db('SELECT * FROM job ORDER BY id DESC LIMIT ?x', -job_id)
      if not joblist:  # no jobs
          return
      else:
          return joblist[-1]