Source code for spack.solver.version_order

# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from typing import Tuple, Union

from spack.version import GitVersion, StandardVersion


[docs] def concretization_version_order(version_info: Tuple[Union[GitVersion, StandardVersion], dict]): """Version order key for concretization, where preferred > not preferred, not deprecated > deprecated, finite > any infinite component; only if all are the same, do we use default version ordering.""" version, info = version_info return ( info.get("preferred", False), not info.get("deprecated", False), not version.isdevelop(), not version.is_prerelease(), version, )