Skip to content

Commit d12b317

Browse files
committed
Remove use of LegacyVersion
1 parent 01ca08c commit d12b317

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

docs/version.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import sys
2-
from typing import List
3-
from packaging.version import parse, Version, LegacyVersion
2+
from typing import List, Union
3+
from packaging.version import parse, Version, InvalidVersion
44
import requests
55
import argparse
66

@@ -21,25 +21,26 @@ def __init__(self, repo: str, organization: str = 'scipp'):
2121

2222
def _to_version(self, version) -> Version:
2323
if isinstance(version, str):
24-
version = parse(version)
25-
# When not building for a tagged release we may get, e.g., 'main'.
26-
# Pretend this means the current latest release.
27-
if isinstance(version, LegacyVersion):
24+
try:
25+
return parse(version)
26+
except InvalidVersion:
27+
# When not building for a tagged release we may get, e.g., 'main'.
28+
# Pretend this means the current latest release.
2829
return self._releases[0]
2930
return version
3031

3132
def minor_releases(self, first: str = '0.1') -> List[str]:
3233
"""Return set of minor releases in the form '1.2'.
3334
34-
`first` gives the first release to be included. By default '0.0' releases are
35+
`first` gives the first release to be included. By default, '0.0' releases are
3536
not included.
3637
"""
3738
first = parse(first)
3839
releases = [r for r in self._releases if r >= first]
3940
releases = sorted(set((r.major, r.minor) for r in releases), reverse=True)
4041
return [f'{major}.{minor}' for major, minor in releases]
4142

42-
def is_latest(self, version: str) -> bool:
43+
def is_latest(self, version: Union[str, Version]) -> bool:
4344
"""Return True if `version` has the same or larger major and minor as the
4445
latest release.
4546
"""
@@ -54,14 +55,14 @@ def is_new(self, version: str) -> bool:
5455
latest = releases[0]
5556
return (latest.major, latest.minor) < (version.major, version.minor)
5657

57-
def target(self, version: str) -> str:
58+
def target(self, version: Union[str, Version]) -> str:
5859
version = self._to_version(version)
5960
if self.is_latest(version):
6061
return ''
6162
else:
6263
return f'release/{version.major}.{version.minor}'
6364

64-
def replaced(self, version: str) -> str:
65+
def replaced(self, version: str) -> Version:
6566
version = self._to_version(version)
6667
# If we release 1.2 we want to find 1.1
6768
for release in self._releases:

0 commit comments

Comments
 (0)