mx-bluesky 1.5.16__py3-none-any.whl → 1.6.3__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 (37) hide show
  1. mx_bluesky/_version.py +2 -2
  2. mx_bluesky/beamlines/i02_1/parameters/gridscan.py +1 -1
  3. mx_bluesky/beamlines/i04/__init__.py +4 -0
  4. mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +2 -2
  5. mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py +224 -10
  6. mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +5 -2
  7. mx_bluesky/beamlines/i04/thawing_plan.py +2 -2
  8. mx_bluesky/beamlines/i24/jungfrau_commissioning/composites.py +6 -6
  9. mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/do_darks.py +1 -1
  10. mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/rotation_scan_plan.py +4 -4
  11. mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_external_acquisition.py +1 -1
  12. mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/plan_utils.py +1 -1
  13. mx_bluesky/beamlines/i24/serial/dcid.py +3 -3
  14. mx_bluesky/beamlines/i24/serial/extruder/i24ssx_extruder_collect_py3v2.py +6 -6
  15. mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_collect_py3v1.py +7 -7
  16. mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_manager_py3v1.py +3 -3
  17. mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py +1 -1
  18. mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +5 -5
  19. mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +7 -7
  20. mx_bluesky/beamlines/i24/serial/web_gui_plans/oav_plans.py +1 -1
  21. mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py +1 -1
  22. mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py +1 -1
  23. mx_bluesky/common/experiment_plans/pin_tip_centring_plan.py +2 -2
  24. mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py +1 -1
  25. mx_bluesky/hyperion/device_setup_plans/utils.py +1 -1
  26. mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +2 -2
  27. mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +3 -3
  28. mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +2 -2
  29. mx_bluesky/hyperion/experiment_plans/set_energy_plan.py +2 -2
  30. mx_bluesky/hyperion/experiment_plans/udc_default_state.py +19 -6
  31. mx_bluesky/hyperion/parameters/device_composites.py +1 -1
  32. {mx_bluesky-1.5.16.dist-info → mx_bluesky-1.6.3.dist-info}/METADATA +2 -2
  33. {mx_bluesky-1.5.16.dist-info → mx_bluesky-1.6.3.dist-info}/RECORD +37 -37
  34. {mx_bluesky-1.5.16.dist-info → mx_bluesky-1.6.3.dist-info}/WHEEL +1 -1
  35. {mx_bluesky-1.5.16.dist-info → mx_bluesky-1.6.3.dist-info}/entry_points.txt +0 -0
  36. {mx_bluesky-1.5.16.dist-info → mx_bluesky-1.6.3.dist-info}/licenses/LICENSE +0 -0
  37. {mx_bluesky-1.5.16.dist-info → mx_bluesky-1.6.3.dist-info}/top_level.txt +0 -0
mx_bluesky/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.5.16'
32
- __version_tuple__ = version_tuple = (1, 5, 16)
31
+ __version__ = version = '1.6.3'
32
+ __version_tuple__ = version_tuple = (1, 6, 3)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -1,4 +1,4 @@
1
- from dodal.devices.i02_1.fast_grid_scan import ZebraGridScanParamsTwoD
1
+ from dodal.devices.beamlines.i02_1.fast_grid_scan import ZebraGridScanParamsTwoD
2
2
  from scanspec.specs import Product
3
3
 
4
4
  from mx_bluesky.common.parameters.components import SplitScan, WithOptionalEnergyChange
@@ -2,6 +2,8 @@ from mx_bluesky.beamlines.i04.experiment_plans.i04_grid_detect_then_xray_centre_
2
2
  i04_default_grid_detect_and_xray_centre,
3
3
  )
4
4
  from mx_bluesky.beamlines.i04.oav_centering_plans.oav_imaging import (
5
+ find_beam_centres,
6
+ optimise_transmission_with_oav,
5
7
  take_oav_image_with_scintillator_in,
6
8
  )
7
9
  from mx_bluesky.beamlines.i04.thawing_plan import (
@@ -16,4 +18,6 @@ __all__ = [
16
18
  "i04_default_grid_detect_and_xray_centre",
17
19
  "thaw_and_murko_centre",
18
20
  "take_oav_image_with_scintillator_in",
21
+ "optimise_transmission_with_oav",
22
+ "find_beam_centres",
19
23
  ]
@@ -9,6 +9,8 @@ from dodal.common import inject
9
9
  from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue
10
10
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
11
11
  from dodal.devices.backlight import Backlight
12
+ from dodal.devices.beamlines.i04.beamsize import Beamsize
13
+ from dodal.devices.beamlines.i04.transfocator import Transfocator
12
14
  from dodal.devices.common_dcm import DoubleCrystalMonochromator
13
15
  from dodal.devices.detector.detector_motion import DetectorMotion
14
16
  from dodal.devices.eiger import EigerDetector
@@ -17,8 +19,6 @@ from dodal.devices.fast_grid_scan import (
17
19
  set_fast_grid_scan_params,
18
20
  )
19
21
  from dodal.devices.flux import Flux
20
- from dodal.devices.i04.beamsize import Beamsize
21
- from dodal.devices.i04.transfocator import Transfocator
22
22
  from dodal.devices.mx_phase1.beamstop import Beamstop
23
23
  from dodal.devices.oav.oav_detector import OAV
24
24
  from dodal.devices.oav.pin_image_recognition import PinTipDetection
@@ -6,8 +6,10 @@ from bluesky.utils import MsgGenerator
6
6
  from dodal.common import inject
7
7
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
8
8
  from dodal.devices.backlight import Backlight
9
+ from dodal.devices.beamlines.i04.beam_centre import CentreEllipseMethod
10
+ from dodal.devices.beamlines.i04.max_pixel import MaxPixel
9
11
  from dodal.devices.mx_phase1.beamstop import Beamstop, BeamstopPositions
10
- from dodal.devices.oav.oav_detector import OAV
12
+ from dodal.devices.oav.oav_detector import OAV, ZoomControllerWithBeamCentres
11
13
  from dodal.devices.robot import BartRobot, PinMounted
12
14
  from dodal.devices.scintillator import InOut, Scintillator
13
15
  from dodal.devices.xbpm_feedback import XBPMFeedback
@@ -19,8 +21,9 @@ from dodal.devices.zebra.zebra_controlled_shutter import (
19
21
  from ophyd_async.core import InOut as core_INOUT
20
22
 
21
23
  from mx_bluesky.common.utils.exceptions import BeamlineStateError
24
+ from mx_bluesky.common.utils.log import LOGGER
22
25
 
23
- initial_wait_group = "Wait for scint to move in"
26
+ OAV_PREPARE_BEAMLINE_FOR_SCINT_WAIT = "Wait for scint to move in"
24
27
 
25
28
 
26
29
  def take_oav_image_with_scintillator_in(
@@ -48,21 +51,36 @@ def take_oav_image_with_scintillator_in(
48
51
  defaults are always correct.
49
52
  """
50
53
 
54
+ LOGGER.info("Preparing beamline to take scintillator images...")
51
55
  yield from _prepare_beamline_for_scintillator_images(
52
- robot, beamstop, backlight, scintillator, xbpm_feedback, initial_wait_group
56
+ robot,
57
+ beamstop,
58
+ backlight,
59
+ scintillator,
60
+ xbpm_feedback,
61
+ shutter,
62
+ OAV_PREPARE_BEAMLINE_FOR_SCINT_WAIT,
63
+ )
64
+ yield from bps.abs_set(
65
+ attenuator, transmission, group=OAV_PREPARE_BEAMLINE_FOR_SCINT_WAIT
53
66
  )
54
-
55
- yield from bps.abs_set(attenuator, transmission, group=initial_wait_group)
56
67
 
57
68
  if image_name is None:
58
69
  image_name = f"{time.time_ns()}ATT{transmission * 100}"
70
+ LOGGER.info(f"Using image name {image_name}")
71
+ LOGGER.info("Waiting for prepare beamline plan to complete...")
72
+ yield from bps.wait(OAV_PREPARE_BEAMLINE_FOR_SCINT_WAIT)
59
73
 
60
- yield from bps.wait(initial_wait_group)
74
+ LOGGER.info("Opening shutter...")
61
75
 
62
76
  yield from bps.abs_set(shutter.control_mode, ZebraShutterControl.MANUAL, wait=True)
63
77
  yield from bps.abs_set(shutter, ZebraShutterState.OPEN, wait=True)
64
78
 
65
- take_and_save_oav_image(file_path=image_path, file_name=image_name, oav=oav)
79
+ LOGGER.info("Taking image...")
80
+
81
+ yield from take_and_save_oav_image(
82
+ file_path=image_path, file_name=image_name, oav=oav
83
+ )
66
84
 
67
85
 
68
86
  def _prepare_beamline_for_scintillator_images(
@@ -71,11 +89,13 @@ def _prepare_beamline_for_scintillator_images(
71
89
  backlight: Backlight,
72
90
  scintillator: Scintillator,
73
91
  xbpm_feedback: XBPMFeedback,
92
+ shutter: ZebraShutter,
74
93
  group: str,
75
94
  ) -> MsgGenerator:
76
95
  """
77
- Prepares the beamline for oav image by making sure the pin is NOT mounted and
78
- the beam is on (feedback check). Finally, the scintillator is moved in.
96
+ Prepares the beamline for oav image by making sure the pin is not mounted and
97
+ the beam is on (feedback check). Finally, the scintillator is moved in and the
98
+ shutter opened.
79
99
  """
80
100
  pin_mounted = yield from bps.rd(robot.gonio_pin_sensor)
81
101
  if pin_mounted == PinMounted.PIN_MOUNTED:
@@ -90,6 +110,9 @@ def _prepare_beamline_for_scintillator_images(
90
110
  yield from bps.abs_set(backlight, core_INOUT.OUT, group=group)
91
111
 
92
112
  yield from bps.abs_set(scintillator.selected_pos, InOut.IN, group=group)
113
+ # Not waiting for control mode to be set before opening shutter can result in timeout error
114
+ yield from bps.abs_set(shutter.control_mode, ZebraShutterControl.MANUAL, wait=True)
115
+ yield from bps.abs_set(shutter, ZebraShutterState.OPEN, group=group)
93
116
 
94
117
 
95
118
  def take_and_save_oav_image(
@@ -109,7 +132,198 @@ def take_and_save_oav_image(
109
132
  if not os.path.exists(full_file_path):
110
133
  yield from bps.abs_set(oav.snapshot.filename, file_name, group=group)
111
134
  yield from bps.abs_set(oav.snapshot.directory, file_path, group=group)
112
- yield from bps.wait(group)
135
+ yield from bps.wait(group, timeout=60)
113
136
  yield from bps.trigger(oav.snapshot, wait=True)
114
137
  else:
115
138
  raise FileExistsError("OAV image file path already exists")
139
+
140
+
141
+ def _max_pixel_at_transmission(
142
+ max_pixel: MaxPixel,
143
+ attenuator: BinaryFilterAttenuator,
144
+ xbpm_feedback: XBPMFeedback,
145
+ transmission: float,
146
+ ):
147
+ # Potential controls issue on XBPM device means it can mark
148
+ # itself as stable before it really is
149
+ yield from bps.trigger(xbpm_feedback, wait=True)
150
+ yield from bps.mv(attenuator, transmission)
151
+ yield from bps.trigger(max_pixel, wait=True)
152
+ return (yield from bps.rd(max_pixel.max_pixel_val))
153
+
154
+
155
+ def optimise_transmission_with_oav(
156
+ upper_bound: float = 100,
157
+ lower_bound: float = 0,
158
+ target_brightness_fraction: float = 0.75,
159
+ min_transmission_change: float = 5,
160
+ max_iterations: int = 10,
161
+ max_pixel: MaxPixel = inject("max_pixel"),
162
+ attenuator: BinaryFilterAttenuator = inject("attenuator"),
163
+ xbpm_feedback: XBPMFeedback = inject("xbpm_feedback"),
164
+ ) -> MsgGenerator:
165
+ """
166
+ Plan to find the optimal oav transmission. First the brightest pixel at 100%
167
+ transmission is taken. A fraction of this (target_brightness_fraction) is taken
168
+ as the target - as in the optimal transmission will have it's max pixel as the set
169
+ target. A binary search is used to reach this.
170
+ Args:
171
+ upper_bound: Maximum transmission which will be searched. In percent.
172
+ lower_bound: Minimum transmission which will be searched. In percent.
173
+ target_brightness_fraction: Fraction of the brightest pixel at 100%
174
+ transmission which should be used as the target max pixel brightness.
175
+ min_transmission_change: If the next search point would require a transmission
176
+ change less than this then we stop.
177
+ max_iterations: Maximum amount of iterations.
178
+ """
179
+
180
+ if upper_bound < lower_bound:
181
+ raise ValueError(
182
+ f"Upper bound ({upper_bound}) must be higher than lower bound {lower_bound}"
183
+ )
184
+
185
+ brightest_pixel_at_full_beam = yield from _max_pixel_at_transmission(
186
+ max_pixel, attenuator, xbpm_feedback, 1
187
+ )
188
+
189
+ if brightest_pixel_at_full_beam == 0:
190
+ raise ValueError("No beam found at full transmission")
191
+
192
+ target_pixel_brightness = brightest_pixel_at_full_beam * target_brightness_fraction
193
+ LOGGER.info(
194
+ f"Optimising until max pixel in image has a value of {target_pixel_brightness}"
195
+ )
196
+
197
+ iterations = 0
198
+
199
+ while iterations < max_iterations:
200
+ mid = round((upper_bound + lower_bound) / 2, 2) # limit to 2 dp
201
+ LOGGER.info(f"On iteration {iterations}")
202
+
203
+ current_transmission = yield from bps.rd(attenuator.actual_transmission)
204
+ transmission_change_percent = abs(mid - current_transmission * 100)
205
+ if transmission_change_percent < min_transmission_change:
206
+ LOGGER.info(
207
+ f"Next transmission change would be small ({transmission_change_percent}%) so stopping at {current_transmission}"
208
+ )
209
+ return
210
+
211
+ brightest_pixel = yield from _max_pixel_at_transmission(
212
+ max_pixel, attenuator, xbpm_feedback, mid / 100
213
+ )
214
+
215
+ LOGGER.info(f"Upper bound is: {upper_bound}, Lower bound is: {lower_bound}")
216
+ LOGGER.info(
217
+ f"Testing transmission {mid}, brightest pixel found {brightest_pixel}"
218
+ )
219
+
220
+ if target_pixel_brightness == brightest_pixel:
221
+ mid = round(mid, 0)
222
+ LOGGER.info(f"\nOptimal transmission found: {mid}")
223
+ return
224
+
225
+ # condition for too low so want to try higher
226
+ elif brightest_pixel < target_pixel_brightness:
227
+ LOGGER.info("Result: Too low \n")
228
+ lower_bound = mid
229
+
230
+ # condition for too high so want to try lower
231
+ elif brightest_pixel > target_pixel_brightness:
232
+ LOGGER.info("Result: Too high \n")
233
+ upper_bound = mid
234
+ iterations += 1
235
+ raise StopIteration("Max iterations reached")
236
+
237
+
238
+ def _get_all_zoom_levels(
239
+ zoom_controller: ZoomControllerWithBeamCentres,
240
+ ) -> MsgGenerator[tuple[str]]:
241
+ zoom_levels = []
242
+ level_signals = [
243
+ centring_device.level_name
244
+ for centring_device in zoom_controller.beam_centres.values()
245
+ ]
246
+ for signal in level_signals:
247
+ level_name = yield from bps.rd(signal)
248
+ if level_name:
249
+ zoom_levels.append(level_name)
250
+ return tuple(zoom_levels)
251
+
252
+
253
+ def find_beam_centres(
254
+ zoom_levels_to_centre: tuple[str, ...] | None = None,
255
+ zoom_levels_to_optimise_transmission: tuple[str, ...] = ("1.0x", "7.5x"),
256
+ robot: BartRobot = inject("robot"),
257
+ beamstop: Beamstop = inject("beamstop"),
258
+ backlight: Backlight = inject("backlight"),
259
+ scintillator: Scintillator = inject("scintillator"),
260
+ xbpm_feedback: XBPMFeedback = inject("xbpm_feedback"),
261
+ max_pixel: MaxPixel = inject("max_pixel"),
262
+ centre_ellipse: CentreEllipseMethod = inject("beam_centre"),
263
+ attenuator: BinaryFilterAttenuator = inject("attenuator"),
264
+ zoom_controller: ZoomControllerWithBeamCentres = inject("zoom_controller"),
265
+ shutter: ZebraShutter = inject("sample_shutter"),
266
+ ) -> MsgGenerator:
267
+ """
268
+ Finds beam centres at the zoom levels given by zoom_levels_to_centre, first
269
+ optimising transmission if the zoom level is in zoom_levels_to_optimise_transmission.
270
+
271
+ Note that the previous beam centre values are used to draw an ROI box around the
272
+ OAV image when finding updated beam centre. If the previous values are very wrong,
273
+ this plan may fail or give inaccurate results.
274
+
275
+ zoom_levels_to_centre: The levels to do centring at, by default runs at all known
276
+ zoom levels.
277
+ zoom_levels_to_optimise_transmission: The levels to optimise transmission at,
278
+ defaults to 1x and 7.5x
279
+ """
280
+
281
+ all_zooms = yield from _get_all_zoom_levels(zoom_controller)
282
+ if zoom_levels_to_centre is None:
283
+ zoom_levels_to_centre = all_zooms
284
+
285
+ for zoom in [*zoom_levels_to_optimise_transmission, *zoom_levels_to_centre]:
286
+ if zoom not in all_zooms:
287
+ raise ValueError(f"Unknown zoom ({zoom}). Known zooms are {all_zooms}")
288
+
289
+ LOGGER.info("Preparing beamline for images...")
290
+ yield from _prepare_beamline_for_scintillator_images(
291
+ robot,
292
+ beamstop,
293
+ backlight,
294
+ scintillator,
295
+ xbpm_feedback,
296
+ shutter,
297
+ OAV_PREPARE_BEAMLINE_FOR_SCINT_WAIT,
298
+ )
299
+ LOGGER.info("Waiting for prepare beamline plan to complete...")
300
+ yield from bps.wait(OAV_PREPARE_BEAMLINE_FOR_SCINT_WAIT)
301
+
302
+ for centring_device in zoom_controller.beam_centres.values():
303
+ zoom_name = yield from bps.rd(centring_device.level_name)
304
+ if zoom_name in zoom_levels_to_centre:
305
+ LOGGER.info(f"Moving to zoom level {zoom_name}")
306
+ yield from bps.abs_set(zoom_controller, zoom_name, wait=True)
307
+ if zoom_name in zoom_levels_to_optimise_transmission:
308
+ LOGGER.info(f"Optimising transmission at zoom level {zoom_name}")
309
+ yield from optimise_transmission_with_oav(
310
+ 100,
311
+ 0,
312
+ max_pixel=max_pixel,
313
+ attenuator=attenuator,
314
+ xbpm_feedback=xbpm_feedback,
315
+ )
316
+
317
+ yield from bps.trigger(centre_ellipse, wait=True)
318
+ centre_x = yield from bps.rd(centre_ellipse.center_x_val)
319
+ centre_y = yield from bps.rd(centre_ellipse.center_y_val)
320
+ centre_x = round(centre_x)
321
+ centre_y = round(centre_y)
322
+ LOGGER.info(
323
+ f"Writing centre values ({centre_x}, {centre_y}) to OAV PVs at zoom level {zoom_name}"
324
+ )
325
+ yield from bps.mv(
326
+ centring_device.x_centre, centre_x, centring_device.y_centre, centre_y
327
+ )
328
+
329
+ LOGGER.info("Find beam centre plan completed!")
@@ -8,8 +8,11 @@ from typing import TypedDict
8
8
 
9
9
  import numpy as np
10
10
  import zmq
11
- from dodal.devices.i04.constants import RedisConstants
12
- from dodal.devices.i04.murko_results import RESULTS_COMPLETE_MESSAGE, MurkoResult
11
+ from dodal.devices.beamlines.i04.constants import RedisConstants
12
+ from dodal.devices.beamlines.i04.murko_results import (
13
+ RESULTS_COMPLETE_MESSAGE,
14
+ MurkoResult,
15
+ )
13
16
  from numpy.typing import NDArray
14
17
  from PIL import Image
15
18
  from redis import StrictRedis
@@ -3,8 +3,8 @@ import bluesky.preprocessors as bpp
3
3
  from bluesky.preprocessors import contingency_decorator, run_decorator, subs_decorator
4
4
  from bluesky.utils import MsgGenerator
5
5
  from dodal.common import inject
6
- from dodal.devices.i04.constants import RedisConstants
7
- from dodal.devices.i04.murko_results import MurkoResultsDevice
6
+ from dodal.devices.beamlines.i04.constants import RedisConstants
7
+ from dodal.devices.beamlines.i04.murko_results import MurkoResultsDevice
8
8
  from dodal.devices.oav.oav_to_redis_forwarder import OAVToRedisForwarder, Source
9
9
  from dodal.devices.robot import BartRobot
10
10
  from dodal.devices.smargon import Smargon
@@ -2,13 +2,13 @@ from __future__ import annotations
2
2
 
3
3
  import pydantic
4
4
  from dodal.devices.attenuator.attenuator import EnumFilterAttenuator
5
+ from dodal.devices.beamlines.i24.aperture import Aperture
6
+ from dodal.devices.beamlines.i24.beamstop import Beamstop
7
+ from dodal.devices.beamlines.i24.commissioning_jungfrau import CommissioningJungfrau
8
+ from dodal.devices.beamlines.i24.dcm import DCM
9
+ from dodal.devices.beamlines.i24.dual_backlight import DualBacklight
10
+ from dodal.devices.beamlines.i24.vgonio import VerticalGoniometer
5
11
  from dodal.devices.hutch_shutter import HutchShutter
6
- from dodal.devices.i24.aperture import Aperture
7
- from dodal.devices.i24.beamstop import Beamstop
8
- from dodal.devices.i24.commissioning_jungfrau import CommissioningJungfrau
9
- from dodal.devices.i24.dcm import DCM
10
- from dodal.devices.i24.dual_backlight import DualBacklight
11
- from dodal.devices.i24.vgonio import VerticalGoniometer
12
12
  from dodal.devices.motors import YZStage
13
13
  from dodal.devices.synchrotron import Synchrotron
14
14
  from dodal.devices.xbpm_feedback import XBPMFeedback
@@ -2,7 +2,7 @@ import bluesky.preprocessors as bpp
2
2
  from bluesky import plan_stubs as bps
3
3
  from bluesky.utils import MsgGenerator
4
4
  from dodal.common import inject
5
- from dodal.devices.i24.commissioning_jungfrau import CommissioningJungfrau
5
+ from dodal.devices.beamlines.i24.commissioning_jungfrau import CommissioningJungfrau
6
6
  from ophyd_async.fastcs.jungfrau import (
7
7
  AcquisitionType,
8
8
  GainMode,
@@ -4,11 +4,11 @@ import bluesky.plan_stubs as bps
4
4
  import bluesky.preprocessors as bpp
5
5
  from bluesky.preprocessors import run_decorator
6
6
  from bluesky.utils import MsgGenerator
7
+ from dodal.devices.beamlines.i24.aperture import AperturePositions
8
+ from dodal.devices.beamlines.i24.beamstop import BeamstopPositions
9
+ from dodal.devices.beamlines.i24.commissioning_jungfrau import CommissioningJungfrau
10
+ from dodal.devices.beamlines.i24.dual_backlight import BacklightPositions
7
11
  from dodal.devices.hutch_shutter import ShutterState
8
- from dodal.devices.i24.aperture import AperturePositions
9
- from dodal.devices.i24.beamstop import BeamstopPositions
10
- from dodal.devices.i24.commissioning_jungfrau import CommissioningJungfrau
11
- from dodal.devices.i24.dual_backlight import BacklightPositions
12
12
  from dodal.devices.zebra.zebra import ArmDemand, I24Axes, Zebra
13
13
  from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter
14
14
  from ophyd_async.fastcs.jungfrau import (
@@ -1,6 +1,6 @@
1
1
  from bluesky.utils import MsgGenerator
2
2
  from dodal.common import inject
3
- from dodal.devices.i24.commissioning_jungfrau import CommissioningJungfrau
3
+ from dodal.devices.beamlines.i24.commissioning_jungfrau import CommissioningJungfrau
4
4
  from ophyd_async.core import (
5
5
  WatchableAsyncStatus,
6
6
  )
@@ -4,7 +4,7 @@ from typing import cast
4
4
  import bluesky.plan_stubs as bps
5
5
  from bluesky.utils import MsgGenerator
6
6
  from dodal.common.watcher_utils import log_on_percentage_complete
7
- from dodal.devices.i24.commissioning_jungfrau import CommissioningJungfrau
7
+ from dodal.devices.beamlines.i24.commissioning_jungfrau import CommissioningJungfrau
8
8
  from ophyd_async.core import (
9
9
  TriggerInfo,
10
10
  WatchableAsyncStatus,
@@ -8,9 +8,9 @@ from functools import lru_cache
8
8
  import bluesky.plan_stubs as bps
9
9
  import requests
10
10
  from bluesky.utils import MsgGenerator
11
- from dodal.devices.i24.beam_center import DetectorBeamCenter
12
- from dodal.devices.i24.dcm import DCM
13
- from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
11
+ from dodal.devices.beamlines.i24.beam_center import DetectorBeamCenter
12
+ from dodal.devices.beamlines.i24.dcm import DCM
13
+ from dodal.devices.beamlines.i24.focus_mirrors import FocusMirrorsMode
14
14
 
15
15
  from mx_bluesky.beamlines.i24.serial.fixed_target.ft_utils import PumpProbeSetting
16
16
  from mx_bluesky.beamlines.i24.serial.log import SSX_LOGGER
@@ -15,13 +15,13 @@ import bluesky.preprocessors as bpp
15
15
  from bluesky.utils import MsgGenerator
16
16
  from dodal.common import inject
17
17
  from dodal.devices.attenuator.attenuator import ReadOnlyAttenuator
18
+ from dodal.devices.beamlines.i24.aperture import Aperture
19
+ from dodal.devices.beamlines.i24.beam_center import DetectorBeamCenter
20
+ from dodal.devices.beamlines.i24.beamstop import Beamstop
21
+ from dodal.devices.beamlines.i24.dcm import DCM
22
+ from dodal.devices.beamlines.i24.dual_backlight import DualBacklight
23
+ from dodal.devices.beamlines.i24.focus_mirrors import FocusMirrorsMode
18
24
  from dodal.devices.hutch_shutter import HutchShutter, ShutterDemand
19
- from dodal.devices.i24.aperture import Aperture
20
- from dodal.devices.i24.beam_center import DetectorBeamCenter
21
- from dodal.devices.i24.beamstop import Beamstop
22
- from dodal.devices.i24.dcm import DCM
23
- from dodal.devices.i24.dual_backlight import DualBacklight
24
- from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
25
25
  from dodal.devices.motors import YZStage
26
26
  from dodal.devices.zebra.zebra import Zebra
27
27
 
@@ -11,14 +11,14 @@ import bluesky.preprocessors as bpp
11
11
  from bluesky.utils import MsgGenerator
12
12
  from dodal.common import inject
13
13
  from dodal.devices.attenuator.attenuator import ReadOnlyAttenuator
14
+ from dodal.devices.beamlines.i24.aperture import Aperture
15
+ from dodal.devices.beamlines.i24.beam_center import DetectorBeamCenter
16
+ from dodal.devices.beamlines.i24.beamstop import Beamstop
17
+ from dodal.devices.beamlines.i24.dcm import DCM
18
+ from dodal.devices.beamlines.i24.dual_backlight import DualBacklight
19
+ from dodal.devices.beamlines.i24.focus_mirrors import FocusMirrorsMode
20
+ from dodal.devices.beamlines.i24.pmac import PMAC
14
21
  from dodal.devices.hutch_shutter import HutchShutter, ShutterDemand
15
- from dodal.devices.i24.aperture import Aperture
16
- from dodal.devices.i24.beam_center import DetectorBeamCenter
17
- from dodal.devices.i24.beamstop import Beamstop
18
- from dodal.devices.i24.dcm import DCM
19
- from dodal.devices.i24.dual_backlight import DualBacklight
20
- from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
21
- from dodal.devices.i24.pmac import PMAC
22
22
  from dodal.devices.motors import YZStage
23
23
  from dodal.devices.zebra.zebra import Zebra
24
24
 
@@ -13,9 +13,9 @@ import numpy as np
13
13
  from bluesky.utils import MsgGenerator
14
14
  from dodal.common import inject
15
15
  from dodal.devices.attenuator.attenuator import ReadOnlyAttenuator
16
- from dodal.devices.i24.beamstop import Beamstop, BeamstopPositions
17
- from dodal.devices.i24.dual_backlight import BacklightPositions, DualBacklight
18
- from dodal.devices.i24.pmac import CS_STR, PMAC, EncReset, LaserSettings
16
+ from dodal.devices.beamlines.i24.beamstop import Beamstop, BeamstopPositions
17
+ from dodal.devices.beamlines.i24.dual_backlight import BacklightPositions, DualBacklight
18
+ from dodal.devices.beamlines.i24.pmac import CS_STR, PMAC, EncReset, LaserSettings
19
19
  from dodal.devices.motors import YZStage
20
20
 
21
21
  from mx_bluesky.beamlines.i24.serial.fixed_target.ft_utils import (
@@ -9,7 +9,7 @@ import bluesky.plan_stubs as bps
9
9
  import cv2 as cv
10
10
  from bluesky.run_engine import RunEngine
11
11
  from dodal.beamlines import i24
12
- from dodal.devices.i24.pmac import PMAC
12
+ from dodal.devices.beamlines.i24.pmac import PMAC
13
13
  from dodal.devices.oav.oav_detector import OAV
14
14
 
15
15
  from mx_bluesky.beamlines.i24.serial.fixed_target import (
@@ -1,12 +1,12 @@
1
1
  from pathlib import Path
2
2
 
3
3
  import bluesky.plan_stubs as bps
4
+ from dodal.devices.beamlines.i24.aperture import Aperture, AperturePositions
5
+ from dodal.devices.beamlines.i24.beam_center import DetectorBeamCenter
6
+ from dodal.devices.beamlines.i24.beamstop import Beamstop, BeamstopPositions
7
+ from dodal.devices.beamlines.i24.dcm import DCM
8
+ from dodal.devices.beamlines.i24.dual_backlight import BacklightPositions, DualBacklight
4
9
  from dodal.devices.detector.det_dim_constants import DetectorSizeConstants
5
- from dodal.devices.i24.aperture import Aperture, AperturePositions
6
- from dodal.devices.i24.beam_center import DetectorBeamCenter
7
- from dodal.devices.i24.beamstop import Beamstop, BeamstopPositions
8
- from dodal.devices.i24.dcm import DCM
9
- from dodal.devices.i24.dual_backlight import BacklightPositions, DualBacklight
10
10
  from dodal.devices.motors import YZStage
11
11
  from dodal.devices.util.lookup_tables import (
12
12
  linear_interpolation_lut,
@@ -8,14 +8,14 @@ from bluesky.utils import MsgGenerator
8
8
  from dodal.beamlines import i24
9
9
  from dodal.common import inject
10
10
  from dodal.devices.attenuator.attenuator import EnumFilterAttenuator
11
+ from dodal.devices.beamlines.i24.aperture import Aperture
12
+ from dodal.devices.beamlines.i24.beam_center import DetectorBeamCenter
13
+ from dodal.devices.beamlines.i24.beamstop import Beamstop
14
+ from dodal.devices.beamlines.i24.dcm import DCM
15
+ from dodal.devices.beamlines.i24.dual_backlight import BacklightPositions, DualBacklight
16
+ from dodal.devices.beamlines.i24.focus_mirrors import FocusMirrorsMode
17
+ from dodal.devices.beamlines.i24.pmac import PMAC
11
18
  from dodal.devices.hutch_shutter import HutchShutter
12
- from dodal.devices.i24.aperture import Aperture
13
- from dodal.devices.i24.beam_center import DetectorBeamCenter
14
- from dodal.devices.i24.beamstop import Beamstop
15
- from dodal.devices.i24.dcm import DCM
16
- from dodal.devices.i24.dual_backlight import BacklightPositions, DualBacklight
17
- from dodal.devices.i24.focus_mirrors import FocusMirrorsMode
18
- from dodal.devices.i24.pmac import PMAC
19
19
  from dodal.devices.motors import YZStage
20
20
  from dodal.devices.oav.oav_detector import OAVBeamCentreFile
21
21
  from dodal.devices.zebra.zebra import Zebra
@@ -3,7 +3,7 @@ from enum import Enum
3
3
  import bluesky.plan_stubs as bps
4
4
  from bluesky.utils import MsgGenerator
5
5
  from dodal.common import inject
6
- from dodal.devices.i24.pmac import PMAC
6
+ from dodal.devices.beamlines.i24.pmac import PMAC
7
7
 
8
8
 
9
9
  class MoveSize(Enum):
@@ -210,7 +210,7 @@ def _fetch_xrc_results_from_zocalo(
210
210
 
211
211
  LOGGER.info("Getting X-ray center Zocalo results...")
212
212
 
213
- yield from bps.trigger(zocalo_results)
213
+ yield from bps.trigger(zocalo_results, wait=True)
214
214
  LOGGER.info("Zocalo triggered and read, interpreting results.")
215
215
  xrc_results = yield from get_full_processing_results(zocalo_results)
216
216
  LOGGER.info(f"Got xray centres, top 5: {xrc_results[:5]}")
@@ -104,7 +104,7 @@ def grid_detection_plan(
104
104
  for angle in (yield from optimum_grid_detect_angles(smargon)):
105
105
  yield from bps.mv(smargon.omega, angle)
106
106
  # need to wait for the OAV image to update
107
- # See #673 for improvements
107
+ # See https://github.com/DiamondLightSource/mx-bluesky/issues/416 for improvements
108
108
  yield from bps.sleep(HardwareConstants.OAV_REFRESH_DELAY)
109
109
 
110
110
  tip_x_px, tip_y_px = yield from catch_exception_and_warn(
@@ -146,7 +146,7 @@ def pin_tip_centre_plan(
146
146
  LOGGER.info(f"Tip offset in pixels: {tip_offset_px}")
147
147
 
148
148
  # need to wait for the OAV image to update
149
- # See #673 for improvements
149
+ # See https://github.com/DiamondLightSource/mx-bluesky/issues/416 for improvements
150
150
  yield from bps.sleep(0.3)
151
151
 
152
152
  yield from pre_centring_setup_oav(oav, oav_params, pin_tip_setup)
@@ -157,7 +157,7 @@ def pin_tip_centre_plan(
157
157
  yield from bps.mvr(gonio.omega, -90)
158
158
 
159
159
  # need to wait for the OAV image to update
160
- # See #673 for improvements
160
+ # See https://github.com/DiamondLightSource/mx-bluesky/issues/416 for improvements
161
161
  yield from bps.sleep(0.3)
162
162
  tip = yield from catch_exception_and_warn(
163
163
  PinNotFoundError, wait_for_tip_to_be_found, pin_tip_detect
@@ -1,10 +1,10 @@
1
1
  import bluesky.plan_stubs as bps
2
+ from dodal.devices.beamlines.i03.undulator_dcm import UndulatorDCM
2
3
  from dodal.devices.focusing_mirror import (
3
4
  FocusingMirrorWithStripes,
4
5
  MirrorStripe,
5
6
  MirrorVoltages,
6
7
  )
7
- from dodal.devices.i03.undulator_dcm import UndulatorDCM
8
8
  from dodal.devices.util.adjuster_plans import lookup_table_adjuster
9
9
  from dodal.devices.util.lookup_tables import (
10
10
  linear_interpolation_lut,
@@ -1,8 +1,8 @@
1
1
  from bluesky import plan_stubs as bps
2
+ from dodal.devices.beamlines.i03.dcm import DCM
2
3
  from dodal.devices.detector import (
3
4
  DetectorParams,
4
5
  )
5
- from dodal.devices.i03.dcm import DCM
6
6
 
7
7
 
8
8
  def fill_in_energy_if_not_supplied(dcm: DCM, detector_params: DetectorParams):
@@ -13,9 +13,9 @@ from bluesky.utils import Msg
13
13
  from dodal.devices.aperturescatterguard import ApertureScatterguard
14
14
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
15
15
  from dodal.devices.backlight import Backlight, InOut
16
+ from dodal.devices.beamlines.i03.dcm import DCM
17
+ from dodal.devices.beamlines.i03.undulator_dcm import UndulatorDCM
16
18
  from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
17
- from dodal.devices.i03.dcm import DCM
18
- from dodal.devices.i03.undulator_dcm import UndulatorDCM
19
19
  from dodal.devices.motors import XYZStage
20
20
  from dodal.devices.oav.oav_detector import OAV
21
21
  from dodal.devices.robot import BartRobot, SampleLocation
@@ -10,15 +10,15 @@ from bluesky.utils import MsgGenerator
10
10
  from dodal.devices.aperturescatterguard import ApertureScatterguard
11
11
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
12
12
  from dodal.devices.backlight import Backlight
13
+ from dodal.devices.beamlines.i03 import Beamstop
14
+ from dodal.devices.beamlines.i03.dcm import DCM
15
+ from dodal.devices.beamlines.i03.undulator_dcm import UndulatorDCM
13
16
  from dodal.devices.beamsize.beamsize import BeamsizeBase
14
17
  from dodal.devices.detector.detector_motion import DetectorMotion
15
18
  from dodal.devices.eiger import EigerDetector
16
19
  from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScanThreeD
17
20
  from dodal.devices.flux import Flux
18
21
  from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
19
- from dodal.devices.i03 import Beamstop
20
- from dodal.devices.i03.dcm import DCM
21
- from dodal.devices.i03.undulator_dcm import UndulatorDCM
22
22
  from dodal.devices.motors import XYZStage
23
23
  from dodal.devices.oav.oav_detector import OAV
24
24
  from dodal.devices.oav.pin_image_recognition import PinTipDetection
@@ -6,12 +6,12 @@ from bluesky.utils import MsgGenerator
6
6
  from dodal.devices.aperturescatterguard import ApertureScatterguard
7
7
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
8
8
  from dodal.devices.backlight import Backlight
9
+ from dodal.devices.beamlines.i03 import Beamstop
10
+ from dodal.devices.beamlines.i03.dcm import DCM
9
11
  from dodal.devices.beamsize.beamsize import BeamsizeBase
10
12
  from dodal.devices.detector.detector_motion import DetectorMotion
11
13
  from dodal.devices.eiger import EigerDetector
12
14
  from dodal.devices.flux import Flux
13
- from dodal.devices.i03 import Beamstop
14
- from dodal.devices.i03.dcm import DCM
15
15
  from dodal.devices.oav.oav_detector import OAV
16
16
  from dodal.devices.oav.oav_parameters import OAVParameters
17
17
  from dodal.devices.robot import BartRobot
@@ -9,9 +9,9 @@ import bluesky.preprocessors as bpp
9
9
  import pydantic
10
10
  from bluesky import plan_stubs as bps
11
11
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
12
+ from dodal.devices.beamlines.i03.dcm import DCM
13
+ from dodal.devices.beamlines.i03.undulator_dcm import UndulatorDCM
12
14
  from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
13
- from dodal.devices.i03.dcm import DCM
14
- from dodal.devices.i03.undulator_dcm import UndulatorDCM
15
15
  from dodal.devices.undulator import UndulatorInKeV
16
16
  from dodal.devices.xbpm_feedback import XBPMFeedback
17
17
 
@@ -63,12 +63,7 @@ def move_to_udc_default_state(devices: UDCDefaultDevices):
63
63
  """Moves beamline to known positions prior to UDC start"""
64
64
  yield from _verify_correct_cryostream_selected(devices.cryostream_gantry)
65
65
 
66
- cryostream_temp = yield from bps.rd(devices.cryostream.temp)
67
- cryostream_pressure = yield from bps.rd(devices.cryostream.back_pressure)
68
- if cryostream_temp > CONST.HARDWARE.MAX_CRYO_TEMP_K:
69
- raise CryoStreamError("Cryostream temperature is too high, not starting UDC")
70
- if cryostream_pressure > CONST.HARDWARE.MAX_CRYO_PRESSURE_BAR:
71
- raise CryoStreamError("Cryostream back pressure is too high, not starting UDC")
66
+ yield from _check_cryostream(devices)
72
67
 
73
68
  yield from _verify_no_sample_present(devices.robot)
74
69
 
@@ -150,6 +145,24 @@ def move_to_udc_default_state(devices: UDCDefaultDevices):
150
145
  yield from bps.wait(_GROUP_POST_BEAMSTOP_CHECK, timeout=10)
151
146
 
152
147
 
148
+ def _check_cryostream(devices: UDCDefaultDevices):
149
+ commissioning_mode = yield from bps.rd(devices.baton.commissioning)
150
+ cryo_mode = yield from bps.rd(devices.robot.cryomode_rbv)
151
+ if commissioning_mode and cryo_mode == BartRobot.CRYO_MODE_WARM:
152
+ LOGGER.warning("Ignoring cryostream status in commissioning mode")
153
+ else:
154
+ cryostream_temp = yield from bps.rd(devices.cryostream.temp)
155
+ cryostream_pressure = yield from bps.rd(devices.cryostream.back_pressure)
156
+ if cryostream_temp > CONST.HARDWARE.MAX_CRYO_TEMP_K:
157
+ raise CryoStreamError(
158
+ "Cryostream temperature is too high, not starting UDC"
159
+ )
160
+ if cryostream_pressure > CONST.HARDWARE.MAX_CRYO_PRESSURE_BAR:
161
+ raise CryoStreamError(
162
+ "Cryostream back pressure is too high, not starting UDC"
163
+ )
164
+
165
+
153
166
  def _verify_correct_cryostream_selected(
154
167
  cryostream_gantry: CryoStreamGantry,
155
168
  ) -> MsgGenerator:
@@ -6,6 +6,7 @@ from dodal.devices.aperturescatterguard import (
6
6
  )
7
7
  from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
8
8
  from dodal.devices.backlight import Backlight
9
+ from dodal.devices.beamlines.i03.beamsize import Beamsize
9
10
  from dodal.devices.common_dcm import DoubleCrystalMonochromatorWithDSpacing
10
11
  from dodal.devices.eiger import EigerDetector
11
12
  from dodal.devices.fast_grid_scan import (
@@ -13,7 +14,6 @@ from dodal.devices.fast_grid_scan import (
13
14
  ZebraFastGridScanThreeD,
14
15
  )
15
16
  from dodal.devices.flux import Flux
16
- from dodal.devices.i03.beamsize import Beamsize
17
17
  from dodal.devices.robot import BartRobot
18
18
  from dodal.devices.s4_slit_gaps import S4SlitGaps
19
19
  from dodal.devices.synchrotron import Synchrotron
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx-bluesky
3
- Version: 1.5.16
3
+ Version: 1.6.3
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
@@ -242,7 +242,7 @@ Requires-Dist: blueapi>=1.8.0
242
242
  Requires-Dist: ophyd>=1.10.5
243
243
  Requires-Dist: ophyd-async>=0.14.0
244
244
  Requires-Dist: bluesky>=1.14.6
245
- Requires-Dist: dls-dodal==1.69.0
245
+ Requires-Dist: dls-dodal==2.0.0
246
246
  Dynamic: license-file
247
247
 
248
248
  mx-bluesky
@@ -1,7 +1,7 @@
1
1
  mx_bluesky/Getting started.ipynb,sha256=7Jca55mqPkoqC894HHEXjRKMiECuMN_7P4vlmSF2sgw,6513
2
2
  mx_bluesky/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
3
3
  mx_bluesky/__main__.py,sha256=RVqPnxDisFMIn_aoEi0drlThNHgKTJULnSrotouIKI0,480
4
- mx_bluesky/_version.py,sha256=AUhyhQY4Zp0fmRL5GWktY8vZx2VB59787rbe5ydecrY,706
4
+ mx_bluesky/_version.py,sha256=G38fpx_vDfL4EzQpAGJYyrke-spatelcNUUTx7Yh8BM,704
5
5
  mx_bluesky/definitions.py,sha256=ULpEYAUzdQiEbBoTgYTMxfUf3DDDjhYtvDxofs7Qxqw,168
6
6
  mx_bluesky/jupyter_example.ipynb,sha256=oGYWduEjWrSpciCBe9strBng1Mh_dPZuQt6dOYnrPdU,1860
7
7
  mx_bluesky/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -17,39 +17,39 @@ mx_bluesky/beamlines/aithre_lasershaping/parameters/__init__.py,sha256=47DEQpj8H
17
17
  mx_bluesky/beamlines/aithre_lasershaping/parameters/constants.py,sha256=g9jtMQAPC2htINynpTxRH9W6SbbsK67qqBCJprP01Xk,356
18
18
  mx_bluesky/beamlines/aithre_lasershaping/parameters/robot_load_parameters.py,sha256=KTieNHdKMUS6Eev8EuXvSEkJBZN2-Wyt-_KD5W3E6pU,191
19
19
  mx_bluesky/beamlines/i02_1/parameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- mx_bluesky/beamlines/i02_1/parameters/gridscan.py,sha256=BxljHUuWDDqu-AV0Hs7UleiKlSYwzJDNOMo0TzSDL5s,1283
21
- mx_bluesky/beamlines/i04/__init__.py,sha256=LlotTcJ38SA-oj8Ps2dYSoEHaYsYQXNy59ekeDTumjs,554
22
- mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py,sha256=UVDRV1rz6Iz96KYRfd3X932QZ5_Wl_YL0VU17V45Trc,7505
23
- mx_bluesky/beamlines/i04/thawing_plan.py,sha256=ccGiH8xvpvbdcycMqKj3xHhSOSksXV1vsvrNbqo4Ho0,10009
20
+ mx_bluesky/beamlines/i02_1/parameters/gridscan.py,sha256=tKkpOJfukSZFEvFIaBkhwfVYzbAaa_0qNiZwW4Wto_A,1293
21
+ mx_bluesky/beamlines/i04/__init__.py,sha256=oqtrB-A5Cpmg3ssr84EcoMyBuU6fdcWwkQ6GSetri3U,676
22
+ mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py,sha256=QeiaGfP_e-opot2f8e8-IKxVJyOL6W03Xi18GDzVlrw,7538
23
+ mx_bluesky/beamlines/i04/thawing_plan.py,sha256=2Mj8LMuiOZUeGy_Ld5GU8Q1_dtNa4NwuYD-AP_EownM,10029
24
24
  mx_bluesky/beamlines/i04/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  mx_bluesky/beamlines/i04/callbacks/murko_callback.py,sha256=Ocz11OPVO85ATwPUGPWlk89BGkxwfAB0BKmC0iFZJHc,5607
26
26
  mx_bluesky/beamlines/i04/experiment_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py,sha256=aS9HHX8lJlTEmw3vAHnvQdkp5zPf91jpdjoWt9pYB3M,12804
27
+ mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py,sha256=2vmbHPFJRxiD4vzA24DTmdCcn8AL1rNj0i7KJnld5Rc,12824
28
28
  mx_bluesky/beamlines/i04/external_interaction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  mx_bluesky/beamlines/i04/external_interaction/config_server.py,sha256=Zpair6Qw1nBgm-w8eAg0f-4mjHouAnaF2Fu2Pj8zTeU,425
30
30
  mx_bluesky/beamlines/i04/oav_centering_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py,sha256=kgAD8cnMm1USyzDnZcy8Z31i4Ss1ki9Aym9e6tAzCag,4256
31
+ mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py,sha256=7qdEI6Gf4etD6XV0XPwuJSKfn-y88CzmqT4geTHfJpU,13008
32
32
  mx_bluesky/beamlines/i04/parameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  mx_bluesky/beamlines/i04/parameters/constants.py,sha256=H17HqwuAT1upmQHGartdIEBImVEuX1nObwbADwT__Kc,750
34
34
  mx_bluesky/beamlines/i23/__init__.py,sha256=7nwQiKBZAXLnvPhCqaI2VC1k4TOzQalOUvwF6SQ3Yd4,95
35
35
  mx_bluesky/beamlines/i23/serial.py,sha256=XVbHM8NevnJMFAJD9jkxG-VnPaWX6t_k-wlipRw0pmY,2055
36
36
  mx_bluesky/beamlines/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  mx_bluesky/beamlines/i24/jungfrau_commissioning/__init__.py,sha256=5V-ZjCI42faVxg2I5_7Kb440VQzauFWg4oMSgCu-cDU,363
38
- mx_bluesky/beamlines/i24/jungfrau_commissioning/composites.py,sha256=yFh5f0wZjc4aTG2cPg-43au-OYn-6RYZvQ51yYmk0eA,1296
38
+ mx_bluesky/beamlines/i24/jungfrau_commissioning/composites.py,sha256=NtoEO7OqNsSKM6sACcK7AHYYdlVhaNEjK3RFKPx16X0,1356
39
39
  mx_bluesky/beamlines/i24/jungfrau_commissioning/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  mx_bluesky/beamlines/i24/jungfrau_commissioning/callbacks/metadata_writer.py,sha256=Yq8F4kBMDlKRqVUBXLM2QzaJSpWclx3HuYnpXWBEhS0,3485
41
41
  mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/do_darks.py,sha256=0h_aldh2XGnMho1EPSqgH_w4P2XiwpSOc56NtEzwxOo,4294
43
- mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/rotation_scan_plan.py,sha256=s4hw_RtjyHZukZLA8O5Dan7iN0kddGXUcdkRx7hluuo,10686
42
+ mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/do_darks.py,sha256=NXw6gDCD6UPbRcIDPXsQRiJJ2DMDI5PlEVCnQxIxFMY,4304
43
+ mx_bluesky/beamlines/i24/jungfrau_commissioning/experiment_plans/rotation_scan_plan.py,sha256=8c3ZdDQWvIbIsYMa4E_-nzyZLnKvddOVYn3qPuAoEak,10726
44
44
  mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/__init__.py,sha256=yxc_V5DfWKXtOmuX-U9YEdkn05ZriD9My65lpEYTuRo,115
45
- mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_external_acquisition.py,sha256=36TuQyWADFZtF8YeUXYuQ1z6MpFMCm66CSP50isccYU,1401
45
+ mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_external_acquisition.py,sha256=gq1lYZaOMuYZ1wx8XieBW-3LbkvwLLjGUufY9VULIW4,1411
46
46
  mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/do_internal_acquisition.py,sha256=J2dSNqRG0q05o_Rxx85KngqyMuEm0Kg84cGqrLW9jE0,1878
47
- mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/plan_utils.py,sha256=a36KcAcK44ICcrBe4RtFyQxyWPKB0HWR2CHWc24ff-M,2684
47
+ mx_bluesky/beamlines/i24/jungfrau_commissioning/plan_stubs/plan_utils.py,sha256=7cLRem5mWj0Dm-gnzAvTUM3OFQW3WyFKsNLd4UL-24E,2694
48
48
  mx_bluesky/beamlines/i24/parameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  mx_bluesky/beamlines/i24/parameters/constants.py,sha256=9O1_QMu4_Y53KBeXFukT42A4WTqtODWzRWytgJEtsgs,290
50
50
  mx_bluesky/beamlines/i24/serial/__init__.py,sha256=Wq8i-XNhmBpfXSF3qZfzL9iubJrIzcVtMTH-fRGb3Eo,1619
51
51
  mx_bluesky/beamlines/i24/serial/blueapi_config.yaml,sha256=P0saF1bqt4ANU-2mtS_ZHO4NYr_ierUJN-gf6cspic8,350
52
- mx_bluesky/beamlines/i24/serial/dcid.py,sha256=oiQ6CNTkUzVbxUjaoxoPk4qyQ3Ga7xbFbFnToEkvzLs,13763
52
+ mx_bluesky/beamlines/i24/serial/dcid.py,sha256=RevHXQE9AVKD3ltITptotDXMwhnPn3tUjizT5ocV82E,13793
53
53
  mx_bluesky/beamlines/i24/serial/log.py,sha256=a7tC-o3yzWpNvf27suQmn8O1gQec3_2-DbWW-tp8tL4,4800
54
54
  mx_bluesky/beamlines/i24/serial/run_extruder.sh,sha256=Dz3XLx0iPFxwo9KnG7oNBZFG19BGrb37O2w-ki_X9s4,1659
55
55
  mx_bluesky/beamlines/i24/serial/run_fixed_target.sh,sha256=KnnDP8_i47c4nWAYqugT-j4H6lcujVitIFs7sz5GzDs,1840
@@ -59,16 +59,16 @@ mx_bluesky/beamlines/i24/serial/set_visit_directory.sh,sha256=9W0ooseih2PszePztp
59
59
  mx_bluesky/beamlines/i24/serial/start_blueapi.sh,sha256=4iBzQljTLXQiVIF4UO7drc9qUkP7KSRC6Mjh8hcGxpI,608
60
60
  mx_bluesky/beamlines/i24/serial/write_nexus.py,sha256=3xNxco-mY17dS-JrWtYAXu-DWLAmEA5TQ8J-IaDgSUM,4748
61
61
  mx_bluesky/beamlines/i24/serial/extruder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- mx_bluesky/beamlines/i24/serial/extruder/i24ssx_extruder_collect_py3v2.py,sha256=XzsC7vt-OqBzFp-4sh8FkUDojFCzpMR8pEZf-opUJKc,16493
62
+ mx_bluesky/beamlines/i24/serial/extruder/i24ssx_extruder_collect_py3v2.py,sha256=YBbD1hG5wjfmV3wRASz_oa3bJsHn5ZK0yoTtkeUCjUg,16553
63
63
  mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl,sha256=VqK_0EW_7H433nYLvprXvYRW-xWXWMF1dHqrKxQ0UOQ,1959
64
64
  mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl,sha256=u0WFI9LwUAjMvhQuV0SRwHLpGKwqmz17D4YNUPfBwG8,31011
65
65
  mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl,sha256=K79vmGAcf9qVEQLXTgr0g4bZDWaJ7nFoK4e0Ex7qAwM,14690
66
66
  mx_bluesky/beamlines/i24/serial/fixed_target/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
67
  mx_bluesky/beamlines/i24/serial/fixed_target/ft_utils.py,sha256=puO1vg0x-TPgv8FbEFg73ohJqbwDpcG50_2cLUTa2FA,1210
68
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_collect_py3v1.py,sha256=UA4HBhaTk0Z-usBfOczlUQF1jiHrFdEcmJ0jc6JmfZA,22504
69
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_manager_py3v1.py,sha256=6DeItKS_gN3OKur39Te9SXu34oVVLjdCIhcVvukE9oo,32671
68
+ mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_collect_py3v1.py,sha256=7eAa6eZxuvjxHtM0ZmcrHaYlT5OjL42lBlABGdkgAjU,22574
69
+ mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_manager_py3v1.py,sha256=XkD7qrv2htki7Bee9MU4QMnscy-3L8SVA_XD9TTpRqY,32701
70
70
  mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_chip_startup_py3v1.py,sha256=_nlBI-LDzgNObF_SVJFqC390_ogWFmTJqVPgJA_C_DM,3275
71
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py,sha256=144wDZTcbXhoVMaNlj20zDezS62iN_kjoMtbLQeXDRU,6825
71
+ mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_moveonclick.py,sha256=kx18_KQMe2WmNeomYfJRcP8Xr2G9StjneJ_QZhLC-yQ,6835
72
72
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl,sha256=jZJ37qg5pOdG6-wrYKpi2Xfz6LwSg7D6PrHlaansjFI,10371
73
73
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl,sha256=hYymun88ECy_6A4QohsFf1COwE6ln2goDehUPdEJB3Y,1962
74
74
  mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl,sha256=D5jHfyk7caGKz3K5e7_8M0wX3R9wqFp1jiF0QXdGj7s,56112
@@ -93,12 +93,12 @@ mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py,sha256=c1IO9b78eT78kp
93
93
  mx_bluesky/beamlines/i24/serial/setup_beamline/ca.py,sha256=POg4BRnc9h1VwZEDqb-poMevgC8AwJmIi8RCYvZb8hw,1307
94
94
  mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py,sha256=kFATZxSRz4yL3ysfzrgDuocHu8vw_q0cuciC21eXBeg,6995
95
95
  mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py,sha256=lGgdUUr13_ncQQuFrNAye460Weo_-ecRyWAGqRUjV6Q,1042
96
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py,sha256=BNn2FRn7cDvEdB6uNETwpC6_Zv9SalYgNnr3TXCXMmM,8964
96
+ mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py,sha256=AKrOgg8-gByNzOGpk7HMJwml0b7U5SV3brFPJxWpIO0,9014
97
97
  mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py,sha256=AAOfQpqHbMjHN7NVJ96c68lvC_HL1ZwviAE2dr1qbg4,2926
98
98
  mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py,sha256=zJu2kzWHUTdir1ojYmXWCM-cz0IIXcp2kJmCS90PjeQ,17458
99
99
  mx_bluesky/beamlines/i24/serial/web_gui_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
- mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py,sha256=Gck3y6geOeqE3gC7Ne9mK27fYiu7owj1bXEEosSYsm0,11804
101
- mx_bluesky/beamlines/i24/serial/web_gui_plans/oav_plans.py,sha256=YxbSNsNPo1jcEMbRkHf1x3mQ1m6qQF1bL_J6j5cjvQ4,2054
100
+ mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py,sha256=gNvLeK3h_OOap4Qfw0GIYiclAmNn95abhxC37idM67A,11874
101
+ mx_bluesky/beamlines/i24/serial/web_gui_plans/oav_plans.py,sha256=r4yiIJ-pfqSanYGRQRApqVYrRZQaCEISTtBUjHEHYF8,2064
102
102
  mx_bluesky/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
103
  mx_bluesky/common/xrc_result.py,sha256=tUJ6qkDTTB6H1F71IvVAKtmHCRyHSU_tj9GRzVmnE7w,3219
104
104
  mx_bluesky/common/device_setup_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -114,11 +114,11 @@ mx_bluesky/common/device_setup_plans/xbpm_feedback.py,sha256=UZxFgxG_xhc9k1SzKSb
114
114
  mx_bluesky/common/experiment_plans/__init__.py,sha256=FMA-4VN1TJCPcyURKF0qPIQ8uo8YBbtHPRdJokVF4MA,129
115
115
  mx_bluesky/common/experiment_plans/beamstop_check.py,sha256=W6dcG1vfJP2_GDeAjuQ_tBvnre106Jq_PSJG3pH76PY,9004
116
116
  mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py,sha256=407E9rp0yGWWIU1fJrgqK_hC19mVwRK-Und7fMlGNDc,3062
117
- mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py,sha256=SBd5KeDw9OH49-EtaYKD8XRt9xftFHbgKQ_s-cKQFIA,13566
117
+ mx_bluesky/common/experiment_plans/common_flyscan_xray_centre_plan.py,sha256=BB1KHNmoRliyVRpbsWY60w59wyw7aBVkA3q8kqFfKe4,13577
118
118
  mx_bluesky/common/experiment_plans/common_grid_detect_then_xray_centre_plan.py,sha256=-QCj6utLqQNbaguoVh5htYhNihfpVUS7oo5zMvIYOfw,7033
119
- mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py,sha256=SOX6eyPNm7hLJaRJ8esd4DOE2nBjT_2gbmAz1Ozc57g,7154
119
+ mx_bluesky/common/experiment_plans/oav_grid_detection_plan.py,sha256=-PcZ5J6hKKwqN7wbfD3UkChCL0D9qpiu9kdj1xvBjYc,7209
120
120
  mx_bluesky/common/experiment_plans/oav_snapshot_plan.py,sha256=3xhEen8Op_lPSB63sAfbsEfq9sWNIbtMv5ssw8xz0R8,3598
121
- mx_bluesky/common/experiment_plans/pin_tip_centring_plan.py,sha256=DTBdm7zMwrJUkhS_pu2IHAfKMgYnzBZNa-QIuusxCSo,6184
121
+ mx_bluesky/common/experiment_plans/pin_tip_centring_plan.py,sha256=z6g9SMzYMKzaChKnTfMNoHuFt5rnJ5_RigTuuvS5Bg0,6294
122
122
  mx_bluesky/common/experiment_plans/inner_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
123
  mx_bluesky/common/experiment_plans/inner_plans/do_fgs.py,sha256=IMsfA1-4POl5h5X3mczN-Hll-OlGwrp8RaI32TMlyjM,4884
124
124
  mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py,sha256=BDW-xmzvMXo8qQXyBl7j5OrL0wBLM00W5xMNPO_YaLk,2588
@@ -179,10 +179,10 @@ mx_bluesky/hyperion/plan_runner_api.py,sha256=aWO3THjNl9U4UUuOC7jNrrb6bLp8zqR3GU
179
179
  mx_bluesky/hyperion/runner.py,sha256=YSdHgtAmMitHfooDwicA9mLhav457MGzLijlhFYeDCo,7167
180
180
  mx_bluesky/hyperion/blueapi_plans/__init__.py,sha256=VwhB0PE0cnHWa5MafkxKahCSuYTBoc-_o-INE85lVJ8,3557
181
181
  mx_bluesky/hyperion/device_setup_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
- mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py,sha256=MPPpBkNCyx7r64SMb-2Zm8x1z1Rmdq-21Njr-5gqmxQ,5155
182
+ mx_bluesky/hyperion/device_setup_plans/dcm_pitch_roll_mirror_adjuster.py,sha256=_zw32pay4hQvFRdjqY9DjPgAjfhuzgV7n-7EIw5xk3Y,5165
183
183
  mx_bluesky/hyperion/device_setup_plans/setup_panda.py,sha256=prhTvpa0HYkBDUonMBux1aammdBdbT9KSTZbfvB_Zns,8507
184
184
  mx_bluesky/hyperion/device_setup_plans/setup_zebra.py,sha256=dOfBQMibyH3CjSh_m5RJKsxs2DtaM3jtwEs7lkqQppo,1525
185
- mx_bluesky/hyperion/device_setup_plans/utils.py,sha256=XlbHaIAnuCyHY5PmutiCf_j9MmFvITcmURA9yXfXD1o,425
185
+ mx_bluesky/hyperion/device_setup_plans/utils.py,sha256=9Qi4qZ5jlJ9WyjNBMXIyoliqO4YPcHJEHR7WKdLdJMA,435
186
186
  mx_bluesky/hyperion/experiment_plans/__init__.py,sha256=dJjwLk0EQP-1hKhbs8aRxTF_LxUXgB7kcgDlaP-tMnk,787
187
187
  mx_bluesky/hyperion/experiment_plans/experiment_registry.py,sha256=aj6jLkIdVSKin0wkH-HvK0kpZIeCr29Sg8jDH2k5XWY,1713
188
188
  mx_bluesky/hyperion/experiment_plans/hyperion_flyscan_xray_centre_plan.py,sha256=0UnoY5b3ZAKOw3Lh4k-xylithj0vOKNCPEi9wKGzuns,5995
@@ -190,11 +190,11 @@ mx_bluesky/hyperion/experiment_plans/hyperion_grid_detect_then_xray_centre_plan.
190
190
  mx_bluesky/hyperion/experiment_plans/load_centre_collect_full_plan.py,sha256=6EAasC4E3-bIBFX7Ru7uznTEGQTF76fOCibf3UOm0h4,7956
191
191
  mx_bluesky/hyperion/experiment_plans/optimise_attenuation_plan.py,sha256=9M65cboRt5FR0V2sOjjyq6eLXA0L6xnSeXFzLpW67zw,16169
192
192
  mx_bluesky/hyperion/experiment_plans/pin_centre_then_xray_centre_plan.py,sha256=KB75HQHNLL6g6Z0C8cINksX4wS285uMbx77FJ7Z2b0c,5816
193
- mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py,sha256=7sbouZ-86Nr0oiXgxOdqEyFIT4OZj52VcKcjzeGhJbE,5768
194
- mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py,sha256=SB_dRsRKFW7hkSXSQR-wcN_h0-5_wvKs_eklBrLLRBA,6998
195
- mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py,sha256=-uqn4yH80Hg4W1oeo2TdacqhJP9vORLNf4QaSmrloK0,12021
196
- mx_bluesky/hyperion/experiment_plans/set_energy_plan.py,sha256=VOTFWt7SO07eQh7pGVXwTbPfVJVoHQ3-34BVZme4Iww,2685
197
- mx_bluesky/hyperion/experiment_plans/udc_default_state.py,sha256=pzwRQdid3a2TAr_CUFAzSfNNWVlmiACvKCkE6wntn1Q,6582
193
+ mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py,sha256=UsN3MqqVrmnS9BOXMfBpglR_Fg51XeoVaF9VPuiRn7s,5788
194
+ mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py,sha256=lV0QuDep9sMPG5wQdhJZmvQ43QdWA47HoCZgReEZAfo,7028
195
+ mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py,sha256=55vEU5CaHcmVHzfS6fmCLsSWxUot5tWZT5T2vIMWp7o,12041
196
+ mx_bluesky/hyperion/experiment_plans/set_energy_plan.py,sha256=pq44835H-uZs1twhoXmmt-nErto9oeTLKzc4K0VkCaI,2705
197
+ mx_bluesky/hyperion/experiment_plans/udc_default_state.py,sha256=gH2Q6ajkXFFnHob-H_yGPCXMWb3HWf6vB45yU3_cRLo,7049
198
198
  mx_bluesky/hyperion/external_interaction/__init__.py,sha256=95DwXDmKsx36RgAL-AtLZl2LQoLPKbzeYdlkkP_4Coc,559
199
199
  mx_bluesky/hyperion/external_interaction/agamemnon.py,sha256=4vBBynn7RTUUzFXKnoKyuGLsTfg2zaeSJM6bNMwSZm8,11850
200
200
  mx_bluesky/hyperion/external_interaction/config_server.py,sha256=4QIcx_3U4PJfPA9UrGEybJJpd6sTejsdhmDXqUoW00o,498
@@ -216,7 +216,7 @@ mx_bluesky/hyperion/parameters/__init__.py,sha256=kf2wfcILBUBpT0tJ8-W39BywQUkn67
216
216
  mx_bluesky/hyperion/parameters/cli.py,sha256=9I2t79xTVKwwwgMFqJZL17sbviPJo66NiSdlnaMn7B4,2701
217
217
  mx_bluesky/hyperion/parameters/components.py,sha256=dkh7BTRlG1P3QeDG2AoLFaiEIv_IPZxfKd-x9dad4X8,611
218
218
  mx_bluesky/hyperion/parameters/constants.py,sha256=PFnonqcihW2J7qonpHZt9ynJR_IJoUvp_5_mgr4NAjg,2509
219
- mx_bluesky/hyperion/parameters/device_composites.py,sha256=QROUpZJY2YRLNDGhgyn37cibMoMVUcY3N_VNsCFNNiA,2294
219
+ mx_bluesky/hyperion/parameters/device_composites.py,sha256=LDXOxFE4O4fuwwcix2g_deRVB4SEjCUtauI4zNV7w5I,2304
220
220
  mx_bluesky/hyperion/parameters/gridscan.py,sha256=dnK2veiDFfW4U02A4MTzODu0TJPZk-hE_dTCQnb3tSU,3916
221
221
  mx_bluesky/hyperion/parameters/load_centre_collect.py,sha256=DF3jEbvgNklh1LPhjhuqhwsZtiK0dPuJrkTbaVB-QEk,3734
222
222
  mx_bluesky/hyperion/parameters/robot_load.py,sha256=kZRBzsw_nQKCq1FfnAk_dDzHoSgDKKkShcVP9GPv5V8,844
@@ -230,9 +230,9 @@ mx_bluesky/hyperion/utils/__init__.py,sha256=f4E8wInL1Ll4eeFtAiyKmipOBTPlUtKmVK-
230
230
  mx_bluesky/hyperion/utils/context.py,sha256=3mXVpWnuHkZz37Fa-VsfbF_RZxIVGERlyGHL0rWxWgE,1237
231
231
  mx_bluesky/phase1_zebra/__init__.py,sha256=Edhhn2L9MVXnjJhyD5_yKQVUDo7XW98rvuT7dlzIn58,132
232
232
  mx_bluesky/phase1_zebra/device_setup_plans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
- mx_bluesky-1.5.16.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
234
- mx_bluesky-1.5.16.dist-info/METADATA,sha256=WPTIbMzuSZw90ldzext2X1m3J7PTc51sO34pk_lSkJM,16362
235
- mx_bluesky-1.5.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
236
- mx_bluesky-1.5.16.dist-info/entry_points.txt,sha256=HgVtwgWoMRn9-X6rxCcSY3Jz_paspJTIlc-t2NFzWpo,409
237
- mx_bluesky-1.5.16.dist-info/top_level.txt,sha256=S4rrzXIUef58ulf_04wn01XGZ3xeJjXs4LPEJ_xoF-I,11
238
- mx_bluesky-1.5.16.dist-info/RECORD,,
233
+ mx_bluesky-1.6.3.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
234
+ mx_bluesky-1.6.3.dist-info/METADATA,sha256=GRWjp6Hr3H6XhgyRUu0Xzh7V-gRFyBgWr6_cVApLmIY,16360
235
+ mx_bluesky-1.6.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
236
+ mx_bluesky-1.6.3.dist-info/entry_points.txt,sha256=HgVtwgWoMRn9-X6rxCcSY3Jz_paspJTIlc-t2NFzWpo,409
237
+ mx_bluesky-1.6.3.dist-info/top_level.txt,sha256=S4rrzXIUef58ulf_04wn01XGZ3xeJjXs4LPEJ_xoF-I,11
238
+ mx_bluesky-1.6.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5