Source code for llvm_ir_dataset_utils.tools.delete_folder

"""Tool for deleting a lot of inodes in parallel."""

import os
import shutil
import logging

import ray

from absl import app
from absl import flags

FLAGS = flags.FLAGS

flags.DEFINE_string('folder', None,
                    'The folder to delete all files/folders in.')

flags.mark_flag_as_required('folder')


@ray.remote
def delete_folder(folder_path):
  if os.path.isdir(folder_path):
    shutil.rmtree(folder_path)
  elif os.path.isfile(folder_path):
    os.remove(folder_path)
  else:
    logging.warning(f'Failed to delete {folder_path}, no file or directory')
    return False
  logging.warning(f'Deleted {folder_path}')
  return True


[docs]def main(_): subfolders = os.listdir(FLAGS.folder) subfolder_futures = [] for subfolder in subfolders: subfolder_futures.append( delete_folder.remote(os.path.join(FLAGS.folder, subfolder))) ray.get(subfolder_futures)
if __name__ == '__main__': app.run(main)