Spaces:
Running
on
Zero
Running
on
Zero
from typing import Type, List, NamedTuple | |
from comfy_api.internal.singleton import ProxiedSingleton | |
from packaging import version as packaging_version | |
class ComfyAPIBase(ProxiedSingleton): | |
def __init__(self): | |
pass | |
class ComfyAPIWithVersion(NamedTuple): | |
version: str | |
api_class: Type[ComfyAPIBase] | |
def parse_version(version_str: str) -> packaging_version.Version: | |
""" | |
Parses a version string into a packaging_version.Version object. | |
Raises ValueError if the version string is invalid. | |
""" | |
if version_str == "latest": | |
return packaging_version.parse("9999999.9999999.9999999") | |
return packaging_version.parse(version_str) | |
registered_versions: List[ComfyAPIWithVersion] = [] | |
def register_versions(versions: List[ComfyAPIWithVersion]): | |
versions.sort(key=lambda x: parse_version(x.version)) | |
global registered_versions | |
registered_versions = versions | |
def get_all_versions() -> List[ComfyAPIWithVersion]: | |
""" | |
Returns a list of all registered ComfyAPI versions. | |
""" | |
return registered_versions | |