Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/pubdev/loader.py
# Copyright (C) 2022 The Software Heritage developers | # Copyright (C) 2022 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from distutils.version import StrictVersion | from distutils.version import LooseVersion | ||||
import json | import json | ||||
from pathlib import Path | from pathlib import Path | ||||
from typing import Any, Dict, Iterator, Optional, Sequence, Tuple | from typing import Any, Dict, Iterator, Optional, Sequence, Tuple | ||||
import attr | import attr | ||||
import yaml | import yaml | ||||
from swh.loader.package.loader import BasePackageInfo, PackageLoader | from swh.loader.package.loader import BasePackageInfo, PackageLoader | ||||
▲ Show 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | def get_versions(self) -> Sequence[str]: | ||||
Returns: | Returns: | ||||
A sequence of versions | A sequence of versions | ||||
Example:: | Example:: | ||||
["0.1.1", "0.10.2"] | ["0.1.1", "0.10.2"] | ||||
""" | """ | ||||
versions = list(self.info()["versions"].keys()) | versions = list(self.info()["versions"].keys()) | ||||
versions.sort(key=StrictVersion) | versions.sort(key=LooseVersion) | ||||
return versions | return versions | ||||
def get_default_version(self) -> str: | def get_default_version(self) -> str: | ||||
"""Get the newest release version of a PubDev package | """Get the newest release version of a PubDev package | ||||
Returns: | Returns: | ||||
A string representing a version | A string representing a version | ||||
▲ Show 20 Lines • Show All 82 Lines • Show Last 20 Lines |