♻️ natural sort versions

This commit is contained in:
Ondřej Samohel 2022-08-04 14:35:01 +02:00
parent 53877ebe96
commit 097638c9e5
No known key found for this signature in database
GPG key ID: 02376E18990A97C6
2 changed files with 21 additions and 4 deletions

View file

@ -100,7 +100,12 @@ def inject_openpype_environment(deadlinePlugin):
if requested_version:
# sort detected versions
if openpype_versions:
openpype_versions.sort(key=lambda ver: ver[0])
# use natural sorting
openpype_versions.sort(
key=lambda ver: [
int(t) if t.isdigit() else t.lower()
for t in re.split('(\d+)', ver[0])
])
print(("*** Latest available version found is "
f"{openpype_versions[-1][0]}"))
requested_major, requested_minor, _ = requested_version.split(".")[:3] # noqa: E501
@ -117,7 +122,11 @@ def inject_openpype_environment(deadlinePlugin):
"in Deadline or install it to configured "
"directory.").format(requested_version))
# sort compatible versions nad pick the last one
compatible_versions.sort(key=lambda ver: ver[0])
compatible_versions.sort(
key=lambda ver: [
int(t) if t.isdigit() else t.lower()
for t in re.split('(\d+)', ver[0])
])
print(("*** Latest compatible version found is "
f"{compatible_versions[-1][0]}"))
# create list of executables for different platform and let

View file

@ -132,7 +132,11 @@ class OpenPypeDeadlinePlugin(DeadlinePlugin):
if requested_version:
# sort detected versions
if openpype_versions:
openpype_versions.sort(key=lambda ver: ver[0])
openpype_versions.sort(
key=lambda ver: [
int(t) if t.isdigit() else t.lower()
for t in re.split('(\d+)', ver[0])
])
requested_major, requested_minor, _ = requested_version.split(".")[:3] # noqa: E501
compatible_versions = []
for version in openpype_versions:
@ -146,7 +150,11 @@ class OpenPypeDeadlinePlugin(DeadlinePlugin):
"in Deadline or install it to configured "
"directory.").format(requested_version))
# sort compatible versions nad pick the last one
compatible_versions.sort(key=lambda ver: ver[0])
compatible_versions.sort(
key=lambda ver: [
int(t) if t.isdigit() else t.lower()
for t in re.split('(\d+)', ver[0])
])
# create list of executables for different platform and let
# Deadline decide.
exe_list = [