import os from ast import literal_eval def makedirs_with_log(path): try: os.makedirs(path, exist_ok=True) except OSError as error: print(f'Directory {path} could not be created, reason: {error}') def get_files_from_folder(folder_path, extensions=None, name_filter=None): if not os.path.isdir(folder_path): raise ValueError("Folder path is not a valid directory.") filenames = [] for root, _, files in os.walk(folder_path, topdown=False): relative_path = os.path.relpath(root, folder_path) if relative_path == ".": relative_path = "" for filename in sorted(files, key=lambda s: s.casefold()): _, file_extension = os.path.splitext(filename) if (extensions is None or file_extension.lower() in extensions) and (name_filter is None or name_filter in _): path = os.path.join(relative_path, filename) filenames.append(path) return filenames def try_eval_env_var(value: str, expected_type=None): try: value_eval = value if expected_type is bool: value_eval = value.title() value_eval = literal_eval(value_eval) if expected_type is not None and not isinstance(value_eval, expected_type): return value return value_eval except: return value