Major update

Made changes to make nodes more cohesive
This commit is contained in:
daxcay
2024-07-05 09:04:31 +05:30
parent 37d33ca268
commit e8752c4f71
20 changed files with 441 additions and 543 deletions
+70
View File
@@ -0,0 +1,70 @@
import os
def search_and_select_files(search_in_directory, search_for_extension, select_from_directory, select_extension):
# Search for files with the specified extension in the search_in_directory
search_results = [file for file in os.listdir(search_in_directory) if file.endswith(search_for_extension)]
search_results_names = {os.path.splitext(file)[0] for file in search_results}
# List all files with the specified extension in the select_from_directory
selection_files = [file for file in os.listdir(select_from_directory) if file.endswith(select_extension)]
selection_files_dict = {os.path.splitext(file)[0]: file for file in selection_files}
# Find the matching files based on the names
matching_files = [selection_files_dict[name] for name in search_results_names if name in selection_files_dict]
# Prepare the return values
matching_files_full_paths = [os.path.join(select_from_directory, file) for file in matching_files]
matching_files_with_extensions = matching_files
matching_files_without_extensions = [os.path.splitext(file)[0] for file in matching_files]
return (matching_files_with_extensions, matching_files_without_extensions, matching_files_full_paths)
class DataSet_PathSelector:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"search_in_directory": ("STRING", {"multiline": False, "default": ""}),
"search_for_extension": ("STRING", {"multiline": False, "default": ""}),
"select_from_directory": ("STRING", {"multiline": False, "default": ""}),
"select_extension": ("STRING", {"multiline": False, "default": ""}),
},
}
RETURN_TYPES = ("STRING", "STRING", "INT",)
RETURN_NAMES = ("SelectedNamesWithExtension","SelectedNamesWithoutExtension", "SelectedPaths")
OUTPUT_IS_LIST = (True, True, True)
OUTPUT_NODE = True
FUNCTION = "make_list"
CATEGORY = "🔶DATASET🔶"
def make_list(self, search_in_directory, search_for_extension, select_from_directory, select_extension):
try:
if not os.path.exists(search_in_directory):
print(f"The folder '{search_in_directory}' does not exist.")
return ([], [], 0)
if not os.path.exists(select_from_directory):
print(f"The folder '{select_from_directory}' does not exist.")
return ([], [], 0)
search_for_extension = search_for_extension if search_for_extension.startswith('.') else '.' + search_for_extension
select_extension = select_extension if select_extension.startswith('.') else '.' + select_extension
a,b,c = search_and_select_files(search_in_directory, search_for_extension, select_from_directory, select_extension)
return (a,b,c)
except Exception as e:
print(f"An error occurred: {e}")
return ([], [], [])
N_CLASS_MAPPINGS = {
"DataSet_PathSelector": DataSet_PathSelector,
}
N_DISPLAY_NAME_MAPPINGS = {
"DataSet_PathSelector": "DataSet_PathSelector",
}