Spaces:
Configuration error
Configuration error
| import os | |
| import sys | |
| import copy | |
| import inspect | |
| import datetime | |
| from typing import List, Tuple, Optional, Dict | |
| def glob_files( | |
| root_path: str, | |
| extensions: Tuple[str], | |
| recursive: bool = True, | |
| skip_hidden_directories: bool = True, | |
| max_directories: Optional[int] = None, | |
| max_files: Optional[int] = None, | |
| relative_path: bool = False, | |
| ) -> Tuple[List[str], bool, bool]: | |
| """glob files with specified extensions | |
| Args: | |
| root_path (str): _description_ | |
| extensions (Tuple[str]): _description_ | |
| recursive (bool, optional): _description_. Defaults to True. | |
| skip_hidden_directories (bool, optional): _description_. Defaults to True. | |
| max_directories (Optional[int], optional): max number of directories to search. Defaults to None. | |
| max_files (Optional[int], optional): max file number limit. Defaults to None. | |
| relative_path (bool, optional): _description_. Defaults to False. | |
| Returns: | |
| Tuple[List[str], bool, bool]: _description_ | |
| """ | |
| paths = [] | |
| hit_max_directories = False | |
| hit_max_files = False | |
| for directory_idx, (directory, _, fnames) in enumerate(os.walk(root_path, followlinks=True)): | |
| if skip_hidden_directories and os.path.basename(directory).startswith("."): | |
| continue | |
| if max_directories is not None and directory_idx >= max_directories: | |
| hit_max_directories = True | |
| break | |
| paths += [ | |
| os.path.join(directory, fname) | |
| for fname in sorted(fnames) | |
| if fname.lower().endswith(extensions) | |
| ] | |
| if not recursive: | |
| break | |
| if max_files is not None and len(paths) > max_files: | |
| hit_max_files = True | |
| paths = paths[:max_files] | |
| break | |
| if relative_path: | |
| paths = [os.path.relpath(p, root_path) for p in paths] | |
| return paths, hit_max_directories, hit_max_files | |
| def get_time_string() -> str: | |
| x = datetime.datetime.now() | |
| return f"{(x.year - 2000):02d}{x.month:02d}{x.day:02d}-{x.hour:02d}{x.minute:02d}{x.second:02d}" | |
| def get_function_args() -> Dict: | |
| frame = sys._getframe(1) | |
| args, _, _, values = inspect.getargvalues(frame) | |
| args_dict = copy.deepcopy({arg: values[arg] for arg in args}) | |
| return args_dict | |