Skip to content

Commit a11f5f5

Browse files
authored
Fix some methods with undocumented coroutine returns (#604)
* A number of functions (unintentionally, I think) returned coroutines instead of taking action.
1 parent 54ecac9 commit a11f5f5

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

servicex/servicex_client.py

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,12 @@
3131
from pathlib import Path
3232

3333
from servicex.configuration import Configuration
34-
from servicex.models import ResultFormat, TransformStatus, TransformedResults
34+
from servicex.models import (
35+
ResultFormat,
36+
TransformStatus,
37+
TransformedResults,
38+
CachedDataset,
39+
)
3540
from servicex.query_cache import QueryCache
3641
from servicex.servicex_adapter import ServiceXAdapter
3742
from servicex.query_core import (
@@ -44,7 +49,7 @@
4449

4550
from make_it_sync import make_sync
4651
from servicex.databinder_models import ServiceXSpec, General, Sample
47-
from collections.abc import Sequence
52+
from collections.abc import Sequence, Coroutine
4853
from enum import Enum
4954
import traceback
5055

@@ -115,6 +120,15 @@ def __repr__(self):
115120
return f"Invalid GuardList: {repr(data._exc)}"
116121

117122

123+
def _async_execute_and_wait(coro: Coroutine) -> Any:
124+
import asyncio
125+
126+
try:
127+
return asyncio.create_task(coro).result()
128+
except RuntimeError:
129+
return asyncio.run(coro)
130+
131+
118132
def _load_ServiceXSpec(
119133
config: Union[ServiceXSpec, Mapping[str, Any], str, Path],
120134
) -> ServiceXSpec:
@@ -353,40 +367,40 @@ async def get_transform_status_async(self, transform_id) -> TransformStatus:
353367

354368
get_transform_status = make_sync(get_transform_status_async)
355369

356-
def get_datasets(self, did_finder=None, show_deleted=False):
370+
def get_datasets(self, did_finder=None, show_deleted=False) -> List[CachedDataset]:
357371
r"""
358372
Retrieve all datasets you have run on the server
359373
:return: List of Query objects
360374
"""
361-
return self.servicex.get_datasets(did_finder, show_deleted)
375+
return _async_execute_and_wait(
376+
self.servicex.get_datasets(did_finder, show_deleted)
377+
)
362378

363-
def get_dataset(self, dataset_id):
379+
def get_dataset(self, dataset_id) -> CachedDataset:
364380
r"""
365381
Retrieve a dataset by its ID
366382
:return: A Query object
367383
"""
368-
return self.servicex.get_dataset(dataset_id)
384+
return _async_execute_and_wait(self.servicex.get_dataset(dataset_id))
369385

370-
def delete_dataset(self, dataset_id):
386+
def delete_dataset(self, dataset_id) -> bool:
371387
r"""
372388
Delete a dataset by its ID
373-
:return: A Query object
389+
:return: boolean showing whether the dataset has been deleted
374390
"""
375-
return self.servicex.delete_dataset(dataset_id)
391+
return _async_execute_and_wait(self.servicex.delete_dataset(dataset_id))
376392

377-
def delete_transform(self, transform_id):
393+
def delete_transform(self, transform_id) -> None:
378394
r"""
379395
Delete a Transform by its request ID
380-
:return: A Query object
381396
"""
382-
return self.servicex.delete_transform(transform_id)
397+
return _async_execute_and_wait(self.servicex.delete_transform(transform_id))
383398

384-
def cancel_transform(self, transform_id):
399+
def cancel_transform(self, transform_id) -> None:
385400
r"""
386401
Cancel a Transform by its request ID
387-
:return: A Query object
388402
"""
389-
return self.servicex.cancel_transform(transform_id)
403+
return _async_execute_and_wait(self.servicex.cancel_transform(transform_id))
390404

391405
def get_code_generators(self, backend=None):
392406
r"""

0 commit comments

Comments
 (0)