docs: def get_random_string():
      """ make a random string, which we can use for bsub job IDs, so that
      different jobs do not have the same job IDs.
      """
      
      # set up a random string to associate with the run
      hash_string = "%8x" % random.getrandbits(32)
      hash_string = hash_string.strip()
      
      # done't allow the random strings to be equivalent to a number, since
      # the LSF cluster interprets those differently from letter-containing
      # strings
      while is_number(hash_string):
          hash_string = "%8x" % random.getrandbits(32)
          hash_string = hash_string.strip()
      
      return hash_string