mirror of
https://github.com/Comfy-Org/ComfyUI-Manager.git
synced 2025-12-20 20:02:58 +08:00
fix: invalid version handling
https://github.com/ltdrdata/ComfyUI-Manager/issues/953
This commit is contained in:
parent
74bf39ab27
commit
d95b974941
@ -23,7 +23,7 @@ sys.path.append(glob_path)
|
|||||||
import cm_global
|
import cm_global
|
||||||
from manager_util import *
|
from manager_util import *
|
||||||
|
|
||||||
version = [2, 48, 6]
|
version = [2, 48, 7]
|
||||||
version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '')
|
version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '')
|
||||||
|
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ def is_installed(name):
|
|||||||
if name.startswith('#'):
|
if name.startswith('#'):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
pattern = r'([^<>!=]+)([<>!=]=?)([^ ]*)'
|
pattern = r'([^<>!=]+)([<>!=]=?)([0-9.a-zA-Z]*)'
|
||||||
match = re.search(pattern, name)
|
match = re.search(pattern, name)
|
||||||
|
|
||||||
if match:
|
if match:
|
||||||
|
|||||||
@ -1,63 +1,64 @@
|
|||||||
try:
|
# DON'T USE StrictVersion - cannot handle pre_release version
|
||||||
from distutils.version import StrictVersion
|
# try:
|
||||||
except:
|
# from distutils.version import StrictVersion
|
||||||
print(f"[ComfyUI-Manager] 'distutils' package not found. Activating fallback mode for compatibility.")
|
# except:
|
||||||
class StrictVersion:
|
print(f"[ComfyUI-Manager] 'distutils' package not found. Activating fallback mode for compatibility.")
|
||||||
def __init__(self, version_string):
|
class StrictVersion:
|
||||||
self.version_string = version_string
|
def __init__(self, version_string):
|
||||||
self.major = 0
|
self.version_string = version_string
|
||||||
self.minor = 0
|
self.major = 0
|
||||||
self.patch = 0
|
self.minor = 0
|
||||||
self.pre_release = None
|
self.patch = 0
|
||||||
self.parse_version_string()
|
self.pre_release = None
|
||||||
|
self.parse_version_string()
|
||||||
|
|
||||||
def parse_version_string(self):
|
def parse_version_string(self):
|
||||||
parts = self.version_string.split('.')
|
parts = self.version_string.split('.')
|
||||||
if not parts:
|
if not parts:
|
||||||
raise ValueError("Version string must not be empty")
|
raise ValueError("Version string must not be empty")
|
||||||
|
|
||||||
self.major = int(parts[0])
|
self.major = int(parts[0])
|
||||||
self.minor = int(parts[1]) if len(parts) > 1 else 0
|
self.minor = int(parts[1]) if len(parts) > 1 else 0
|
||||||
self.patch = int(parts[2]) if len(parts) > 2 else 0
|
self.patch = int(parts[2]) if len(parts) > 2 else 0
|
||||||
|
|
||||||
# Handling pre-release versions if present
|
# Handling pre-release versions if present
|
||||||
if len(parts) > 3:
|
if len(parts) > 3:
|
||||||
self.pre_release = parts[3]
|
self.pre_release = parts[3]
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
version = f"{self.major}.{self.minor}.{self.patch}"
|
version = f"{self.major}.{self.minor}.{self.patch}"
|
||||||
if self.pre_release:
|
if self.pre_release:
|
||||||
version += f"-{self.pre_release}"
|
version += f"-{self.pre_release}"
|
||||||
return version
|
return version
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return (self.major, self.minor, self.patch, self.pre_release) == \
|
return (self.major, self.minor, self.patch, self.pre_release) == \
|
||||||
(other.major, other.minor, other.patch, other.pre_release)
|
(other.major, other.minor, other.patch, other.pre_release)
|
||||||
|
|
||||||
def __lt__(self, other):
|
def __lt__(self, other):
|
||||||
if (self.major, self.minor, self.patch) == (other.major, other.minor, other.patch):
|
if (self.major, self.minor, self.patch) == (other.major, other.minor, other.patch):
|
||||||
return self.pre_release_compare(self.pre_release, other.pre_release) < 0
|
return self.pre_release_compare(self.pre_release, other.pre_release) < 0
|
||||||
return (self.major, self.minor, self.patch) < (other.major, other.minor, other.patch)
|
return (self.major, self.minor, self.patch) < (other.major, other.minor, other.patch)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def pre_release_compare(pre1, pre2):
|
def pre_release_compare(pre1, pre2):
|
||||||
if pre1 == pre2:
|
if pre1 == pre2:
|
||||||
return 0
|
return 0
|
||||||
if pre1 is None:
|
if pre1 is None:
|
||||||
return 1
|
return 1
|
||||||
if pre2 is None:
|
if pre2 is None:
|
||||||
return -1
|
return -1
|
||||||
return -1 if pre1 < pre2 else 1
|
return -1 if pre1 < pre2 else 1
|
||||||
|
|
||||||
def __le__(self, other):
|
def __le__(self, other):
|
||||||
return self == other or self < other
|
return self == other or self < other
|
||||||
|
|
||||||
def __gt__(self, other):
|
def __gt__(self, other):
|
||||||
return not self <= other
|
return not self <= other
|
||||||
|
|
||||||
def __ge__(self, other):
|
def __ge__(self, other):
|
||||||
return not self < other
|
return not self < other
|
||||||
|
|
||||||
def __ne__(self, other):
|
def __ne__(self, other):
|
||||||
return not self == other
|
return not self == other
|
||||||
|
|
||||||
|
|||||||
@ -448,7 +448,7 @@ def is_installed(name):
|
|||||||
if name.startswith('#'):
|
if name.startswith('#'):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
pattern = r'([^<>!=]+)([<>!=]=?)([^ ]*)'
|
pattern = r'([^<>!=]+)([<>!=]=?)([0-9.a-zA-Z]*)'
|
||||||
match = re.search(pattern, name)
|
match = re.search(pattern, name)
|
||||||
|
|
||||||
if match:
|
if match:
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "comfyui-manager"
|
name = "comfyui-manager"
|
||||||
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
|
description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
|
||||||
version = "2.48.6"
|
version = "2.48.7"
|
||||||
license = { file = "LICENSE.txt" }
|
license = { file = "LICENSE.txt" }
|
||||||
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
|
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions"]
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user