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