scons,stdlib: Remove deprecated 'distutils' module
The Python module 'distutils' will be removed in Python 3.12: https://docs.python.org/3/library/distutils.html This patch removed usage of 'distutils' in the gem5 code base. Change-Id: I1e3a944446149f3cd6cbf4211a1565b5f74c85a0 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/71679 Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
committed by
Bobby Bruce
parent
a63d376ecd
commit
b182b15f93
@@ -27,8 +27,7 @@
|
||||
from .jsonclient import JSONClient
|
||||
from .atlasclient import AtlasClient
|
||||
from _m5 import core
|
||||
from typing import Optional, Dict, List
|
||||
from distutils.version import StrictVersion
|
||||
from typing import Optional, Dict, List, Tuple
|
||||
import itertools
|
||||
from m5.util import warn
|
||||
|
||||
@@ -247,12 +246,27 @@ class ClientWrapper:
|
||||
:param resources: A list of resources to sort.
|
||||
:return: A list of sorted resources.
|
||||
"""
|
||||
|
||||
def sort_tuple(resource: Dict) -> Tuple:
|
||||
"""This is used for sorting resources by ID and version. First
|
||||
the ID is sorted, then the version. In cases where the version
|
||||
contains periods, it's assumed this is to separate a
|
||||
"major.minor.hotfix" style versioning system. In which case, the
|
||||
value separated in the most-significant position is sorted before
|
||||
those less significant. If the value is a digit it is cast as an
|
||||
int, otherwise, it is cast as a string, to lower-case.
|
||||
"""
|
||||
to_return = (resource["id"].lower(),)
|
||||
for val in resource["resource_version"].split("."):
|
||||
if val.isdigit():
|
||||
to_return += (int(val),)
|
||||
else:
|
||||
to_return += (str(val).lower(),)
|
||||
return to_return
|
||||
|
||||
return sorted(
|
||||
resources,
|
||||
key=lambda resource: (
|
||||
resource["id"].lower(),
|
||||
StrictVersion(resource["resource_version"]),
|
||||
),
|
||||
key=lambda resource: sort_tuple(resource),
|
||||
reverse=True,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user