Skip to content

Commit

Permalink
remove RunPlan class that wraps Task
Browse files Browse the repository at this point in the history
  • Loading branch information
stan-dot committed Mar 6, 2024
1 parent 6e85e3d commit 4d5769a
Show file tree
Hide file tree
Showing 12 changed files with 132 additions and 143 deletions.
203 changes: 102 additions & 101 deletions docs/user/reference/openapi.yaml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/blueapi/cli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
print_schema_as_yaml,
write_schema_as_yaml,
)
from blueapi.worker import ProgressEvent, RunPlan, WorkerEvent, WorkerState
from blueapi.worker import ProgressEvent, Task, WorkerEvent, WorkerState

from .rest import BlueapiRestClient

Expand Down Expand Up @@ -182,7 +182,7 @@ def store_finished_event(event: WorkerEvent) -> None:
finished_event.append(event)

parameters = parameters or "{}"
task = RunPlan(name=name, params=json.loads(parameters))
task = Task(name=name, params=json.loads(parameters))

resp = client.create_task(task)
task_id = resp.task_id
Expand Down
8 changes: 4 additions & 4 deletions src/blueapi/cli/rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
TaskResponse,
WorkerTask,
)
from blueapi.worker import RunPlan, TrackableTask, WorkerState
from blueapi.worker import Task, TrackableTask, WorkerState

from .amq import BlueskyRemoteError

Expand Down Expand Up @@ -56,15 +56,15 @@ def set_state(
data={"new_state": state, "defer": defer},
)

def get_task(self, task_id: str) -> TrackableTask[RunPlan]:
def get_task(self, task_id: str) -> TrackableTask[Task]:
return self._request_and_deserialize(
f"/tasks/{task_id}", TrackableTask[RunPlan]
f"/tasks/{task_id}", TrackableTask[Task]
)

def get_active_task(self) -> WorkerTask:
return self._request_and_deserialize("/worker/task", WorkerTask)

def create_task(self, task: RunPlan) -> TaskResponse:
def create_task(self, task: Task) -> TaskResponse:
return self._request_and_deserialize(
"/tasks",
TaskResponse,
Expand Down
4 changes: 2 additions & 2 deletions src/blueapi/service/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from blueapi.service.model import DeviceModel, PlanModel, WorkerTask
from blueapi.worker.event import WorkerState
from blueapi.worker.reworker import RunEngineWorker
from blueapi.worker.task import RunPlan
from blueapi.worker.task import Task
from blueapi.worker.worker import TrackableTask, Worker

LOGGER = logging.getLogger(__name__)
Expand Down Expand Up @@ -102,7 +102,7 @@ def devices(self) -> List[DeviceModel]:
def get_device(self, name: str) -> DeviceModel:
return DeviceModel.from_device(self._context.devices[name])

def submit_task(self, task: RunPlan) -> str:
def submit_task(self, task: Task) -> str:
return self._worker.submit_task(task)

def clear_pending_task(self, task_id: str) -> str:
Expand Down
4 changes: 2 additions & 2 deletions src/blueapi/service/handler_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from blueapi.service.model import DeviceModel, PlanModel, WorkerTask
from blueapi.worker.event import WorkerState
from blueapi.worker.task import RunPlan
from blueapi.worker.task import Task
from blueapi.worker.worker import TrackableTask


Expand Down Expand Up @@ -37,7 +37,7 @@ def get_device(self, name: str) -> DeviceModel:
"""

@abstractmethod
def submit_task(self, task: RunPlan) -> str:
def submit_task(self, task: Task) -> str:
"""
Submit a task to be run on begin_task
"""
Expand Down
6 changes: 3 additions & 3 deletions src/blueapi/service/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from super_state_machine.errors import TransitionError

from blueapi.config import ApplicationConfig
from blueapi.worker import RunPlan, TrackableTask, WorkerState
from blueapi.worker import Task, TrackableTask, WorkerState

from .handler_base import BlueskyHandler
from .model import (
Expand Down Expand Up @@ -141,8 +141,8 @@ def get_device_by_name(name: str, handler: BlueskyHandler = Depends(get_handler)
def submit_task(
request: Request,
response: Response,
task: RunPlan = Body(
..., example=RunPlan(name="count", params={"detectors": ["x"]})
task: Task = Body(
..., example=Task(name="count", params={"detectors": ["x"]})
),
handler: BlueskyHandler = Depends(get_handler),
):
Expand Down
6 changes: 3 additions & 3 deletions src/blueapi/service/subprocess_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from blueapi.service.handler_base import BlueskyHandler, HandlerNotStartedError
from blueapi.service.model import DeviceModel, PlanModel, WorkerTask
from blueapi.worker.event import WorkerState
from blueapi.worker.task import RunPlan
from blueapi.worker.task import Task
from blueapi.worker.worker import TrackableTask

set_start_method("spawn", force=True)
Expand Down Expand Up @@ -78,7 +78,7 @@ def devices(self) -> List[DeviceModel]:
def get_device(self, name: str) -> DeviceModel:
return self._run_in_subprocess(get_device, [name])

def submit_task(self, task: RunPlan) -> str:
def submit_task(self, task: Task) -> str:
return self._run_in_subprocess(submit_task, [task])

def clear_pending_task(self, task_id: str) -> str:
Expand Down Expand Up @@ -135,7 +135,7 @@ def get_device(name: str) -> DeviceModel:
return get_handler().get_device(name)


def submit_task(task: RunPlan) -> str:
def submit_task(task: Task) -> str:
return get_handler().submit_task(task)


Expand Down
3 changes: 1 addition & 2 deletions src/blueapi/worker/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from .event import ProgressEvent, StatusView, TaskStatus, WorkerEvent, WorkerState
from .multithread import run_worker_in_own_thread
from .reworker import RunEngineWorker
from .task import RunPlan, Task
from .task import Task
from .worker import TrackableTask, Worker
from .worker_busy_error import WorkerBusyError

Expand All @@ -10,7 +10,6 @@
"RunEngineWorker",
"Task",
"Worker",
"RunPlan",
"WorkerEvent",
"WorkerState",
"StatusView",
Expand Down
10 changes: 0 additions & 10 deletions src/blueapi/worker/task.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,6 @@ def do_task(self, ctx: BlueskyContext) -> None:
ctx.run_engine(wrapped_plan_generator)


# Here for backward compatibility pending
# https://github.com/DiamondLightSource/blueapi/issues/253
class RunPlan(Task):
"""
Task that will run a plan
"""

...


def _lookup_params(ctx: BlueskyContext, task: Task) -> BaseModel:
"""
Checks plan parameters against context
Expand Down
4 changes: 2 additions & 2 deletions tests/service/test_rest_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
from blueapi.service.handler import Handler
from blueapi.service.main import get_handler, setup_handler, teardown_handler
from blueapi.service.model import WorkerTask
from blueapi.worker.task import RunPlan
from blueapi.worker.task import Task
from src.blueapi.worker import WorkerState

_TASK = RunPlan(name="count", params={"detectors": ["x"]})
_TASK = Task(name="count", params={"detectors": ["x"]})


def test_get_plans(handler: Handler, client: TestClient) -> None:
Expand Down
10 changes: 5 additions & 5 deletions tests/service/test_subprocess_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from blueapi.service.model import DeviceModel, PlanModel, WorkerTask
from blueapi.service.subprocess_handler import SubprocessHandler
from blueapi.worker.event import WorkerState
from blueapi.worker.task import RunPlan
from blueapi.worker.task import Task
from blueapi.worker.worker import TrackableTask


Expand Down Expand Up @@ -63,7 +63,7 @@ def devices(self) -> List[DeviceModel]:
def get_device(self, name: str) -> DeviceModel:
return DeviceModel(name="device1", protocols=[])

def submit_task(self, task: RunPlan) -> str:
def submit_task(self, task: Task) -> str:
return "0"

def clear_pending_task(self, task_id: str) -> str:
Expand All @@ -90,7 +90,7 @@ def cancel_active_task(self, failure: bool, reason: Optional[str]) -> None: ...
def pending_tasks(self) -> List[TrackableTask]:
return [
TrackableTask(
task_id="abc", task=RunPlan(name="sleep", params={"time": 0.0})
task_id="abc", task=Task(name="sleep", params={"time": 0.0})
)
]

Expand Down Expand Up @@ -137,8 +137,8 @@ def run_in_same_process(func, args=None):
assert sp_handler.get_device("name") == dummy_handler.get_device("name")

assert sp_handler.submit_task(
RunPlan(name="sleep", params={"time": 0.0})
) == dummy_handler.submit_task(RunPlan(name="sleep", params={"time": 0.0}))
Task(name="sleep", params={"time": 0.0})
) == dummy_handler.submit_task(Task(name="sleep", params={"time": 0.0}))

assert sp_handler.clear_pending_task("task_id") == dummy_handler.clear_pending_task(
"task_id"
Expand Down
13 changes: 6 additions & 7 deletions tests/worker/test_reworker.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
from blueapi.worker import (
ProgressEvent,
RunEngineWorker,
RunPlan,
Task,
TaskStatus,
TrackableTask,
Expand All @@ -21,13 +20,13 @@
WorkerState,
)

_SIMPLE_TASK = RunPlan(name="sleep", params={"time": 0.0})
_LONG_TASK = RunPlan(name="sleep", params={"time": 1.0})
_INDEFINITE_TASK = RunPlan(
_SIMPLE_TASK = Task(name="sleep", params={"time": 0.0})
_LONG_TASK = Task(name="sleep", params={"time": 1.0})
_INDEFINITE_TASK = Task(
name="set_absolute",
params={"movable": "fake_device", "value": 4.0},
)
_FAILING_TASK = RunPlan(name="failing_plan", params={})
_FAILING_TASK = Task(name="failing_plan", params={})


class FakeDevice:
Expand Down Expand Up @@ -259,7 +258,7 @@ def test_no_additional_progress_events_after_complete(worker: Worker):
progress_events: List[ProgressEvent] = []
worker.progress_events.subscribe(lambda event, id: progress_events.append(event))

task: Task = RunPlan(
task: Task = Task(
name="move", params={"moves": {"additional_status_device": 5.0}}
)
task_id = worker.submit_task(task)
Expand Down Expand Up @@ -344,7 +343,7 @@ def test_worker_and_data_events_produce_in_order(worker: Worker) -> None:
def assert_running_count_plan_produces_ordered_worker_and_data_events(
expected_events: List[Union[WorkerEvent, DataEvent]],
worker: Worker,
task: Task = RunPlan(name="count", params={"detectors": ["image_det"], "num": 1}),
task: Task = Task(name="count", params={"detectors": ["image_det"], "num": 1}),
timeout: float = 5.0,
) -> None:
event_streams: List[EventStream[Any, int]] = [
Expand Down

0 comments on commit 4d5769a

Please sign in to comment.