From 9d1c02d30d417d859164ac880063a028ca47a619 Mon Sep 17 00:00:00 2001 From: cantor-set Date: Sun, 3 Mar 2024 20:40:44 -0500 Subject: [PATCH] Fixed circular reference --- modules/config.py | 3 ++- modules/path_utils.py | 20 ++++++++++++++++++++ modules/sdxl_styles.py | 3 +-- modules/util.py | 19 ------------------- tests/__init__.py | 2 +- 5 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 modules/path_utils.py diff --git a/modules/config.py b/modules/config.py index 09c8fd7c..91a7546a 100644 --- a/modules/config.py +++ b/modules/config.py @@ -7,7 +7,8 @@ import modules.flags import modules.sdxl_styles from modules.model_loader import load_file_from_url -from modules.util import get_files_from_folder, makedirs_with_log +from modules.util import makedirs_with_log +from modules.path_utils import get_files_from_folder from modules.flags import Performance, MetadataScheme def get_config_path(key, default_value): diff --git a/modules/path_utils.py b/modules/path_utils.py new file mode 100644 index 00000000..b4e27168 --- /dev/null +++ b/modules/path_utils.py @@ -0,0 +1,20 @@ + +import os + +def get_files_from_folder(folder_path, exensions=None, name_filter=None): + if not os.path.isdir(folder_path): + raise ValueError("Folder path is not a valid directory.") + + filenames = [] + + for root, dirs, 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 (exensions is None or file_extension.lower() in exensions) and (name_filter is None or name_filter in _): + path = os.path.join(relative_path, filename) + filenames.append(path) + + return filenames diff --git a/modules/sdxl_styles.py b/modules/sdxl_styles.py index 71afc402..ff3497f9 100644 --- a/modules/sdxl_styles.py +++ b/modules/sdxl_styles.py @@ -3,8 +3,7 @@ import re import json import math -from modules.util import get_files_from_folder - +from modules.path_utils import get_files_from_folder # cannot use modules.config - validators causing circular imports styles_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../sdxl_styles/')) diff --git a/modules/util.py b/modules/util.py index fb12af32..44f1e7ba 100644 --- a/modules/util.py +++ b/modules/util.py @@ -175,25 +175,6 @@ def generate_temp_filename(folder='./outputs/', extension='png'): return date_string, os.path.abspath(result), filename -def get_files_from_folder(folder_path, exensions=None, name_filter=None): - if not os.path.isdir(folder_path): - raise ValueError("Folder path is not a valid directory.") - - filenames = [] - - for root, dirs, 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 (exensions is None or file_extension.lower() in exensions) and (name_filter is None or name_filter in _): - path = os.path.join(relative_path, filename) - filenames.append(path) - - return filenames - - def calculate_sha256(filename, length=HASH_SHA256_LENGTH) -> str: hash_sha256 = sha256() blksize = 1024 * 1024 diff --git a/tests/__init__.py b/tests/__init__.py index f86b4227..c424468f 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,4 @@ import sys import pathlib -sys.path.append(pathlib.Path(f'{__file__}/../modules').parent.resolve()) \ No newline at end of file +sys.path.append(pathlib.Path(f'{__file__}/../modules').parent.resolve())