Skip to content
This repository was archived by the owner on May 12, 2025. It is now read-only.

Commit 872ed27

Browse files
authored
Deprecate make_results in favour of get_results (#17)
* Breaking change: remove wait argument from make_results * deprecation warning * add test
1 parent 0a26aba commit 872ed27

File tree

5 files changed

+46
-13
lines changed

5 files changed

+46
-13
lines changed

datapi/api_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ def get_remote(self, request_id: str) -> datapi.Remote:
334334
-------
335335
datapi.Remote
336336
"""
337-
return self._retrieve_api.get_job(request_id).make_remote()
337+
return self._retrieve_api.get_job(request_id).get_remote()
338338

339339
def get_results(self, request_id: str) -> datapi.Results:
340340
"""
@@ -349,7 +349,7 @@ def get_results(self, request_id: str) -> datapi.Results:
349349
-------
350350
datapi.Results
351351
"""
352-
return self.get_remote(request_id).make_results()
352+
return self.get_remote(request_id).get_results()
353353

354354
def retrieve(
355355
self,
@@ -410,7 +410,7 @@ def submit_and_wait_on_results(
410410
-------
411411
datapi.Results
412412
"""
413-
return self._retrieve_api.submit(collection_id, request).make_results()
413+
return self._retrieve_api.submit(collection_id, request).get_results()
414414

415415
def unstar_collection(self, collection_id: str) -> None:
416416
return self._profile_api.unstar_collection(collection_id)

datapi/processing.py

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ def submit(self, request: dict[str, Any]) -> datapi.Remote:
320320
json={"inputs": request},
321321
**self._request_kwargs,
322322
)
323-
return job.make_remote()
323+
return job.get_remote()
324324

325325
def apply_constraints(self, request: dict[str, Any]) -> dict[str, Any]:
326326
"""Apply constraints to the parameters in a request.
@@ -486,13 +486,13 @@ def results_ready(self) -> bool:
486486
if status in ("accepted", "running"):
487487
return False
488488
if status == "failed":
489-
results = self.make_results(wait=False)
489+
results = self._make_results(wait=False)
490490
raise ProcessingFailedError(error_json_to_message(results._json_dict))
491491
if status in ("dismissed", "deleted"):
492492
raise ProcessingFailedError(f"API state {status!r}")
493493
raise ProcessingFailedError(f"Unknown API state {status!r}")
494494

495-
def make_results(self, wait: bool = True) -> Results:
495+
def _make_results(self, wait: bool) -> Results:
496496
if wait:
497497
self._wait_on_results()
498498
response = self._get_api_response("get")
@@ -503,6 +503,24 @@ def make_results(self, wait: bool = True) -> Results:
503503
results = Results.from_request("get", results_url, **self._request_kwargs)
504504
return results
505505

506+
def make_results(self, wait: bool = True) -> Results:
507+
warnings.warn(
508+
"`make_results` has been deprecated, and in the future will raise an error."
509+
"Please use `get_results` from now on.",
510+
DeprecationWarning,
511+
stacklevel=2,
512+
)
513+
return self._make_results(wait)
514+
515+
def get_results(self) -> Results:
516+
"""Retrieve results.
517+
518+
Returns
519+
-------
520+
datapi.Results
521+
"""
522+
return self._make_results(wait=True)
523+
506524
def download(self, target: str | None = None) -> str:
507525
"""Download the results.
508526
@@ -516,7 +534,7 @@ def download(self, target: str | None = None) -> str:
516534
str
517535
Path to the retrieved file.
518536
"""
519-
results = self.make_results()
537+
results = self.get_results()
520538
return results.download(target)
521539

522540
def delete(self) -> dict[str, Any]:
@@ -562,7 +580,7 @@ def reply(self) -> dict[str, Any]:
562580
elif reply["state"] == "failed":
563581
reply.setdefault("error", {})
564582
try:
565-
self.make_results()
583+
self.get_results()
566584
except Exception as exc:
567585
reply["error"].setdefault("message", str(exc))
568586

@@ -594,13 +612,22 @@ def __del__(self) -> None:
594612

595613
@attrs.define
596614
class Job(ApiResponse):
597-
def make_remote(self) -> Remote:
615+
def get_remote(self) -> Remote:
598616
if self.response.request.method == "POST":
599617
url = self._get_link_href(rel="monitor")
600618
else:
601619
url = self._get_link_href(rel="self")
602620
return Remote(url, **self._request_kwargs)
603621

622+
def make_remote(self) -> Remote:
623+
warnings.warn(
624+
"`make_remote` has been deprecated, and in the future will raise an error."
625+
"Please use `get_remote` from now on.",
626+
DeprecationWarning,
627+
stacklevel=2,
628+
)
629+
return self.get_remote()
630+
604631

605632
@attrs.define
606633
class Jobs(ApiResponsePaginated):

tests/integration_test_20_processing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def test_processing_get_jobs_status(api_anon_client: ApiClient) -> None:
6262
remote = api_anon_client.submit("test-adaptor-dummy", {"format": "foo"})
6363
request_id = remote.request_id
6464
with pytest.raises(HTTPError, match="400 Client Error: Bad Request"):
65-
remote.make_results()
65+
remote.get_results()
6666
assert request_id in api_anon_client.get_jobs(status="failed").request_ids
6767
assert request_id not in api_anon_client.get_jobs(status="successful").request_ids
6868

tests/integration_test_30_remote.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,13 @@ def test_remote_datetimes(api_anon_client: ApiClient) -> None:
101101
assert isinstance(remote.creation_datetime, datetime.datetime)
102102
assert remote.end_datetime is None
103103

104-
remote.make_results()
104+
remote.get_results()
105105
assert remote.start_datetime is not None
106106
assert remote.end_datetime is not None
107107
assert remote.creation_datetime < remote.start_datetime < remote.end_datetime
108+
109+
110+
def test_make_results_deprecation(api_anon_client: ApiClient) -> None:
111+
remote = api_anon_client.submit("test-adaptor-dummy", {})
112+
with pytest.warns(DeprecationWarning, match="`make_results` has been deprecated"):
113+
remote.make_results()

tests/integration_test_70_legacy_api_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,12 @@ def test_legacy_api_client_download(
246246
target = client.download(remote)
247247
assert os.path.getsize(target) == 1
248248

249-
results = remote.make_results()
249+
results = remote.get_results()
250250
results_dict = {
251251
"location": results.location,
252252
"contentLength": results.content_length,
253253
}
254-
results_tuple = (remote, remote.make_results(), results_dict)
254+
results_tuple = (remote, remote.get_results(), results_dict)
255255
target1 = "remote.grib"
256256
target2 = "results.grib"
257257
target3 = "dict.grib"

0 commit comments

Comments
 (0)