Source code for ewoksjob.client.local.utils

import warnings
from typing import List
from typing import Optional

from .futures import LocalFuture
from .pool import get_active_pool

__all__ = [
    "get_future",
    "cancel",
    "get_result",
    "get_unfinished_uuids",
    "get_not_finished_task_ids",
    "get_not_finished_futures",
]


[docs] def get_future(uuid: str) -> LocalFuture: pool = get_active_pool() return pool.get_future(uuid)
[docs] def cancel(uuid: str): """The current implementation does not allow cancelling running tasks""" future = get_future(uuid) future.abort()
[docs] def get_result(uuid: str, timeout: Optional[float] = None): future = get_future(uuid) return future.result(timeout=timeout)
[docs] def get_unfinished_uuids() -> list: """Get all task ID's that are not finished""" pool = get_active_pool() return pool.get_unfinished_uuids()
[docs] def get_not_finished_task_ids() -> List[str]: warnings.warn( "get_not_finished_task_ids() is deprecated and will be removed in a future release. Use `get_unfinished_uuids()` instead.", DeprecationWarning, stacklevel=2, ) return get_unfinished_uuids()
[docs] def get_not_finished_futures() -> List[LocalFuture]: """Get all futures that are not finished""" return [get_future(uuid) for uuid in get_unfinished_uuids()]