@@ -29,6 +29,7 @@ def str_from_console(s):
29
29
30
30
try :
31
31
import re
32
+ from typing import Iterator , List , Tuple
32
33
33
34
from packaging .version import Version , _BaseVersion
34
35
@@ -38,6 +39,8 @@ def str_from_console(s):
38
39
### License: BSD, Accessed: Jan 14th, 2022
39
40
###
40
41
42
+ LegacyCmpKey = Tuple [int , Tuple [str , ...]]
43
+
41
44
_legacy_version_component_re = re .compile (r"(\d+ | [a-z]+ | \.| -)" , re .VERBOSE )
42
45
_legacy_version_replacement_map = {
43
46
"pre" : "c" ,
@@ -47,8 +50,7 @@ def str_from_console(s):
47
50
"dev" : "@" ,
48
51
}
49
52
50
- def _parse_version_parts (s ):
51
- # type: (str) -> Iterator[str]
53
+ def _parse_version_parts (s : str ) -> Iterator [str ]:
52
54
for part in _legacy_version_component_re .split (s ):
53
55
part = _legacy_version_replacement_map .get (part , part )
54
56
@@ -64,9 +66,7 @@ def _parse_version_parts(s):
64
66
# ensure that alpha/beta/candidate are before final
65
67
yield "*final"
66
68
67
- def _legacy_cmpkey (version ):
68
- # type: (str) -> LegacyCmpKey
69
-
69
+ def _legacy_cmpkey (version : str ) -> LegacyCmpKey :
70
70
# We hardcode an epoch of -1 here. A PEP 440 version can only have a epoch
71
71
# greater than or equal to 0. This will effectively put the LegacyVersion,
72
72
# which uses the defacto standard originally implemented by setuptools,
@@ -75,7 +75,7 @@ def _legacy_cmpkey(version):
75
75
76
76
# This scheme is taken from pkg_resources.parse_version setuptools prior to
77
77
# it's adoption of the packaging library.
78
- parts = [] # type: List[str ]
78
+ parts : List [ str ] = [ ]
79
79
for part in _parse_version_parts (version .lower ()):
80
80
if part .startswith ("*" ):
81
81
# remove "-" before a prerelease tag
@@ -92,32 +92,26 @@ def _legacy_cmpkey(version):
92
92
return epoch , tuple (parts )
93
93
94
94
class LegacyVersion (_BaseVersion ):
95
- def __init__ (self , version ):
96
- # type: (str) -> None
95
+ def __init__ (self , version : str ) -> None :
97
96
self ._version = str (version )
98
97
self ._key = _legacy_cmpkey (self ._version )
99
98
100
- def __str__ (self ):
101
- # type: () -> str
99
+ def __str__ (self ) -> str :
102
100
return self ._version
103
101
104
- def __repr__ (self ):
105
- # type: () -> str
102
+ def __repr__ (self ) -> str :
106
103
return "<LegacyVersion({0})>" .format (repr (str (self )))
107
104
108
105
@property
109
- def public (self ):
110
- # type: () -> str
106
+ def public (self ) -> str :
111
107
return self ._version
112
108
113
109
@property
114
- def base_version (self ):
115
- # type: () -> str
110
+ def base_version (self ) -> str :
116
111
return self ._version
117
112
118
113
@property
119
- def epoch (self ):
120
- # type: () -> int
114
+ def epoch (self ) -> int :
121
115
return - 1
122
116
123
117
LooseVersion = LegacyVersion
0 commit comments