|
22 | 22 | execute queue entries in a hierarchical manner. |
23 | 23 | """ |
24 | 24 |
|
| 25 | +from __future__ import annotations |
25 | 26 | import copy |
26 | 27 | import logging |
27 | 28 | import sys |
|
32 | 33 | from enum import Enum |
33 | 34 |
|
34 | 35 | import gevent |
35 | | -from mxlims.pydantic.messages import JobMessage |
| 36 | +from typing import Optional, TYPE_CHECKING |
36 | 37 |
|
37 | 38 | from mxcubecore import HardwareRepository as HWR |
38 | 39 | from mxcubecore.HardwareObjects import autoprocessing |
|
42 | 43 | EXPERIMENT_TYPE, |
43 | 44 | ) |
44 | 45 | from mxcubecore.utils import mxlims as mxutils |
| 46 | +if TYPE_CHECKING: |
| 47 | + from mxlims.pydantic.objects.MxExperiment import MxExperiment |
45 | 48 |
|
46 | 49 | __credits__ = ["MXCuBE collaboration"] |
47 | 50 | __license__ = "LGPLv3+" |
@@ -262,7 +265,7 @@ def __init__(self, view=None, data_model=None, view_set_queue_entry=True): |
262 | 265 | self._data_model.lims_session_id = HWR.beamline.session.session_id |
263 | 266 |
|
264 | 267 | # MXLIMS record for currently running experiment |
265 | | - self._mxlims_record: Optional[JobMessage.JobMessage] = None |
| 268 | + self._mxlims_job: Optional[MxExperiment] = None |
266 | 269 |
|
267 | 270 | def is_failed(self): |
268 | 271 | """Returns True if failed""" |
@@ -336,13 +339,13 @@ def set_enabled(self, state): |
336 | 339 | """ |
337 | 340 | self._checked_for_exec = state |
338 | 341 |
|
339 | | - def get_mxlims_record(self) -> JobMessage.JobMessage: |
| 342 | + def get_mxlims_job(self) -> Optional[MxExperiment]: |
340 | 343 | """Get MxExperiment MXLIMS record if the entry is currently running""" |
341 | 344 | obj = self |
342 | 345 | result = None |
343 | 346 | container = obj.get_container() |
344 | 347 | while result is None and container is not None: |
345 | | - result = obj._mxlims_record |
| 348 | + result = obj._mxlims_job |
346 | 349 | obj = container |
347 | 350 | container = obj.get_container() |
348 | 351 | return result |
@@ -384,13 +387,11 @@ def post_execute(self): |
384 | 387 | self.get_data_model().set_enabled(False) |
385 | 388 | self.set_enabled(False) |
386 | 389 |
|
387 | | - mxlims_record = self._mxlims_record |
388 | | - if mxlims_record is not None: |
389 | | - self._mxlims_record = None |
390 | | - mxlims_record.job.end_time = datetime.now() |
391 | | - mxutils.export_mxrecord( |
392 | | - mxlims_record, None, |
393 | | - ) |
| 390 | + mxlims_job = self._mxlims_job |
| 391 | + if mxlims_job is not None: |
| 392 | + self._mxlims_job = None |
| 393 | + mxlims_job.end_time = datetime.now() |
| 394 | + mxutils.export_mxjob(mxlims_job, None,) |
394 | 395 |
|
395 | 396 | # self._set_background_color() |
396 | 397 |
|
|
0 commit comments