| |
| |
| |
|
|
| import importlib |
| from pathlib import Path |
|
|
| def mkdir(dir_path, delete=False, parents=True): |
| import shutil |
| if not isinstance(dir_path, Path): |
| dir_path = Path(dir_path) |
| if delete: |
| if dir_path.exists(): |
| shutil.rmtree(str(dir_path)) |
| if not dir_path.exists(): |
| dir_path.mkdir(parents=parents) |
|
|
| def get_obj_from_str(string, reload=False): |
| module, cls = string.rsplit(".", 1) |
| if reload: |
| module_imp = importlib.import_module(module) |
| importlib.reload(module_imp) |
| return getattr(importlib.import_module(module, package=None), cls) |
|
|
| def instantiate_from_config(config): |
| if not "target" in config: |
| raise KeyError("Expected key `target` to instantiate.") |
| return get_obj_from_str(config["target"])(**config.get("params", dict())) |
|
|
| def str2bool(v): |
| if isinstance(v, bool): |
| return v |
| if v.lower() in ("yes", "true", "t", "y", "1"): |
| return True |
| elif v.lower() in ("no", "false", "f", "n", "0"): |
| return False |
| else: |
| raise argparse.ArgumentTypeError("Boolean value expected.") |
|
|
| def get_filenames(dir_path, exts=['png', 'jpg'], recursive=True): |
| ''' |
| Get the file paths in the given folder. |
| param exts: list, e.g., ['png',] |
| return: list |
| ''' |
| if not isinstance(dir_path, Path): |
| dir_path = Path(dir_path) |
|
|
| file_paths = [] |
| for current_ext in exts: |
| if recursive: |
| file_paths.extend([str(x) for x in dir_path.glob('**/*.'+current_ext)]) |
| else: |
| file_paths.extend([str(x) for x in dir_path.glob('*.'+current_ext)]) |
|
|
| return file_paths |
|
|
| def readline_txt(txt_file): |
| if txt_file is None: |
| out = [] |
| else: |
| with open(txt_file, 'r') as ff: |
| out = [x[:-1] for x in ff.readlines()] |
| return out |
|
|