Moved SemanticVersion class to semver file from generic `helpers file

This commit is contained in:
Colin Basnett
2025-03-11 12:46:34 -07:00
parent f7c85e7226
commit 5203ae1d7e
3 changed files with 57 additions and 56 deletions

View File

@@ -1,4 +1,4 @@
from typing import List, Iterable, cast, Tuple
from typing import List, Iterable, cast, Optional
import bpy
from bpy.props import CollectionProperty
@@ -159,60 +159,6 @@ def is_bdk_addon_loaded() -> bool:
return 'bdk' in dir(bpy.ops)
class SemanticVersion(object):
def __init__(self, version: Tuple[int, int, int]):
self.major, self.minor, self.patch = version
def __iter__(self):
yield self.major
yield self.minor
yield self.patch
@staticmethod
def compare(lhs: 'SemanticVersion', rhs: 'SemanticVersion') -> int:
"""
Compares two semantic versions.
Returns:
-1 if lhs < rhs
0 if lhs == rhs
1 if lhs > rhs
"""
for l, r in zip(lhs, rhs):
if l < r:
return -1
if l > r:
return 1
return 0
def __str__(self):
return f'{self.major}.{self.minor}.{self.patch}'
def __repr__(self):
return str(self)
def __eq__(self, other):
return self.compare(self, other) == 0
def __ne__(self, other):
return not self == other
def __lt__(self, other):
return self.compare(self, other) == -1
def __le__(self, other):
return self.compare(self, other) <= 0
def __gt__(self, other):
return self.compare(self, other) == 1
def __ge__(self, other):
return self.compare(self, other) >= 0
def __hash__(self):
return hash((self.major, self.minor, self.patch))
def convert_blender_bones_to_psx_bones(
bones: List[bpy.types.Bone],
bone_class: type,