@@ -29,6 +29,7 @@ def str_from_console(s):
2929
3030try :
3131 import re
32+ from typing import Iterator , List , Tuple
3233
3334 from packaging .version import Version , _BaseVersion
3435
@@ -38,6 +39,8 @@ def str_from_console(s):
3839 ### License: BSD, Accessed: Jan 14th, 2022
3940 ###
4041
42+ LegacyCmpKey = Tuple [int , Tuple [str , ...]]
43+
4144 _legacy_version_component_re = re .compile (r"(\d+ | [a-z]+ | \.| -)" , re .VERBOSE )
4245 _legacy_version_replacement_map = {
4346 "pre" : "c" ,
@@ -47,8 +50,7 @@ def str_from_console(s):
4750 "dev" : "@" ,
4851 }
4952
50- def _parse_version_parts (s ):
51- # type: (str) -> Iterator[str]
53+ def _parse_version_parts (s : str ) -> Iterator [str ]:
5254 for part in _legacy_version_component_re .split (s ):
5355 part = _legacy_version_replacement_map .get (part , part )
5456
@@ -64,9 +66,7 @@ def _parse_version_parts(s):
6466 # ensure that alpha/beta/candidate are before final
6567 yield "*final"
6668
67- def _legacy_cmpkey (version ):
68- # type: (str) -> LegacyCmpKey
69-
69+ def _legacy_cmpkey (version : str ) -> LegacyCmpKey :
7070 # We hardcode an epoch of -1 here. A PEP 440 version can only have a epoch
7171 # greater than or equal to 0. This will effectively put the LegacyVersion,
7272 # which uses the defacto standard originally implemented by setuptools,
@@ -75,7 +75,7 @@ def _legacy_cmpkey(version):
7575
7676 # This scheme is taken from pkg_resources.parse_version setuptools prior to
7777 # it's adoption of the packaging library.
78- parts = [] # type: List[str ]
78+ parts : List [ str ] = [ ]
7979 for part in _parse_version_parts (version .lower ()):
8080 if part .startswith ("*" ):
8181 # remove "-" before a prerelease tag
@@ -92,32 +92,26 @@ def _legacy_cmpkey(version):
9292 return epoch , tuple (parts )
9393
9494 class LegacyVersion (_BaseVersion ):
95- def __init__ (self , version ):
96- # type: (str) -> None
95+ def __init__ (self , version : str ) -> None :
9796 self ._version = str (version )
9897 self ._key = _legacy_cmpkey (self ._version )
9998
100- def __str__ (self ):
101- # type: () -> str
99+ def __str__ (self ) -> str :
102100 return self ._version
103101
104- def __repr__ (self ):
105- # type: () -> str
102+ def __repr__ (self ) -> str :
106103 return "<LegacyVersion({0})>" .format (repr (str (self )))
107104
108105 @property
109- def public (self ):
110- # type: () -> str
106+ def public (self ) -> str :
111107 return self ._version
112108
113109 @property
114- def base_version (self ):
115- # type: () -> str
110+ def base_version (self ) -> str :
116111 return self ._version
117112
118113 @property
119- def epoch (self ):
120- # type: () -> int
114+ def epoch (self ) -> int :
121115 return - 1
122116
123117 LooseVersion = LegacyVersion
0 commit comments