Skip to content

Commit f79a4d6

Browse files
authored
Fix API, that gives an error if target is not specified (#196)
1 parent e4052f0 commit f79a4d6

File tree

2 files changed

+54
-4
lines changed

2 files changed

+54
-4
lines changed

ads/dataset/dataset.py

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ def from_dataframe(
172172
progress=progress,
173173
transformer_pipeline=transformer_pipeline,
174174
interactive=interactive,
175-
**kwargs
175+
**kwargs,
176176
)
177177

178178
@property
@@ -1913,3 +1913,43 @@ def show_in_notebook(
19131913

19141914
if visualize_features and not is_wide_dataset:
19151915
self._visualize_feature_distribution(features)
1916+
1917+
def get_recommendations(self, *args, **kwargs): # real signature may change
1918+
"""
1919+
Returns user-friendly error message to set target variable before invoking this API.
1920+
1921+
Parameters
1922+
----------
1923+
kwargs
1924+
1925+
Returns
1926+
-------
1927+
NotImplementedError
1928+
raises NotImplementedError, if target parameter value not provided
1929+
1930+
"""
1931+
raise NotImplementedError(
1932+
"Please set the target using set_target() before invoking this API. See "
1933+
"https://accelerated-data-science.readthedocs.io/en/latest/ads.dataset.html#ads.dataset.dataset.ADSDataset.set_target "
1934+
"for the API usage."
1935+
)
1936+
1937+
def suggest_recommendations(self, *args, **kwargs): # real signature may change
1938+
"""
1939+
Returns user-friendly error message to set target variable before invoking this API.
1940+
1941+
Parameters
1942+
----------
1943+
kwargs
1944+
1945+
Returns
1946+
-------
1947+
NotImplementedError
1948+
raises NotImplementedError, if target parameter value not provided
1949+
1950+
"""
1951+
raise NotImplementedError(
1952+
"Please set the target using set_target() before invoking this API. See "
1953+
"https://accelerated-data-science.readthedocs.io/en/latest/ads.dataset.html#ads.dataset.dataset.ADSDataset.set_target "
1954+
"for the API usage."
1955+
)

tests/unitary/with_extras/dataset/test_dataset_dataset.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ def setup_class(cls):
2525
def teardown_class(cls):
2626
cls.test_dir.cleanup()
2727

28+
def get_data_path(self):
29+
current_dir = os.path.dirname(os.path.abspath(__file__))
30+
return os.path.join(current_dir, "data", "orcl_attrition.csv")
31+
2832
@pytest.mark.parametrize(
2933
"test_file_name, expected_file_name",
3034
[
@@ -93,6 +97,12 @@ def assert_dataset(self, dataset):
9397
assert "type_discovery" in dataset.init_kwargs
9498
assert isinstance(dataset.transformer_pipeline, TransformerPipeline)
9599

96-
def get_data_path(self):
97-
current_dir = os.path.dirname(os.path.abspath(__file__))
98-
return os.path.join(current_dir, "data", "orcl_attrition.csv")
100+
def test_get_suggest_recommendations_error_message(self):
101+
"""Test for validation user-friendly error message."""
102+
employees = ADSDataset.from_dataframe(df=pd.read_csv(self.get_data_path()))
103+
104+
err_msg = r"Please set the target using set_target\(\) before invoking this API."
105+
with pytest.raises(NotImplementedError, match=err_msg):
106+
employees.get_recommendations()
107+
with pytest.raises(NotImplementedError, match=err_msg):
108+
employees.suggest_recommendations()

0 commit comments

Comments
 (0)