From 89dbaede67a975de1b0a37bfd84458e36f5f56d0 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Thu, 29 Jan 2026 22:28:12 +0000 Subject: [PATCH] Initial upload: TermDiagram v0.1.0 --- src/termdiagram/utils/file_utils.py | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/termdiagram/utils/file_utils.py diff --git a/src/termdiagram/utils/file_utils.py b/src/termdiagram/utils/file_utils.py new file mode 100644 index 0000000..b746e0f --- /dev/null +++ b/src/termdiagram/utils/file_utils.py @@ -0,0 +1,32 @@ +from pathlib import Path +from typing import List + + +class FileUtils: + @staticmethod + def get_files( + directory: str, extensions: List[str] = None, exclude: List[str] = None + ) -> List[Path]: + exclude = exclude or [] + files = [] + + for path in Path(directory).rglob("*"): + if path.is_file(): + if extensions: + if path.suffix not in extensions: + continue + + if any(str(path).startswith(e) for e in exclude): + continue + + files.append(path) + + return files + + @staticmethod + def read_file(file_path: str) -> str: + try: + with open(file_path, "r", encoding="utf-8") as f: + return f.read() + except (IOError, UnicodeDecodeError): + return ""