Spaces:
Running
Running
| from pathlib import Path | |
| import sys | |
| import logging | |
| import re | |
| # The path to the requirements.txt file | |
| requirements_path = Path(__file__).parents[1] / "requirements.txt" | |
| def get_missing_requirements_message(): | |
| """The warning message to display when a package is missing.""" | |
| extra = "" | |
| if sys.flags.no_user_site: | |
| extra = "-s " | |
| return f""" | |
| Please install the updated requirements.txt file by running: | |
| {sys.executable} {extra}-m pip install -r {requirements_path} | |
| If you are on the portable package you can run: update\\update_comfyui.bat to solve this problem. | |
| """.strip() | |
| def is_valid_version(version: str) -> bool: | |
| """Validate if a string is a valid semantic version (X.Y.Z format).""" | |
| pattern = r"^(\d+)\.(\d+)\.(\d+)$" | |
| return bool(re.match(pattern, version)) | |
| PACKAGE_VERSIONS = {} | |
| def get_required_packages_versions(): | |
| if len(PACKAGE_VERSIONS) > 0: | |
| return PACKAGE_VERSIONS.copy() | |
| out = PACKAGE_VERSIONS | |
| try: | |
| with open(requirements_path, "r", encoding="utf-8") as f: | |
| for line in f: | |
| line = line.strip().replace(">=", "==") | |
| s = line.split("==") | |
| if len(s) == 2: | |
| version_str = s[-1] | |
| if not is_valid_version(version_str): | |
| logging.error(f"Invalid version format in requirements.txt: {version_str}") | |
| continue | |
| out[s[0]] = version_str | |
| return out.copy() | |
| except FileNotFoundError: | |
| logging.error("requirements.txt not found.") | |
| return None | |
| except Exception as e: | |
| logging.error(f"Error reading requirements.txt: {e}") | |
| return None | |