added: /v2/snapshot/diff
modified: use 'packaging.version` instead custom StrictVersion
This commit is contained in:
@@ -15,7 +15,7 @@ import re
|
||||
import logging
|
||||
import platform
|
||||
import shlex
|
||||
|
||||
from packaging import version
|
||||
|
||||
cache_lock = threading.Lock()
|
||||
session_lock = threading.Lock()
|
||||
@@ -58,62 +58,32 @@ def make_pip_cmd(cmd):
|
||||
# print(f"[ComfyUI-Manager] 'distutils' package not found. Activating fallback mode for compatibility.")
|
||||
class StrictVersion:
|
||||
def __init__(self, version_string):
|
||||
self.obj = version.parse(version_string)
|
||||
self.version_string = version_string
|
||||
self.major = 0
|
||||
self.minor = 0
|
||||
self.patch = 0
|
||||
self.pre_release = None
|
||||
self.parse_version_string()
|
||||
|
||||
def parse_version_string(self):
|
||||
parts = self.version_string.split('.')
|
||||
if not parts:
|
||||
raise ValueError("Version string must not be empty")
|
||||
|
||||
self.major = int(parts[0])
|
||||
self.minor = int(parts[1]) if len(parts) > 1 else 0
|
||||
self.patch = int(parts[2]) if len(parts) > 2 else 0
|
||||
|
||||
# Handling pre-release versions if present
|
||||
if len(parts) > 3:
|
||||
self.pre_release = parts[3]
|
||||
self.major = self.obj.major
|
||||
self.minor = self.obj.minor
|
||||
self.patch = self.obj.micro
|
||||
|
||||
def __str__(self):
|
||||
version = f"{self.major}.{self.minor}.{self.patch}"
|
||||
if self.pre_release:
|
||||
version += f"-{self.pre_release}"
|
||||
return version
|
||||
return self.version_string
|
||||
|
||||
def __eq__(self, other):
|
||||
return (self.major, self.minor, self.patch, self.pre_release) == \
|
||||
(other.major, other.minor, other.patch, other.pre_release)
|
||||
return self.obj == other.obj
|
||||
|
||||
def __lt__(self, other):
|
||||
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.major, self.minor, self.patch) < (other.major, other.minor, other.patch)
|
||||
|
||||
@staticmethod
|
||||
def pre_release_compare(pre1, pre2):
|
||||
if pre1 == pre2:
|
||||
return 0
|
||||
if pre1 is None:
|
||||
return 1
|
||||
if pre2 is None:
|
||||
return -1
|
||||
return -1 if pre1 < pre2 else 1
|
||||
return self.obj < other.obj
|
||||
|
||||
def __le__(self, other):
|
||||
return self == other or self < other
|
||||
return self.obj == other.obj or self.obj < other.obj
|
||||
|
||||
def __gt__(self, other):
|
||||
return not self <= other
|
||||
return not self.obj <= other.obj
|
||||
|
||||
def __ge__(self, other):
|
||||
return not self < other
|
||||
return not self.obj < other.obj
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self == other
|
||||
return not self.obj == other.obj
|
||||
|
||||
|
||||
def simple_hash(input_string):
|
||||
|
||||
Reference in New Issue
Block a user