crates: Use looseversion.LooseVersion2 to parse crate versions
packaging.version.parse is dedicated to parse Python package version numbers but crate versions do not necessarily respect Python version number conventions and thus some crate versions cannot be parsed. Prefer to use looseversion.LooseVersion2 instead which in a drop-in replacement for deprecated distutils.version.LooseVersion and enables to parse all kind of version numbers.
This commit is contained in:
parent
b2ece7ca63
commit
aafaebd5de
7 changed files with 18 additions and 2 deletions
|
@ -15,7 +15,7 @@ from typing import Any, Dict, Iterator, List, Optional
|
|||
from urllib.parse import urlparse
|
||||
|
||||
import iso8601
|
||||
from packaging.version import parse as parse_version
|
||||
from looseversion import LooseVersion2
|
||||
|
||||
from swh.scheduler.interface import SchedulerInterface
|
||||
from swh.scheduler.model import ListedOrigin
|
||||
|
@ -201,7 +201,7 @@ class CratesLister(Lister[CratesListerState, CratesListerPage]):
|
|||
for name, item in dataset.items():
|
||||
page = []
|
||||
# sort crate versions
|
||||
versions: list = sorted(item["versions"].keys(), key=parse_version)
|
||||
versions = sorted(item["versions"].keys(), key=LooseVersion2)
|
||||
|
||||
for version in versions:
|
||||
v = item["versions"][version]
|
||||
|
|
|
@ -17,6 +17,7 @@ echo -e '''created_at,description,documentation,downloads,homepage,id,max_upload
|
|||
''' > data/crates.csv
|
||||
|
||||
echo -e '''checksum,crate_id,crate_size,created_at,downloads,features,id,license,links,num,published_by,updated_at,yanked
|
||||
d879626d5babe4ca6c4ec953d712e28d939672b325a4f9352f28ca3c82568a15,1339,,2014-12-18 06:56:46.88489,845,{},1321,MIT/Apache-2.0,,0.1.3-experimental,,2017-11-30 05:24:37.146115,f
|
||||
398952a2f6cd1d22bc1774fd663808e32cf36add0280dee5cdd84a8fff2db944,2233,,2015-05-27 23:19:16.848643,1961,{},10855,MIT/Apache-2.0,,0.1.0,,2017-11-30 03:37:17.449539,f
|
||||
343bd0171ee23346506db6f4c64525de6d72f0e8cc533f83aea97f3e7488cbf9,545,,2014-12-18 06:56:46.88489,845,{},1321,MIT/Apache-2.0,,0.1.2,,2017-11-30 02:29:20.01125,f
|
||||
6e229ed392842fa93c1d76018d197b7e1b74250532bafb37b0e1d121a92d4cf7,1339,,2015-02-03 11:15:19.001762,8211,{},4371,MIT/Apache-2.0,,0.1.2,,2017-11-30 03:14:27.545115,f
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -26,6 +26,14 @@ expected_origins = [
|
|||
"filename": "rand-0.1.2.crate",
|
||||
"url": "https://static.crates.io/crates/rand/rand-0.1.2.crate",
|
||||
},
|
||||
{
|
||||
"version": "0.1.3-experimental",
|
||||
"checksums": {
|
||||
"sha256": "d879626d5babe4ca6c4ec953d712e28d939672b325a4f9352f28ca3c82568a15", # noqa: B950
|
||||
},
|
||||
"filename": "rand-0.1.3-experimental.crate",
|
||||
"url": "https://static.crates.io/crates/rand/rand-0.1.3-experimental.crate",
|
||||
},
|
||||
],
|
||||
"crates_metadata": [
|
||||
{
|
||||
|
@ -38,6 +46,11 @@ expected_origins = [
|
|||
"last_update": "2017-11-30 03:14:27.545115",
|
||||
"yanked": False,
|
||||
},
|
||||
{
|
||||
"version": "0.1.3-experimental",
|
||||
"last_update": "2017-11-30 05:24:37.146115",
|
||||
"yanked": False,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue