docs: def which(program):
      """
      returns the path to an executable or None if it can't be found
      """
      def is_exe(_fpath):
          return os.path.isfile(_fpath) and os.access(_fpath, os.X_OK)
  
      fpath, fname = os.path.split(program)
      if fpath:
          if is_exe(program):
              return program
      else:
          for path in os.environ["PATH"].split(os.pathsep):
              exe_file = os.path.join(path, program)
              if is_exe(exe_file):
                  return exe_file
      return None