Spaces:
Sleeping
Sleeping
| import glob | |
| import os | |
| import shutil | |
| import imageio | |
| def assemble_project_path(path): | |
| """Assemble a path relative to the project root directory""" | |
| if not os.path.isabs(path): | |
| path = os.path.join(get_project_root(), path) | |
| return path | |
| def gen_relative_project_path(path): | |
| root = get_project_root() | |
| if root not in path: | |
| raise ValueError('Path to convert should be within the project root.') | |
| path = path.replace(root, '.').replace('.\\', '') | |
| return path | |
| def exists_in_project_path(path): | |
| return os.path.exists(assemble_project_path(path)) | |
| def get_project_root(): | |
| path = os.path.dirname(os.path.abspath(__file__)) | |
| path = os.path.dirname(path) # get to parent, outside of project code path" | |
| return path | |
| def read_resource_file(path): | |
| assert "./res/" in path, 'Path should include ./res/' | |
| with open(assemble_project_path(path), "r", encoding="utf-8") as fd: | |
| return fd.read() | |
| def get_latest_directories_in_path(path, count = 1): | |
| # Get a list of all directories in the given path | |
| directories = glob.glob(os.path.join(path, '*/')) | |
| # Find the latest directory based on modification time | |
| if directories: | |
| #return max(directories, key=os.path.getmtime) | |
| return sorted(directories, key=os.path.getmtime, reverse=True)[:count] | |
| else: | |
| return None | |
| def copy_file(source_file: str, destination_file: str): | |
| if not os.path.exists(os.path.dirname(destination_file)): | |
| raise FileNotFoundError(f"Destination directory does not exist: {os.path.dirname(destination_file)}") | |
| if not os.path.exists(destination_file): | |
| shutil.copy2(source_file, destination_file) | |
| def get_all_files(directory): | |
| file_list = [] | |
| for root, dirs, files in os.walk(directory): | |
| for file in files: | |
| file_path = os.path.join(root, file) | |
| file_list.append(file_path) | |
| return file_list | |
| def run_path_construct(work_dir, *args): | |
| path = work_dir | |
| for item in args: | |
| path = os.path.join(path, str(item)) | |
| return path | |
| def img_to_gif(image_lst, gif_filepath): | |
| frames = [] | |
| for file in image_lst: | |
| frames.append(imageio.imread(file)) | |
| imageio.mimsave(gif_filepath, frames, 'GIF', duration=0.5, loop=0) |