Spaces:
Sleeping
Sleeping
#!/usr/bin/env python | |
# -*- coding:utf-8 -*- | |
# Power by Zongsheng Yue 2022-02-06 10:34:59 | |
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 | |