Spaces:
Runtime error
Runtime error
import importlib.util | |
import glob | |
import os | |
import sys | |
import __main__ | |
import filecmp | |
import shutil | |
NODE_CLASS_MAPPINGS = {} | |
NODE_DISPLAY_NAME_MAPPINGS = {} | |
python = sys.executable | |
try: | |
comfy_path = os.path.join(os.path.dirname(os.path.realpath(__main__.__file__))) | |
extentions_folder = os.path.join(comfy_path, "web", "extensions", "dzNodes") | |
javascript_folder = os.path.join(os.path.dirname(os.path.realpath(__file__)), "js") | |
outdate_file_list = ['comfy_shared.js', 'debug.js', 'mtb_widgets.js', 'parse-css.js', 'dz_widgets.js'] | |
if not os.path.exists(extentions_folder): | |
print(f'# 😺dzNodes: Making the "{extentions_folder}" folder') | |
os.makedirs(extentions_folder, exist_ok=True) | |
else: | |
for i in outdate_file_list: | |
outdate_file = os.path.join(extentions_folder, i) | |
if os.path.exists(outdate_file): | |
os.remove(outdate_file) | |
result = filecmp.dircmp(javascript_folder, extentions_folder) | |
if result.left_only or result.diff_files: | |
print('# 😺dzNodes: Update to javascripts files detected') | |
file_list = list(result.left_only) | |
file_list.extend(x for x in result.diff_files if x not in file_list) | |
for file in file_list: | |
print(f'# 😺dzNodes:: Copying {file} to extensions folder') | |
src_file = os.path.join(javascript_folder, file) | |
dst_file = os.path.join(extentions_folder, file) | |
if os.path.exists(dst_file): | |
os.remove(dst_file) | |
shutil.copy(src_file, dst_file) | |
except Exception as e: | |
print(f'# 😺dzNodes: Error in update js files: {e}') | |
def get_ext_dir(subpath=None, mkdir=False): | |
dir = os.path.dirname(__file__) | |
if subpath is not None: | |
dir = os.path.join(dir, subpath) | |
dir = os.path.abspath(dir) | |
if mkdir and not os.path.exists(dir): | |
os.makedirs(dir) | |
return dir | |
py = get_ext_dir("py") | |
files = os.listdir(py) | |
for file in files: | |
if not file.endswith(".py"): | |
continue | |
name = os.path.splitext(file)[0] | |
imported_module = importlib.import_module(".py.{}".format(name), __name__) | |
try: | |
NODE_CLASS_MAPPINGS = {**NODE_CLASS_MAPPINGS, **imported_module.NODE_CLASS_MAPPINGS} | |
NODE_DISPLAY_NAME_MAPPINGS = {**NODE_DISPLAY_NAME_MAPPINGS, **imported_module.NODE_DISPLAY_NAME_MAPPINGS} | |
except: | |
pass | |
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"] | |