16
16
17
17
def deprecated (
18
18
func : Optional [F ] = None ,
19
+ * ,
19
20
replace : Optional [str ] = None ,
20
21
version : Optional [str ] = None ,
22
+ remove : Optional [str ] = None ,
21
23
category : Type [Warning ] = DeprecationWarning ,
22
24
) -> Decorator :
23
25
"""
@@ -34,15 +36,26 @@ def deprecated(
34
36
"""
35
37
36
38
if func is None :
37
- return partial (deprecated , replace = replace , version = version , category = category )
39
+ return partial (
40
+ deprecated ,
41
+ replace = replace ,
42
+ version = version ,
43
+ remove = remove ,
44
+ category = category ,
45
+ )
38
46
39
47
@wraps (func )
40
48
def wrapper (* args , ** kwargs ) -> Callable [..., F ]:
41
49
msg_list = ["Function 'semver.{f}' is deprecated." ]
42
50
43
51
if version :
44
52
msg_list .append ("Deprecated since version {v}. " )
45
- msg_list .append ("This function will be removed in semver 3." )
53
+
54
+ if not remove :
55
+ msg_list .append ("This function will be removed in semver 3." )
56
+ else :
57
+ msg_list .append (str (remove ))
58
+
46
59
if replace :
47
60
msg_list .append ("Use {r!r} instead." )
48
61
else :
@@ -69,6 +82,30 @@ def wrapper(*args, **kwargs) -> Callable[..., F]:
69
82
return wrapper
70
83
71
84
85
+ @deprecated (
86
+ version = "3.0.0" ,
87
+ remove = "Still under investigation, see #258." ,
88
+ category = PendingDeprecationWarning ,
89
+ )
90
+ def compare (ver1 : str , ver2 : str ) -> int :
91
+ """
92
+ Compare two versions strings.
93
+
94
+ :param ver1: first version string
95
+ :param ver2: second version string
96
+ :return: The return value is negative if ver1 < ver2,
97
+ zero if ver1 == ver2 and strictly positive if ver1 > ver2
98
+
99
+ >>> semver.compare("1.0.0", "2.0.0")
100
+ -1
101
+ >>> semver.compare("2.0.0", "1.0.0")
102
+ 1
103
+ >>> semver.compare("2.0.0", "2.0.0")
104
+ 0
105
+ """
106
+ return Version .parse (ver1 ).compare (ver2 )
107
+
108
+
72
109
@deprecated (version = "2.10.0" )
73
110
def parse (version ):
74
111
"""
@@ -126,28 +163,6 @@ def parse_version_info(version):
126
163
return Version .parse (version )
127
164
128
165
129
- @deprecated (version = "2.10.0" )
130
- def compare (ver1 , ver2 ):
131
- """
132
- Compare two versions strings.
133
-
134
- :param ver1: version string 1
135
- :param ver2: version string 2
136
- :return: The return value is negative if ver1 < ver2,
137
- zero if ver1 == ver2 and strictly positive if ver1 > ver2
138
- :rtype: int
139
-
140
- >>> semver.compare("1.0.0", "2.0.0")
141
- -1
142
- >>> semver.compare("2.0.0", "1.0.0")
143
- 1
144
- >>> semver.compare("2.0.0", "2.0.0")
145
- 0
146
- """
147
- v1 = Version .parse (ver1 )
148
- return v1 .compare (ver2 )
149
-
150
-
151
166
@deprecated (version = "2.10.0" )
152
167
def match (version , match_expr ):
153
168
"""
@@ -374,10 +389,16 @@ def replace(version, **parts):
374
389
375
390
376
391
# CLI
377
- cmd_bump = deprecated (cli .cmd_bump , "semver.cli.cmd_bump" , "3.0.0" )
378
- cmd_check = deprecated (cli .cmd_check , "semver.cli.cmd_check" , "3.0.0" )
379
- cmd_compare = deprecated (cli .cmd_compare , "semver.cli.cmd_compare" , "3.0.0" )
380
- cmd_nextver = deprecated (cli .cmd_nextver , "semver.cli.cmd_nextver" , "3.0.0" )
381
- createparser = deprecated (cli .createparser , "semver.cli.createparser" , "3.0.0" )
382
- process = deprecated (cli .process , "semver.cli.process" , "3.0.0" )
383
- main = deprecated (cli .main , "semver.cli.main" , "3.0.0" )
392
+ cmd_bump = deprecated (cli .cmd_bump , replace = "semver.cli.cmd_bump" , version = "3.0.0" )
393
+ cmd_check = deprecated (cli .cmd_check , replace = "semver.cli.cmd_check" , version = "3.0.0" )
394
+ cmd_compare = deprecated (
395
+ cli .cmd_compare , replace = "semver.cli.cmd_compare" , version = "3.0.0"
396
+ )
397
+ cmd_nextver = deprecated (
398
+ cli .cmd_nextver , replace = "semver.cli.cmd_nextver" , version = "3.0.0"
399
+ )
400
+ createparser = deprecated (
401
+ cli .createparser , replace = "semver.cli.createparser" , version = "3.0.0"
402
+ )
403
+ process = deprecated (cli .process , replace = "semver.cli.process" , version = "3.0.0" )
404
+ main = deprecated (cli .main , replace = "semver.cli.main" , version = "3.0.0" )
0 commit comments