mx-bluesky 1.5.4__py3-none-any.whl → 1.5.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. mx_bluesky/_version.py +2 -2
  2. mx_bluesky/beamlines/i04/__init__.py +6 -1
  3. mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +2 -3
  4. mx_bluesky/beamlines/i04/thawing_plan.py +173 -59
  5. mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +1 -1
  6. mx_bluesky/beamlines/i24/serial/dcid.py +4 -25
  7. mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +4 -7
  8. mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +5 -5
  9. mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +18 -107
  10. mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +1 -1
  11. mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +1 -4
  12. mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +13 -13
  13. mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +8 -8
  14. mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +7 -7
  15. mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +8 -92
  16. mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +2 -18
  17. mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -2
  18. mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +1 -6
  19. mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +3 -3
  20. mx_bluesky/beamlines/i24/serial/run_extruder.sh +15 -0
  21. mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +17 -0
  22. mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +1 -1
  23. mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +1 -2
  24. mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -25
  25. mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +1 -30
  26. mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -94
  27. mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +4 -10
  28. mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +12 -20
  29. mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +4 -13
  30. mx_bluesky/beamlines/i24/serial/write_nexus.py +34 -9
  31. mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +1 -1
  32. mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +2 -2
  33. mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +2 -2
  34. mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +2 -2
  35. mx_bluesky/hyperion/baton_handler.py +41 -4
  36. mx_bluesky/hyperion/external_interaction/alerting/constants.py +2 -7
  37. mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +2 -2
  38. {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/METADATA +2 -2
  39. {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/RECORD +43 -43
  40. {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/WHEEL +0 -0
  41. {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/entry_points.txt +0 -0
  42. {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/licenses/LICENSE +0 -0
  43. {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/top_level.txt +0 -0
@@ -24,7 +24,7 @@ from mx_bluesky.beamlines.i24.serial.log import SSX_LOGGER
24
24
 
25
25
  # Detector specific outs
26
26
  TTL_EIGER = 1
27
- TTL_PILATUS = 2
27
+ TTL_LASER = 2
28
28
  TTL_FAST_SHUTTER = 4
29
29
 
30
30
  SHUTTER_MODE = {
@@ -171,12 +171,11 @@ def setup_zebra_for_extruder_with_pump_probe_plan(
171
171
 
172
172
  For this use case, both the laser and detector set up is taken care of by the Zebra.
173
173
  WARNING. This means that some hardware changes have been made.
174
- Because all four of the zebra ttl outputs are in use in this mode, when the \
175
- detector in use is the Eiger, the Pilatus cable is repurposed to trigger the light \
176
- source, and viceversa.
174
+ All four of the zebra ttl outputs are in use in this mode. When the \
175
+ detector in use is the Eiger, the previous Pilatus cable is repurposed to trigger \
176
+ the light source.
177
177
 
178
- The data collection output is OUT1_TTL for Eiger and OUT2_TTL for Pilatus and \
179
- should be set to AND3.
178
+ The data collection output is OUT1_TTL for Eiger and should be set to AND3.
180
179
 
181
180
  Position compare settings:
182
181
  - The gate input is on SOFT_IN2.
@@ -191,7 +190,7 @@ def setup_zebra_for_extruder_with_pump_probe_plan(
191
190
 
192
191
  Args:
193
192
  zebra (Zebra): The zebra ophyd device.
194
- det_type (str): Detector in use, current choices are Eiger or Pilatus.
193
+ det_type (str): Detector in use.
195
194
  exp_time (float): Collection exposure time, in s.
196
195
  num_images (int): Number of images to be collected.
197
196
  pump_exp (float): Laser dwell, in s.
@@ -210,8 +209,8 @@ def setup_zebra_for_extruder_with_pump_probe_plan(
210
209
  yield from set_logic_gates_for_porto_triggering(zebra)
211
210
 
212
211
  # Set TTL out depending on detector type
213
- DET_TTL = TTL_EIGER if det_type == "eiger" else TTL_PILATUS
214
- LASER_TTL = TTL_PILATUS if det_type == "eiger" else TTL_EIGER
212
+ DET_TTL = TTL_EIGER
213
+ LASER_TTL = TTL_LASER # may change with additional detectors
215
214
  yield from bps.abs_set(
216
215
  zebra.output.out_pvs[DET_TTL], zebra.mapping.sources.AND4, group=group
217
216
  )
@@ -281,8 +280,7 @@ def setup_zebra_for_fastchip_plan(
281
280
 
282
281
  For this use case, the laser set up is taken care of by the geobrick, leaving only \
283
282
  the detector side set up to the Zebra.
284
- The data collection output is OUT1_TTL for Eiger and OUT2_TTL for Pilatus and \
285
- should be set to AND3.
283
+ The data collection output is OUT1_TTL for Eiger and should be set to AND3.
286
284
 
287
285
  Position compare settings:
288
286
  - The gate input is on IN3_TTL.
@@ -291,16 +289,14 @@ def setup_zebra_for_fastchip_plan(
291
289
  - Trigger source set to the exposure time with a 100us buffer in order to \
292
290
  avoid missing any triggers.
293
291
  - The trigger width is calculated depending on which detector is in use: the \
294
- Pilatus only needs the trigger rising edge to collect for a set time, while \
295
- the Eiger (used here in Externally Interrupter Exposure Series mode) \
292
+ Eiger (used here in Externally Interrupter Exposure Series mode) \
296
293
  will only collect while the signal is high and will stop once a falling \
297
294
  edge is detected. For this reason a square wave pulse width will be set to \
298
- half the exposure time in the Pilatus case, and to the exposure time minus \
299
- a small drop (~100um) for the Eiger.
295
+ the exposure time minus a small drop (~100um) for the Eiger.
300
296
 
301
297
  Args:
302
298
  zebra (Zebra): The zebra ophyd device.
303
- det_type (str): Detector in use, current choices are Eiger or Pilatus.
299
+ det_type (str): Detector in use.
304
300
  num_gates (int): Number of apertures to visit in a chip.
305
301
  num_exposures (int): Number of times data is collected in each aperture.
306
302
  exposure_time_s (float): Exposure time for each shot.
@@ -335,10 +331,6 @@ def setup_zebra_for_fastchip_plan(
335
331
  yield from bps.abs_set(
336
332
  zebra.output.out_pvs[TTL_EIGER], zebra.mapping.sources.AND3, group=group
337
333
  )
338
- if det_type == "pilatus":
339
- yield from bps.abs_set(
340
- zebra.output.out_pvs[TTL_PILATUS], zebra.mapping.sources.AND3, group=group
341
- )
342
334
 
343
335
  # Square wave - needs a small drop to make it work for eiger
344
336
  pulse_width = (
@@ -13,7 +13,6 @@ from dodal.devices.i24.beamstop import Beamstop
13
13
  from dodal.devices.i24.dcm import DCM
14
14
  from dodal.devices.i24.dual_backlight import BacklightPositions, DualBacklight
15
15
  from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
16
- from dodal.devices.i24.pilatus_metadata import PilatusMetadata
17
16
  from dodal.devices.i24.pmac import PMAC
18
17
  from dodal.devices.motors import YZStage
19
18
  from dodal.devices.oav.oav_detector import OAVBeamCentreFile
@@ -39,14 +38,13 @@ from mx_bluesky.beamlines.i24.serial.log import (
39
38
  _read_visit_directory_from_file,
40
39
  )
41
40
  from mx_bluesky.beamlines.i24.serial.parameters import (
42
- DetectorName,
43
41
  FixedTargetParameters,
44
42
  get_chip_format,
45
43
  )
46
44
  from mx_bluesky.beamlines.i24.serial.parameters.utils import EmptyMapError
47
45
  from mx_bluesky.beamlines.i24.serial.setup_beamline import pv
48
46
  from mx_bluesky.beamlines.i24.serial.setup_beamline.ca import caput
49
- from mx_bluesky.beamlines.i24.serial.setup_beamline.pv_abstract import Eiger, Pilatus
47
+ from mx_bluesky.beamlines.i24.serial.setup_beamline.pv_abstract import Eiger
50
48
  from mx_bluesky.beamlines.i24.serial.setup_beamline.setup_detector import (
51
49
  _move_detector_stage,
52
50
  get_detector_type,
@@ -103,10 +101,10 @@ def gui_sleep(sec: int) -> MsgGenerator:
103
101
 
104
102
  @bpp.run_decorator()
105
103
  def gui_move_detector(
106
- det: Literal["eiger", "pilatus"],
104
+ det: Literal["eiger"],
107
105
  detector_stage: YZStage = inject("detector_motion"),
108
106
  ) -> MsgGenerator:
109
- det_y_target = Eiger.det_y_target if det == "eiger" else Pilatus.det_y_target
107
+ det_y_target = Eiger.det_y_target
110
108
  yield from _move_detector_stage(detector_stage, det_y_target)
111
109
  # Make the output readable
112
110
  SSX_LOGGER.debug(f"Detector move done, resetting general PV to {det}")
@@ -138,9 +136,7 @@ def gui_run_chip_collection(
138
136
  shutter: HutchShutter = inject("shutter"),
139
137
  dcm: DCM = inject("dcm"),
140
138
  mirrors: FocusMirrorsMode = inject("focus_mirrors"),
141
- beam_center_pilatus: DetectorBeamCenter = inject("pilatus_bc"),
142
139
  beam_center_eiger: DetectorBeamCenter = inject("eiger_bc"),
143
- pilatus_metadata: PilatusMetadata = inject("pilatus_meta"),
144
140
  ) -> MsgGenerator:
145
141
  """Set the parameter model for the data collection.
146
142
 
@@ -210,11 +206,7 @@ def gui_run_chip_collection(
210
206
  if parameters.chip_map:
211
207
  yield from upload_chip_map_to_geobrick(pmac, parameters.chip_map)
212
208
 
213
- beam_center_device = (
214
- beam_center_eiger
215
- if parameters.detector_name is DetectorName.EIGER
216
- else beam_center_pilatus
217
- )
209
+ beam_center_device = beam_center_eiger
218
210
  SSX_LOGGER.info("Beam center device ready")
219
211
 
220
212
  # DCID instance - do not create yet
@@ -234,5 +226,4 @@ def gui_run_chip_collection(
234
226
  beam_center_device,
235
227
  parameters,
236
228
  dcid,
237
- pilatus_metadata,
238
229
  )
@@ -35,8 +35,9 @@ def call_nexgen(
35
35
  start_time (datetime): Collection start time.
36
36
 
37
37
  Raises:
38
- ValueError: For a wrong experiment type passed (either unknwon or not matched \
38
+ ValueError: For a wrong experiment type passed (either unknown or not matched \
39
39
  to parameter model).
40
+ HTTPError: For a problem with reponse from server
40
41
 
41
42
  """
42
43
  current_chip_map = None
@@ -75,10 +76,6 @@ def call_nexgen(
75
76
  f"Call to nexgen server with the following chip definition: \n{chip_prog_dict}"
76
77
  )
77
78
 
78
- access_token = pathlib.Path("/scratch/ssx_nexgen.key").read_text().strip()
79
- url = "https://ssx-nexgen.diamond.ac.uk/ssx_eiger/write"
80
- headers = {"Authorization": f"Bearer {access_token}"}
81
-
82
79
  payload = {
83
80
  "beamline": "i24",
84
81
  "beam_center": beam_center_in_pix,
@@ -98,8 +95,36 @@ def call_nexgen(
98
95
  "bit_depth": bit_depth,
99
96
  "start_time": start_time.isoformat(),
100
97
  }
101
- SSX_LOGGER.info(f"Sending POST request to {url} with payload:")
102
- SSX_LOGGER.info(pprint.pformat(payload))
103
- response = requests.post(url, headers=headers, json=payload)
104
- response.raise_for_status()
98
+ submit_to_server(payload)
99
+
100
+
101
+ def submit_to_server(
102
+ payload: dict | None,
103
+ ):
104
+ """Submit the payload to nexgen-server.
105
+
106
+ Args:
107
+ payload (dict): Dictionary of parameters to send to nex-gen server
108
+
109
+ Raises:
110
+ ValueError: For a wrong experiment type passed (either unknown or not matched \
111
+ to parameter model).
112
+ HTTPError: For a problem with reponse from server
113
+
114
+ """
115
+ access_token = pathlib.Path("/scratch/ssx_nexgen.key").read_text().strip()
116
+ url = "https://ssx-nexgen.diamond.ac.uk/ssx_eiger/write"
117
+ headers = {"Authorization": f"Bearer {access_token}"}
118
+
119
+ try:
120
+ SSX_LOGGER.info(f"Sending POST request to {url} with payload:")
121
+ SSX_LOGGER.info(pprint.pformat(payload))
122
+ response = requests.post(url, headers=headers, json=payload)
123
+ response.raise_for_status()
124
+ except requests.HTTPError as e:
125
+ SSX_LOGGER.error(f"Nexus writer failed. Reason from server {e}")
126
+ raise
127
+ except Exception as e:
128
+ SSX_LOGGER.exception(f"Error generating nexus file: {e}")
129
+ raise
105
130
  SSX_LOGGER.info(f"Response: {response.text} (status code: {response.status_code})")
@@ -186,7 +186,7 @@ class BaseISPyBCallback(PlanReactiveCallback):
186
186
  pass
187
187
 
188
188
  def activity_gated_stop(self, doc: RunStop) -> RunStop:
189
- """Subclasses must check that they are recieving a stop document for the correct
189
+ """Subclasses must check that they are receiving a stop document for the correct
190
190
  uid to use this method!"""
191
191
  assert self.ispyb is not None, (
192
192
  "ISPyB handler received stop document, but deposition object doesn't exist!"
@@ -24,8 +24,8 @@ class PlanReactiveCallback(CallbackBase):
24
24
  metadata to trigger this.
25
25
  The run_decorator of the plan should include in its metadata dictionary the key
26
26
  'activate callbacks', with a list of strings of the callback class(es) to
27
- activate or deactivate. On a recieving a start doc which specifies this, this
28
- class will be activated, and on recieving the stop document for the
27
+ activate or deactivate. On a receiving a start doc which specifies this, this
28
+ class will be activated, and on receiving the stop document for the
29
29
  corresponding uid it will deactivate. The ordinary 'start', 'descriptor',
30
30
  'event' and 'stop' methods will be triggered as normal, and will in turn trigger
31
31
  'activity_gated_' methods - to preserve this functionality, subclasses which
@@ -69,8 +69,8 @@ ispyb_activation_decorator = make_decorator(ispyb_activation_wrapper)
69
69
  class GridscanISPyBCallback(BaseISPyBCallback):
70
70
  """Callback class to handle the deposition of experiment parameters into the ISPyB
71
71
  database. Listens for 'event' and 'descriptor' documents. Creates the ISpyB entry on
72
- recieving an 'event' document for the 'ispyb_reading_hardware' event, and updates the
73
- deposition on recieving its final 'stop' document.
72
+ receiving an 'event' document for the 'ispyb_reading_hardware' event, and updates the
73
+ deposition on receiving its final 'stop' document.
74
74
 
75
75
  To use, subscribe the Bluesky RunEngine to an instance of this class.
76
76
  E.g.:
@@ -24,10 +24,10 @@ T = TypeVar("T", bound="SpecifiedThreeDGridScan")
24
24
 
25
25
  class GridscanNexusFileCallback(PlanReactiveCallback):
26
26
  """Callback class to handle the creation of Nexus files based on experiment \
27
- parameters. Initialises on recieving a 'start' document for the \
27
+ parameters. Initialises on receiving a 'start' document for the \
28
28
  'run_gridscan_move_and_tidy' sub plan, which must also contain the run parameters, \
29
29
  as metadata under the 'hyperion_internal_parameters' key. Actually writes the \
30
- nexus files on updates the timestamps on recieving the 'ispyb_reading_hardware' event \
30
+ nexus files on updates the timestamps on receiving the 'ispyb_reading_hardware' event \
31
31
  document, and finalises the files on getting a 'stop' document for the whole run.
32
32
 
33
33
  To use, subscribe the Bluesky RunEngine to an instance of this class.
@@ -12,6 +12,10 @@ from mx_bluesky.common.experiment_plans.inner_plans.udc_default_state import (
12
12
  UDCDefaultDevices,
13
13
  move_to_udc_default_state,
14
14
  )
15
+ from mx_bluesky.common.external_interaction.alerting import (
16
+ AlertService,
17
+ get_alerting_service,
18
+ )
15
19
  from mx_bluesky.common.parameters.components import MxBlueskyParameters
16
20
  from mx_bluesky.common.utils.context import (
17
21
  device_composite_from_context,
@@ -25,6 +29,7 @@ from mx_bluesky.hyperion.experiment_plans.load_centre_collect_full_plan import (
25
29
  from mx_bluesky.hyperion.external_interaction.agamemnon import (
26
30
  create_parameters_from_agamemnon,
27
31
  )
32
+ from mx_bluesky.hyperion.external_interaction.alerting.constants import Subjects
28
33
  from mx_bluesky.hyperion.parameters.components import Wait
29
34
  from mx_bluesky.hyperion.parameters.load_centre_collect import LoadCentreCollect
30
35
  from mx_bluesky.hyperion.plan_runner import PlanException, PlanRunner
@@ -86,6 +91,7 @@ def run_udc_when_requested(context: BlueskyContext, runner: PlanRunner):
86
91
  baton: The baton device
87
92
  runner: The runner
88
93
  """
94
+ _raise_udc_start_alert(get_alerting_service())
89
95
  yield from _move_to_udc_default_state(context)
90
96
 
91
97
  # re-fetch the baton because the device has been reinstantiated
@@ -97,8 +103,9 @@ def run_udc_when_requested(context: BlueskyContext, runner: PlanRunner):
97
103
  # If hyperion has given up the baton itself we need to also release requested
98
104
  # user so that hyperion doesn't think we're requested again
99
105
  baton = _get_baton(context)
100
- yield from _safely_release_baton(baton)
101
- yield from bps.abs_set(baton.current_user, NO_USER)
106
+ previous_requested_user = yield from _safely_release_baton(baton)
107
+ yield from bps.abs_set(baton.current_user, NO_USER, wait=True)
108
+ _raise_baton_released_alert(get_alerting_service(), previous_requested_user)
102
109
 
103
110
  def collect_then_release() -> MsgGenerator:
104
111
  yield from bpp.contingency_wrapper(collect(), final_plan=release_baton)
@@ -152,10 +159,34 @@ def _fetch_and_process_agamemnon_instruction(
152
159
  f"Unsupported instruction decoded from agamemnon {type(parameters)}"
153
160
  )
154
161
  else:
162
+ _raise_udc_completed_alert(get_alerting_service())
155
163
  # Release the baton for orderly exit from the instruction loop
156
164
  yield from _safely_release_baton(baton)
157
165
 
158
166
 
167
+ def _raise_udc_start_alert(alert_service: AlertService):
168
+ alert_service.raise_alert(
169
+ Subjects.UDC_STARTED, "Unattended Data Collection has started.", {}
170
+ )
171
+
172
+
173
+ def _raise_baton_released_alert(alert_service: AlertService, baton_requester: str):
174
+ alert_service.raise_alert(
175
+ Subjects.UDC_BATON_RELEASED,
176
+ f"Hyperion has released the baton. The baton is currently requested by:"
177
+ f" {baton_requester}",
178
+ {},
179
+ )
180
+
181
+
182
+ def _raise_udc_completed_alert(alert_service: AlertService):
183
+ alert_service.raise_alert(
184
+ Subjects.UDC_COMPLETED,
185
+ "Hyperion UDC has completed all pending Agamemnon requests.",
186
+ {},
187
+ )
188
+
189
+
159
190
  def _runner_sleep(parameters: Wait) -> MsgGenerator:
160
191
  yield from bps.sleep(parameters.duration_s)
161
192
 
@@ -174,9 +205,15 @@ def _get_baton(context: BlueskyContext) -> Baton:
174
205
  return find_device_in_context(context, "baton", Baton)
175
206
 
176
207
 
177
- def _safely_release_baton(baton: Baton) -> MsgGenerator:
208
+ def _safely_release_baton(baton: Baton) -> MsgGenerator[str]:
178
209
  """Relinquish the requested user of the baton if it is not already requested
179
- by another user."""
210
+ by another user.
211
+
212
+ Returns:
213
+ The previously requested user, or NO_USER if no user was already requested.
214
+ """
180
215
  requested_user = yield from bps.rd(baton.requested_user)
181
216
  if requested_user == HYPERION_USER:
182
217
  yield from bps.abs_set(baton.requested_user, NO_USER)
218
+ return NO_USER
219
+ return requested_user
@@ -3,10 +3,5 @@ from enum import StrEnum
3
3
 
4
4
  class Subjects(StrEnum):
5
5
  UDC_STARTED = "UDC Started"
6
- UDC_BATON_PASSED = "UDC Baton was passed"
7
- UDC_RESUMED_OPERATION = "UDC Resumed operation"
8
- UDC_SUSPENDED_OPERATION = "UDC Suspended operation"
9
- NEW_CONTAINER = "Hyperion is collecting from a new container"
10
- NEW_VISIT = "Hyperion has changed visit"
11
- SAMPLE_ERROR = "Hyperion has encountered a sample error"
12
- BEAMLINE_ERROR = "Hyperion has encountered a beamline error"
6
+ UDC_BATON_RELEASED = "UDC Baton was released"
7
+ UDC_COMPLETED = "UDC Completed"
@@ -34,8 +34,8 @@ if TYPE_CHECKING:
34
34
  class RotationISPyBCallback(BaseISPyBCallback):
35
35
  """Callback class to handle the deposition of experiment parameters into the ISPyB
36
36
  database. Listens for 'event' and 'descriptor' documents. Creates the ISpyB entry on
37
- recieving an 'event' document for the 'ispyb_reading_hardware' event, and updates the
38
- deposition on recieving its final 'stop' document.
37
+ receiving an 'event' document for the 'ispyb_reading_hardware' event, and updates the
38
+ deposition on receiving its final 'stop' document.
39
39
 
40
40
  To use, subscribe the Bluesky RunEngine to an instance of this class.
41
41
  E.g.:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.5.4
3
+ Version: 1.5.5
4
4
  Summary: Bluesky tools for MX Beamlines at DLS
5
5
  Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
6
6
  License: Apache License
@@ -241,7 +241,7 @@ Requires-Dist: blueapi>=0.15.0
241
241
  Requires-Dist: ophyd>=1.10.5
242
242
  Requires-Dist: ophyd-async>=0.10.0a2
243
243
  Requires-Dist: bluesky>=1.13.1
244
- Requires-Dist: dls-dodal==1.56.0
244
+ Requires-Dist: dls-dodal==1.57.0
245
245
  Provides-Extra: dev
246
246
  Requires-Dist: black; extra == "dev"
247
247
  Requires-Dist: build; extra == "dev"
@@ -1,6 +1,6 @@
1
1
  mx_bluesky/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
2
2
  mx_bluesky/__main__.py,sha256=RVqPnxDisFMIn_aoEi0drlThNHgKTJULnSrotouIKI0,480
3
- mx_bluesky/_version.py,sha256=TQ638IXExBmQw7TYhg38U9EqWyL55HeAbgpNZEAHABY,704
3
+ mx_bluesky/_version.py,sha256=-6ligW2dI8j2jxE-2b0-iN0QH0LgHVSboUTjBV5nIrc,704
4
4
  mx_bluesky/definitions.py,sha256=ULpEYAUzdQiEbBoTgYTMxfUf3DDDjhYtvDxofs7Qxqw,168
5
5
  mx_bluesky/jupyter_example.ipynb,sha256=wpwvPrBvwtRMS5AIFk8F54cIlUoD0o4ji8tKK5cZHA4,1672
6
6
  mx_bluesky/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -8,9 +8,9 @@ mx_bluesky/beamlines/aithre_lasershaping/__init__.py,sha256=rwbS3QJnC3nq-VKddgEa
8
8
  mx_bluesky/beamlines/aithre_lasershaping/beamline_safe.py,sha256=E7tNwX9LFPNfBCF1DpNNtWpchPkEvGP0nrrTq4t2s38,1927
9
9
  mx_bluesky/beamlines/aithre_lasershaping/check_goniometer_performance.py,sha256=AqWAFey_Ih1JcRxVNiZDGFsVg4kvA9LH2p5SJeXfe2I,834
10
10
  mx_bluesky/beamlines/aithre_lasershaping/goniometer_controls.py,sha256=1La4vJmQdKp3_Ib1DMgavJBdYLTxp7S7dEr_lqNknV0,1828
11
- mx_bluesky/beamlines/i04/__init__.py,sha256=-BuArzFeDA4T3QsT6TWrGnHk6ICX8gOVk_q8whBUt6Y,314
12
- mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py,sha256=T6K0LOwwGxB05YvS6FV-UU4O2N2GMQdEM2vj9BSow_U,6618
13
- mx_bluesky/beamlines/i04/thawing_plan.py,sha256=Ixa7ZrqgX-8pr1sNPu4Xk8zvSb7FpAULT4KR4IlPf5M,5064
11
+ mx_bluesky/beamlines/i04/__init__.py,sha256=DM5-pkoPb2jill-VmKdhEylsV1jryA92gygCIFSv3Fo,383
12
+ mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py,sha256=nqo_A7fAbI4NFWCznHgYV7LsfSLQm3Og0pNjzJjAVbI,6625
13
+ mx_bluesky/beamlines/i04/thawing_plan.py,sha256=HI1gT7zRGP_4iJlrI8aXgW_W0MPk6SrFwd2w1GRp2gQ,9453
14
14
  mx_bluesky/beamlines/i04/callbacks/murko_callback.py,sha256=C2KoIxwMIWxD46utmq1-69SIc8MspocXJ1sccO1lwAY,4458
15
15
  mx_bluesky/beamlines/i04/experiment_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py,sha256=G7FdRL4rzYNcOoTPKtZBK-FO5UpsK22QXxnA0bUW4GM,9111
@@ -18,56 +18,56 @@ mx_bluesky/beamlines/i23/__init__.py,sha256=7nwQiKBZAXLnvPhCqaI2VC1k4TOzQalOUvwF
18
18
  mx_bluesky/beamlines/i23/serial.py,sha256=XVbHM8NevnJMFAJD9jkxG-VnPaWX6t_k-wlipRw0pmY,2055
19
19
  mx_bluesky/beamlines/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  mx_bluesky/beamlines/i24/serial/__init__.py,sha256=r8v9V48TMrNxOcwBZ6lzeCCuPulq5rg8m-mwH_KkOnI,1533
21
- mx_bluesky/beamlines/i24/serial/blueapi_config.yaml,sha256=QqsOP_CfyIbf8HbGVdo2pYiVVVVgw5cFC3RFwsmT3t8,351
22
- mx_bluesky/beamlines/i24/serial/dcid.py,sha256=ab48UFmZT6Zuv9RNoqOLkmAgmaIr0G6UDjqr_bE0vF8,14564
21
+ mx_bluesky/beamlines/i24/serial/blueapi_config.yaml,sha256=P0saF1bqt4ANU-2mtS_ZHO4NYr_ierUJN-gf6cspic8,350
22
+ mx_bluesky/beamlines/i24/serial/dcid.py,sha256=7NkpMFF3obTVt0aHBbw5J7DqhOEg-zz5otNjdgDMlFg,13819
23
23
  mx_bluesky/beamlines/i24/serial/log.py,sha256=76-bKjjxLZEITTcALpvuwCy3KU5pTq0blnVFD9wT5cY,4798
24
- mx_bluesky/beamlines/i24/serial/run_extruder.sh,sha256=FXYsqdTpVgxB1-QrY4Tg5pl5Ex7PgUoXnuAcr9iDZTE,1078
25
- mx_bluesky/beamlines/i24/serial/run_fixed_target.sh,sha256=ZzxcVFoitBRvcqsJaBxjtepgkG-ZCGBW6X9xuV_Y478,1229
24
+ mx_bluesky/beamlines/i24/serial/run_extruder.sh,sha256=Dz3XLx0iPFxwo9KnG7oNBZFG19BGrb37O2w-ki_X9s4,1659
25
+ mx_bluesky/beamlines/i24/serial/run_fixed_target.sh,sha256=KnnDP8_i47c4nWAYqugT-j4H6lcujVitIFs7sz5GzDs,1840
26
26
  mx_bluesky/beamlines/i24/serial/run_serial.py,sha256=Zrudosavh2HnnBXd2CLtOPs3lyQFxaN8YyO_sradRGs,1511
27
27
  mx_bluesky/beamlines/i24/serial/run_ssx.sh,sha256=0Ir5iQQ-xSN_5teHtxzht6G-mJ08mE1gxBS32vkh1eM,714
28
- mx_bluesky/beamlines/i24/serial/set_visit_directory.sh,sha256=TBTamZvvCy44AiWcJeT_b1MmhTSYxx_1QjWXoIUId2E,1660
28
+ mx_bluesky/beamlines/i24/serial/set_visit_directory.sh,sha256=9W0ooseih2PszePztpBgLO6nqorjZCND2PbYRx5lHQ0,1660
29
29
  mx_bluesky/beamlines/i24/serial/start_blueapi.sh,sha256=4iBzQljTLXQiVIF4UO7drc9qUkP7KSRC6Mjh8hcGxpI,608
30
- mx_bluesky/beamlines/i24/serial/write_nexus.py,sha256=3qSjvH2_0WYPuX8nUaOdsec7kIUSW0xBhCFec2tv3WM,4018
30
+ mx_bluesky/beamlines/i24/serial/write_nexus.py,sha256=68NY1YCMXRPRSMgloydK3VlYNpDrRfRX7lSf0UdPSoE,4745
31
31
  mx_bluesky/beamlines/i24/serial/extruder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py,sha256=OddLUvKvKe_Sabl0uTKiAk7yB5qtnhWftZJlvepqRkk,19389
33
- mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl,sha256=Uqw7u7Lqn6SRZxOoo4E7XwEueTI0eXylXpgBL66DXrI,1974
34
- mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl,sha256=lRFa3LEIqc6Yar2XjCT3T1KKG9cHBW0AK96nsfss0bE,30896
32
+ mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py,sha256=MatP69ULm_jmU3RqLFrzrezxs48ZIovZOmnVb3TIyP0,15752
33
+ mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl,sha256=VqK_0EW_7H433nYLvprXvYRW-xWXWMF1dHqrKxQ0UOQ,1959
34
+ mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl,sha256=u0WFI9LwUAjMvhQuV0SRwHLpGKwqmz17D4YNUPfBwG8,31011
35
35
  mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl,sha256=K79vmGAcf9qVEQLXTgr0g4bZDWaJ7nFoK4e0Ex7qAwM,14690
36
36
  mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py,sha256=puO1vg0x-TPgv8FbEFg73ohJqbwDpcG50_2cLUTa2FA,1210
38
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py,sha256=aUwzEQAuib9V0AZsnnk34FhJ2IVi4XsPV5D2OnfySHk,25538
39
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py,sha256=aX5AhLdpyDOmWTBcXdvLBQYC6hqietkBgskZF1QnvXY,33110
38
+ mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py,sha256=1kdonHIO1Yu95_ZUsRrKtHobSLZsZ1s6X1R2DOgJIF0,22364
39
+ mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py,sha256=bITdIOSbWVTmkz5dgR7VxfEIxJ-gQ9COA7D9a_B0JFM,32480
40
40
  mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py,sha256=Vokr_Gl_lpqcUwG18C2h8TYMmyTx1HmUSDd9zgR9-7M,3275
41
41
  mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py,sha256=35F1WDm7OLDdBurSCtzqr5vhHb9D-6qzwtKB1NBpwdI,6602
42
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl,sha256=iqJ7SwC-ggVg2hLhQhq7m6g5_Gb92cwXnDqaKNsWbpQ,10348
43
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl,sha256=zZng3LAhMJAT-28tNCkauj6W2QngLZjHzUPuWk-732k,1977
44
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl,sha256=IsRIODMffqtV6bmIRf03cbnht1Qpyz3hNhCzB_hZclU,55873
42
+ mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl,sha256=gin-vnmzieyNIeyId0vrvXWqH3yG7VZIOaI9kjfyz2M,10371
43
+ mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl,sha256=3SHQayH1_v4-LYB8ihZRbLW1uGyP4UbtPObizxtcgrQ,1962
44
+ mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl,sha256=jkfrsWR7W_L-XYyt1SRUbbHj_RE09zKnkZiyUKprBB8,56149
45
45
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl,sha256=PRgDxOo46v_sGh1y0qqMDfPJKPDQnhKZzAUxCpffBF4,60868
46
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl,sha256=5zRxqpkhqaAQNWdKin4N_HNvWY2BsxOY13iM8mELvfM,38124
46
+ mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl,sha256=EMmIFa8WN2DtQv6Pbqw1d-U-9IRrECNHLrE__7nEKwo,38308
47
47
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl,sha256=qYlEGAmI_uKQNLDs0G2-WSQI4fby6FPW5WqV1kMZ4bA,1417
48
48
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl,sha256=WEOECG2qOaL1C9Y1VObeblm8J-BM9lR2ig_hmkAjheQ,1601
49
49
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl,sha256=8TWQTIBnX3OLa1kjsibsCnG5wCVotPYIOHwFam7rJe4,14679
50
50
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl,sha256=dYfGTJOKsiLuefZRKiqR-kJcnr0fGTgOsnHA7wooPQI,15711
51
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl,sha256=hklyJgaowyiiG0vJ5VHi94yNSvhmPMGQaZ-r8t89yL0,22639
51
+ mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl,sha256=5i8wl2qWOtuG3L5PFedOnthfahyfdlLTVycMuE00ikc,22800
52
52
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s1l.png,sha256=wDNuKCa_8hUPy4W01vdIrfdZtCyQKT8qVS5AS6kOTmo,9740
53
53
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/s2l.png,sha256=MrdiCFX7j-ODkfSdzc4NQ_8hj2Gs8i9gQqWyNXvdM5s,10189
54
54
  mx_bluesky/beamlines/i24/serial/parameters/__init__.py,sha256=fdXGnTxNRyWV1cqVv8lQmwhUpUWDoz_VIRlo6KGwvS4,615
55
- mx_bluesky/beamlines/i24/serial/parameters/constants.py,sha256=uJE3K7p1s8rXrgA0vH2JKrTaitH5ZDqLoSp_0ZmSCB4,1815
56
- mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py,sha256=n6nRgycKMp5GuxwNoU30CP9enW7vTtTKHKIcIOH9ABY,4879
55
+ mx_bluesky/beamlines/i24/serial/parameters/constants.py,sha256=qotJK7ZHidhJrqtIyNZ1JjiLlZfw9wPeR0W_9-mdQG8,1713
56
+ mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py,sha256=B7hWo-TrxJljja72yFAFG3IH2YJ-weScrFL82tlrzFA,4745
57
57
  mx_bluesky/beamlines/i24/serial/parameters/utils.py,sha256=Sbl4LhcZpbwBASvPMd0sEpW7HbJ0ZoUxPpRN4mNc4a0,4076
58
- mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json,sha256=xT3y7SSWjVTAJ58dzwNnEgBdn10A6T8umR18n5xt508,142
58
+ mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json,sha256=lOq6xOcDWbetmBlFIYVAHz5xk3Beutc13nsehG_YT9g,142
59
59
  mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/motor_direction.txt,sha256=oIPpcQpqCrKz5dPZ-qQ5gQ2Sdqtj6nsnf66pN8PGU50,199
60
60
  mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar,sha256=SN4deU199dMcA1Bcx1BF6CBMvoSszxJWZC6vt7_5fHc,284
61
61
  mx_bluesky/beamlines/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar,sha256=pZbFOEiN_S5yiTEtqdNHmTMtnQY-W2ImXVBYCovPCx0,1842
62
- mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py,sha256=UhBdMcPdJMzwV0d8DKOBzvYNd6TDSwcP9GJVqfGa7Jc,261
62
+ mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py,sha256=c1IO9b78eT78kpzsQFvPFVH1J-VTQNkVL8FXXhjoEkc,237
63
63
  mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py,sha256=H2gPmsLheYReFlGPFa5zzWbnyqdWbCmgKiAwcpVoYfk,1516
64
- mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py,sha256=6lbhRBL97UVPTosgOgLhHKLi1Vj5OJST-pPdgi0kakE,15784
65
- mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py,sha256=DVimjuvZYJoCaIswuO6YYVDtbLgZp33KQFmnlb9ngDY,1804
66
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py,sha256=6OiZep8qrDdE_QdKqdk_BBx2FK-Dd5OUwSQ1DxL4J9U,20951
67
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py,sha256=zooWiRnzzBiZLE3WvHQNH3oARUSaXqEV57Cs3WU5mfI,3169
68
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py,sha256=oRNZLA2uxiRM5eheAuRMM5eT0Oxe1YHqg59BHys3sXY,17970
64
+ mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py,sha256=rd0gBHVgmLiriLwuwDZ-e-iOF_NEUUYm2pczPFbZblw,14527
65
+ mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py,sha256=CajFVwebooEoSE1zAda_nSBqo9QJOXS9k6LRLsqhMEk,1036
66
+ mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py,sha256=DaSKNLg-r9g8HwAcgF60yMPurruSfdow4-EOGssXPBk,16813
67
+ mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py,sha256=owiaXdFubPhYuAsFOx4fqcwioqJPxyjraM4Tn3KvVf4,2916
68
+ mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py,sha256=ZjlThjbVNAJfZ4PX19PCWE1ZvVbMQqwcND6sE_mHri8,17458
69
69
  mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py,sha256=BN8dSYcMgUwSqaNK4sj_BkIisb-dMHtGMUE5zmRxNm4,8881
70
+ mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py,sha256=4Cn7B-ZaNdcBkpsBg3BNLaNW5YZ-YkTSiJ4iJV-k4Y8,8471
71
71
  mx_bluesky/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
72
  mx_bluesky/common/xrc_result.py,sha256=tUJ6qkDTTB6H1F71IvVAKtmHCRyHSU_tj9GRzVmnE7w,3219
73
73
  mx_bluesky/common/device_setup_plans/manipulate_sample.py,sha256=bM4D0ezAqCJqclN5-hIVUoN_X55F8Yiv_ap6_ChKCA0,3091
@@ -96,18 +96,18 @@ mx_bluesky/common/external_interaction/alerting/log_based_service.py,sha256=KCTU
96
96
  mx_bluesky/common/external_interaction/callbacks/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
97
  mx_bluesky/common/external_interaction/callbacks/common/abstract_event.py,sha256=iBj4WNK5ikieZzTePBZ9AEu6ehlnpew1nDK3ONJqibI,2093
98
98
  mx_bluesky/common/external_interaction/callbacks/common/grid_detection_callback.py,sha256=hfFJjICMer26TowK5Nq-AEjDe1TAHIgJAvTFhs-o-Zg,4901
99
- mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py,sha256=Bk5dpAUunuNbhor7MfOc7qRKhbIAhRbtfBKzSTUeUnE,9875
99
+ mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py,sha256=vCDIxsHMlYo6hmjsf07fITULCONHHP6qJMhp7M7QUXA,9875
100
100
  mx_bluesky/common/external_interaction/callbacks/common/ispyb_mapping.py,sha256=bHtnDZfxIR5zzSRiBSehZ51y42wzkEcCJ7rFg93aONA,2578
101
101
  mx_bluesky/common/external_interaction/callbacks/common/log_uid_tag_callback.py,sha256=pfZxQfS9SnXep3F2YAPptDX5bjjWvbXtgy5fINfsoTU,626
102
102
  mx_bluesky/common/external_interaction/callbacks/common/logging_callback.py,sha256=NHb8Gp86TAk6PRTV3inWrlW-Lj96LmnZda7ZGewlrFA,712
103
- mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py,sha256=3TYQXibOWIKnvM2PMTIjE2IOoX2Jkt9b2KpDCytQtYE,4088
103
+ mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py,sha256=567fx-ONKTZ7V5y5dk0YthxxDJt0s6dZtqrYA0AkfAk,4088
104
104
  mx_bluesky/common/external_interaction/callbacks/common/zocalo_callback.py,sha256=5Sjl2VU57huKkNtEExvypoSVb0I8nVItIJ4vH1vrp48,3930
105
105
  mx_bluesky/common/external_interaction/callbacks/sample_handling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
106
  mx_bluesky/common/external_interaction/callbacks/sample_handling/sample_handling_callback.py,sha256=BfUru03fRYmndjiWHpnqBIWPc5kRIy4PTmG94bz3gLw,3886
107
107
  mx_bluesky/common/external_interaction/callbacks/xray_centre/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
- mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py,sha256=niNZLRO3iEFIM6PFnS5byl4n9X6GwZR0NRzDmy9IFyQ,12634
108
+ mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py,sha256=ook_9K2hF1iPARNTswOQcv_wVV9Sae_SWouPhi7J3FY,12634
109
109
  mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_mapping.py,sha256=fOYJkqaXEfCdLGQwGhTrzfGOj6Ed3t2wcRgv68DOOHc,1790
110
- mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py,sha256=64ZA2ACcq8mI9tKG1MMTf46PYdb_B-sul8xQGM56_WA,4709
110
+ mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py,sha256=bxFMkTsMvZZJyp4zeGlZkThgZnQqT6dgflKRpqkT1Vc,4709
111
111
  mx_bluesky/common/external_interaction/ispyb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
112
  mx_bluesky/common/external_interaction/ispyb/data_model.py,sha256=HJZPT_j5EMK7-j-0tdaugiS3kDp44_jzvVoP-xcFCsA,2738
113
113
  mx_bluesky/common/external_interaction/ispyb/exp_eye_store.py,sha256=7j7ybxW1CB4WiuaTf4N2ZeeVbNNy7v5aN1KbbcW74wo,6080
@@ -133,7 +133,7 @@ mx_bluesky/common/utils/tracing.py,sha256=stnBZIvPuKiAm2wVc8lFr3ns7V5C52rUigULi9
133
133
  mx_bluesky/common/utils/utils.py,sha256=q2uCaK1E8zLVk1BFmj7qlTnQf3JRKjCjyadIVnL1-4M,1180
134
134
  mx_bluesky/hyperion/__init__.py,sha256=f4E8wInL1Ll4eeFtAiyKmipOBTPlUtKmVK-m_LOQG4M,35
135
135
  mx_bluesky/hyperion/__main__.py,sha256=Hyt3vdy2aC5lrikaptvKcMqK0P-bPV2h91fXb_CGpB8,6742
136
- mx_bluesky/hyperion/baton_handler.py,sha256=PsuClebzuhvDCWknNknqX52wYQhhuo7W9cou5eHNjr0,7028
136
+ mx_bluesky/hyperion/baton_handler.py,sha256=YLaIC1N2gaDdH6oySpejckl_X20PNTgIW9rwwIW1cjg,8280
137
137
  mx_bluesky/hyperion/plan_runner.py,sha256=kQn93lBSxiWi4ZGLOCx5IfFTCYx_L6NsIXAT_7Phpk4,2799
138
138
  mx_bluesky/hyperion/runner.py,sha256=x683wuzL-XO1Ws4N2fpPO__TLhlep0br_-8ubml1qG0,7073
139
139
  mx_bluesky/hyperion/device_setup_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -158,14 +158,14 @@ mx_bluesky/hyperion/external_interaction/__init__.py,sha256=95DwXDmKsx36RgAL-AtL
158
158
  mx_bluesky/hyperion/external_interaction/agamemnon.py,sha256=oZzkoLi_b-278asr_f-vMvZxPFKfEUYrTvhFqfMIu6A,11942
159
159
  mx_bluesky/hyperion/external_interaction/config_server.py,sha256=UpxjOH0U3vm0R_RTPt00uYfQ2HiALGWRZgs8EHJO2os,491
160
160
  mx_bluesky/hyperion/external_interaction/alerting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
- mx_bluesky/hyperion/external_interaction/alerting/constants.py,sha256=0lrZbr8qsbTpF74pSOvPCCWIz07GLEKxl8Dw0OuiYNM,475
161
+ mx_bluesky/hyperion/external_interaction/alerting/constants.py,sha256=8wE_MDF8vOqomQ6SBiwZKb1W4NRO_hmrBLVfLVnKdSg,170
162
162
  mx_bluesky/hyperion/external_interaction/callbacks/__init__.py,sha256=1XHaxDljMveu_DYIlk7n963gHffyC6r4C_RhF6HA-N8,283
163
163
  mx_bluesky/hyperion/external_interaction/callbacks/__main__.py,sha256=HDYsTsLCeO0iKcYme6meWxFKxWLADLz6b8u8Bw7zfHU,6576
164
164
  mx_bluesky/hyperion/external_interaction/callbacks/alert_on_container_change.py,sha256=QnA8P8QFDRr1XHyx6Qdd4uJal2GhQVcqSTbkLOEjw-Q,2299
165
165
  mx_bluesky/hyperion/external_interaction/callbacks/snapshot_callback.py,sha256=ee1ZIJGp8RQakMDYRfflXjSwi-UgxqdZNkZ1azBIDGQ,11705
166
166
  mx_bluesky/hyperion/external_interaction/callbacks/robot_actions/ispyb_callback.py,sha256=Ta8w0W_3LI0PGpwxKlQsS7X0B_hsfJoZdzR2K3J0KHo,4467
167
167
  mx_bluesky/hyperion/external_interaction/callbacks/rotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
- mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py,sha256=-0fz1Fw2zm8JXvZWkHTNRPirO2q3Ha0rb3Ug7eJ-xI4,7456
168
+ mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py,sha256=4IxYTLvpKJj6oNtP2-_qQdGx3cWofHviTS-0nQ6GKTU,7456
169
169
  mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_mapping.py,sha256=bba5ZHoOMqvSCUXJIxbx55HGhaoC_Jqhyxxb-ttqt5g,801
170
170
  mx_bluesky/hyperion/external_interaction/callbacks/rotation/nexus_callback.py,sha256=0aG1Kakyxyz6PE3fxDNKRARRG4xwej486PfmphvWwtM,4743
171
171
  mx_bluesky/hyperion/parameters/__init__.py,sha256=kf2wfcILBUBpT0tJ8-W39BywQUkn67yxl9IVsfrr1LE,115
@@ -183,9 +183,9 @@ mx_bluesky/hyperion/utils/context.py,sha256=yxMYn3YFET6SanFZ4YWXDmZDdp3WkaXhDc3y
183
183
  mx_bluesky/phase1_zebra/__init__.py,sha256=Edhhn2L9MVXnjJhyD5_yKQVUDo7XW98rvuT7dlzIn58,132
184
184
  mx_bluesky/phase1_zebra/device_setup_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
185
  mx_bluesky/phase1_zebra/device_setup_plans/setup_zebra.py,sha256=zfEnDvh5Rh9cPmg_Q_0EnJOZNIwIGmHeIDiJ9kg9Z4c,4129
186
- mx_bluesky-1.5.4.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
187
- mx_bluesky-1.5.4.dist-info/METADATA,sha256=MvYClpFgJEhjrprpYvvRPdPyf_5oaKfXif1hzVQWlvI,17424
188
- mx_bluesky-1.5.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
189
- mx_bluesky-1.5.4.dist-info/entry_points.txt,sha256=HgVtwgWoMRn9-X6rxCcSY3Jz_paspJTIlc-t2NFzWpo,409
190
- mx_bluesky-1.5.4.dist-info/top_level.txt,sha256=S4rrzXIUef58ulf_04wn01XGZ3xeJjXs4LPEJ_xoF-I,11
191
- mx_bluesky-1.5.4.dist-info/RECORD,,
186
+ mx_bluesky-1.5.5.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
187
+ mx_bluesky-1.5.5.dist-info/METADATA,sha256=fuT425w1VTMlmIjOpSjCvuYWNUeETRSNlq6xMm6vPSg,17424
188
+ mx_bluesky-1.5.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
189
+ mx_bluesky-1.5.5.dist-info/entry_points.txt,sha256=HgVtwgWoMRn9-X6rxCcSY3Jz_paspJTIlc-t2NFzWpo,409
190
+ mx_bluesky-1.5.5.dist-info/top_level.txt,sha256=S4rrzXIUef58ulf_04wn01XGZ3xeJjXs4LPEJ_xoF-I,11
191
+ mx_bluesky-1.5.5.dist-info/RECORD,,