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 | |