summaryrefslogtreecommitdiff
path: root/lib/spack/spack/version/__init__.py
blob: 30dd71ea622fab959e239fc613981f109b93e9d9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

"""
This module implements Version and version-ish objects.  These are:

StandardVersion: A single version of a package.
ClosedOpenRange: A range of versions of a package.
VersionList: A ordered list of Version and VersionRange elements.

The set of Version and ClosedOpenRange is totally ordered wiht <
defined as Version(x) < VersionRange(Version(y), Version(x))
if Version(x) <= Version(y).
"""

from .common import (
    EmptyRangeError,
    VersionChecksumError,
    VersionError,
    VersionLookupError,
    infinity_versions,
    is_git_version,
)
from .version_types import (
    ClosedOpenRange,
    GitVersion,
    StandardVersion,
    Version,
    VersionList,
    VersionRange,
    from_string,
    next_version,
    prev_version,
    ver,
)

#: This version contains all possible versions.
any_version: VersionList = VersionList([":"])

__all__ = [
    "Version",
    "VersionRange",
    "ver",
    "from_string",
    "is_git_version",
    "infinity_versions",
    "prev_version",
    "next_version",
    "VersionList",
    "ClosedOpenRange",
    "StandardVersion",
    "GitVersion",
    "VersionError",
    "VersionChecksumError",
    "VersionLookupError",
    "EmptyRangeError",
    "any_version",
]