Skip to content

Commit a0ca81c

Browse files
deprecation: Add SDK Version in deprecation warning
1 parent 9203dfd commit a0ca81c

File tree

6 files changed

+30
-21
lines changed

6 files changed

+30
-21
lines changed

src/sagemaker/deprecations.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,27 @@
2121
V2_URL = "https://sagemaker.readthedocs.io/en/stable/v2.html"
2222

2323

24-
def _warn(msg):
24+
def _warn(msg, sdk_version=None):
2525
"""Generic warning raiser referencing V2
2626
2727
Args:
2828
phrase: The phrase to include in the warning.
29+
sdk_version: the sdk version of removal of support.
2930
"""
30-
full_msg = f"{msg} in sagemaker>=2.\nSee: {V2_URL} for details."
31+
_sdk_version = sdk_version if sdk_version is not None else "2"
32+
full_msg = f"{msg} in sagemaker>={_sdk_version}.\nSee: {V2_URL} for details."
3133
warnings.warn(full_msg, DeprecationWarning, stacklevel=2)
3234
logger.warning(full_msg)
3335

3436

35-
def removed_warning(phrase):
37+
def removed_warning(phrase, sdk_version=None):
3638
"""Raise a warning for a no-op in sagemaker>=2
3739
3840
Args:
3941
phrase: the prefix phrase of the warning message.
42+
sdk_version: the sdk version of removal of support.
4043
"""
41-
_warn(f"{phrase} is a no-op")
44+
_warn(f"{phrase} is a no-op", sdk_version)
4245

4346

4447
def renamed_warning(phrase):
@@ -146,26 +149,32 @@ def func(*args, **kwargs): # pylint: disable=W0613
146149
return func
147150

148151

149-
def deprecated(obj):
152+
def deprecated(sdk_version=None):
150153
"""Decorator for raising deprecated warning for a feature in sagemaker>=2
151154
155+
Args:
156+
sdk_version (str): the sdk version of removal of support.
157+
152158
Usage:
153-
@deprecated
159+
@deprecated()
154160
def sample_function():
155161
print("xxxx....")
156162
157-
@deprecated
163+
@deprecated(sdk_version="2.66")
158164
class SampleClass():
159165
def __init__(self):
160166
print("xxxx....")
161167
162168
"""
163169

164-
def wrapper(*args, **kwargs):
165-
removed_warning(obj.__name__)
166-
return obj(*args, **kwargs)
170+
def deprecate(obj):
171+
def wrapper(*args, **kwargs):
172+
removed_warning(obj.__name__, sdk_version)
173+
return obj(*args, **kwargs)
174+
175+
return wrapper
167176

168-
return wrapper
177+
return deprecate
169178

170179

171180
def deprecated_function(func, name):

src/sagemaker/serverless/model.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
from sagemaker.deprecations import deprecated
1616

1717

18-
@deprecated
18+
@deprecated(sdk_version="v2.66.3")
1919
class LambdaModel:
2020
"""A model that can be deployed to Lambda.
2121
22-
note:: Deprecated in versions > v2.66.0. An alternative support will be added in near future.
22+
note:: Deprecated in versions >= v2.66.3. An alternative support will be added in near future.
2323
"""

src/sagemaker/serverless/predictor.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
from sagemaker.deprecations import deprecated
1616

1717

18-
@deprecated
18+
@deprecated(sdk_version="v2.66.3")
1919
class LambdaPredictor:
2020
"""A deployed model hosted on Lambda.
2121
22-
note:: Deprecated in versions > v2.66.0. An alternative support will be added in near future.
22+
note:: Deprecated in versions >= v2.66.3. An alternative support will be added in near future.
2323
"""

tests/unit/sagemaker/serverless/test_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def test_deprecated_for_class_lamda_model():
2020
with pytest.warns(DeprecationWarning) as w:
2121
LambdaModel()
2222
msg = (
23-
"LambdaModel is a no-op in sagemaker>=2.\n"
23+
"LambdaModel is a no-op in sagemaker>=v2.66.3.\n"
2424
"See: https://sagemaker.readthedocs.io/en/stable/v2.html for details."
2525
)
2626
assert str(w[-1].message) == msg

tests/unit/sagemaker/serverless/test_predictor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_deprecated_for_class_lamda_predictor():
2222
with pytest.warns(DeprecationWarning) as w:
2323
LambdaPredictor()
2424
msg = (
25-
"LambdaPredictor is a no-op in sagemaker>=2.\n"
25+
"LambdaPredictor is a no-op in sagemaker>=v2.66.3.\n"
2626
"See: https://sagemaker.readthedocs.io/en/stable/v2.html for details."
2727
)
2828
assert str(w[-1].message) == msg

tests/unit/test_deprecations.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def sample_method(self):
113113

114114

115115
def test_deprecated_for_function():
116-
@deprecated
116+
@deprecated()
117117
def sample_function():
118118
return "xxxx...."
119119

@@ -128,15 +128,15 @@ def sample_function():
128128

129129

130130
def test_deprecated_for_class():
131-
@deprecated
131+
@deprecated(sdk_version="2.66.6")
132132
class SampleClass:
133133
def __init__(self):
134134
pass
135135

136136
with pytest.warns(DeprecationWarning) as w:
137137
SampleClass()
138138
msg = (
139-
"SampleClass is a no-op in sagemaker>=2.\n"
139+
"SampleClass is a no-op in sagemaker>=2.66.6.\n"
140140
"See: https://sagemaker.readthedocs.io/en/stable/v2.html for details."
141141
)
142142
assert str(w[-1].message) == msg
@@ -147,7 +147,7 @@ class SampleClass:
147147
def __init__(self):
148148
pass
149149

150-
@deprecated
150+
@deprecated()
151151
def sample_method(self):
152152
return "xxxx...."
153153

0 commit comments

Comments
 (0)