radical.asyncflow.backends¶
StateMapper ¶
Simple state mapper for noop backend.
NoopExecutionBackend ¶
NoopExecutionBackend(name: str = 'default')
A no-operation execution backend for testing and development purposes.
This backend simulates task execution without actually running any tasks. All submitted tasks immediately return dummy output and transition to DONE state. Useful for testing workflow logic without computational overhead.
Attributes:
| Name | Type | Description |
|---|---|---|
_work_dir | str | Output directory for capture_stdio files. Defaults to cwd; overwritten by WorkflowEngine._attach_backend. |
is_attached | bool | True once registered with a WorkflowEngine or Session. |
attached_to | list[str] | Ordered list of engine/session UIDs this backend has been attached to (most recent last). |
Initialize the no-op execution backend.
Sets up dummy task storage, and default callback function.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name | str | Name used to identify this backend in the multi-backend registry. | 'default' |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
state ¶
state() -> str
Get the current state of the no-op execution backend.
Returns:
| Name | Type | Description |
|---|---|---|
str | str | Always returns 'IDLE' as this backend performs no actual work. |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
55 56 57 58 59 60 61 | |
task_state_cb ¶
task_state_cb(task: dict, state: str) -> None
Callback function invoked when a task's state changes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
task | dict | Dictionary containing task information and metadata. | required |
state | str | The new state of the task. | required |
Note
This is a no-op implementation that performs no actions.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
63 64 65 66 67 68 69 70 71 72 73 | |
get_task_states_map ¶
get_task_states_map() -> StateMapper
Retrieve a mapping of task IDs to their current states.
Returns:
| Name | Type | Description |
|---|---|---|
StateMapper | StateMapper | Object containing the mapping of task states for this backend. |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
75 76 77 78 79 80 81 | |
register_callback ¶
register_callback(func: Callable) -> None
Register a callback for task state changes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
func | Callable | Function to be called when task states change. Should accept task and state parameters. | required |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
83 84 85 86 87 88 89 90 | |
build_task ¶
build_task(uid: str, task_desc: dict, task_specific_kwargs: dict) -> None
Build or prepare a task for execution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
uid | str | Unique identifier for the task. | required |
task_desc | dict | Dictionary containing task description and metadata. | required |
task_specific_kwargs | dict | Backend-specific keyword arguments for the task. | required |
Note
This is a no-op implementation that performs no actual task building.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
92 93 94 95 96 97 98 99 100 101 102 103 | |
submit_tasks async ¶
submit_tasks(tasks: list) -> None
Submit tasks for mock execution.
Immediately marks all tasks as completed with dummy output without performing any actual computation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tasks | list | List of task dictionaries to be processed. Each task will receive dummy stdout and return_value before being marked as DONE. | required |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | |
link_explicit_data_deps ¶
link_explicit_data_deps(src_task: dict | None = None, dst_task: dict | None = None, file_name: str | None = None, file_path: str | None = None) -> None
Handle explicit data dependencies between tasks.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
src_task | dict | None | The source task that produces the dependency. | None |
dst_task | dict | None | The destination task that depends on the source. | None |
file_name | str | None | Name of the file that represents the dependency. | None |
file_path | str | None | Full path to the file that represents the dependency. | None |
Note
This is a no-op implementation as this backend doesn't handle dependencies.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | |
link_implicit_data_deps ¶
link_implicit_data_deps(src_task: dict, dst_task: dict) -> None
Handle implicit data dependencies for a task.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
src_task | dict | The source task that produces data. | required |
dst_task | dict | The destination task that depends on the source task's output. | required |
Note
This is a no-op implementation as this backend doesn't handle dependencies.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
147 148 149 150 151 152 153 154 155 156 157 | |
shutdown async ¶
shutdown() -> None
Shutdown the no-op execution backend.
Performs cleanup operations. Since this is a no-op backend, no actual resources need to be cleaned up.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
159 160 161 162 163 164 165 | |
LocalExecutionBackend ¶
LocalExecutionBackend(executor: Executor = None, name: str = 'default')
Simple async-only concurrent execution backend.
Attributes:
| Name | Type | Description |
|---|---|---|
_work_dir | str | Output directory for capture_stdio files. Defaults to cwd; overwritten by WorkflowEngine._attach_backend. |
is_attached | bool | True once registered with a WorkflowEngine or Session. |
attached_to | list[str] | Ordered list of engine/session UIDs this backend has been attached to (most recent last). |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | |
__await__ ¶
__await__()
Make backend awaitable.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
205 206 207 | |
register_callback ¶
register_callback(func: Callable) -> None
Register a callback for task state changes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
func | Callable | Function to be called when task states change. Should accept task and state parameters. | required |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
239 240 241 242 243 244 245 246 | |
submit_tasks async ¶
submit_tasks(tasks: list[dict[str, Any]]) -> list[Task]
Submit tasks for execution.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
357 358 359 360 361 362 363 364 365 366 367 368 369 | |
cancel_task async ¶
cancel_task(uid: str) -> bool
Cancel a task by its UID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
uid | str | The UID of the task to cancel. | required |
Returns:
| Name | Type | Description |
|---|---|---|
bool | bool | True if the task was found and cancellation was attempted, False otherwise. |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 | |
cancel_all_tasks async ¶
cancel_all_tasks() -> int
Cancel all running tasks.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
390 391 392 393 394 395 396 397 398 | |
shutdown async ¶
shutdown() -> None
Shutdown the executor.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
400 401 402 403 404 405 | |
state ¶
state() -> str
Get backend state.
Returns:
| Name | Type | Description |
|---|---|---|
str | str | Current backend state (INITIALIZED, RUNNING, SHUTDOWN) |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
422 423 424 425 426 427 428 | |
__aenter__ async ¶
__aenter__()
Async context manager entry.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
433 434 435 436 437 | |
__aexit__ async ¶
__aexit__(exc_type, exc_val, exc_tb)
Async context manager exit.
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
439 440 441 | |
create async classmethod ¶
create(executor: Executor) -> LocalExecutionBackend
Alternative factory method for creating initialized backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
executor | Executor | A concurrent.Executor instance (ThreadPoolExecutor or ProcessPoolExecutor). | required |
Returns:
| Type | Description |
|---|---|
LocalExecutionBackend | Fully initialized LocalExecutionBackend instance. |
Source code in doc_env/lib/python3.14/site-packages/radical/asyncflow/backends.py
443 444 445 446 447 448 449 450 451 452 453 454 455 | |