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.
- mx_bluesky/_version.py +2 -2
- mx_bluesky/beamlines/i04/__init__.py +6 -1
- mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py +2 -3
- mx_bluesky/beamlines/i04/thawing_plan.py +173 -59
- mx_bluesky/beamlines/i24/serial/blueapi_config.yaml +1 -1
- mx_bluesky/beamlines/i24/serial/dcid.py +4 -25
- mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl +4 -7
- mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +5 -5
- mx_bluesky/beamlines/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +18 -107
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +1 -1
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl +1 -4
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +13 -13
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +8 -8
- mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +7 -7
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +8 -92
- mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +2 -18
- mx_bluesky/beamlines/i24/serial/parameters/constants.py +0 -2
- mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py +1 -6
- mx_bluesky/beamlines/i24/serial/parameters/fixed_target/cs/cs_maker.json +3 -3
- mx_bluesky/beamlines/i24/serial/run_extruder.sh +15 -0
- mx_bluesky/beamlines/i24/serial/run_fixed_target.sh +17 -0
- mx_bluesky/beamlines/i24/serial/set_visit_directory.sh +1 -1
- mx_bluesky/beamlines/i24/serial/setup_beamline/__init__.py +1 -2
- mx_bluesky/beamlines/i24/serial/setup_beamline/pv.py +0 -25
- mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py +1 -30
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py +0 -94
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py +4 -10
- mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py +12 -20
- mx_bluesky/beamlines/i24/serial/web_gui_plans/general_plans.py +4 -13
- mx_bluesky/beamlines/i24/serial/write_nexus.py +34 -9
- mx_bluesky/common/external_interaction/callbacks/common/ispyb_callback_base.py +1 -1
- mx_bluesky/common/external_interaction/callbacks/common/plan_reactive_callback.py +2 -2
- mx_bluesky/common/external_interaction/callbacks/xray_centre/ispyb_callback.py +2 -2
- mx_bluesky/common/external_interaction/callbacks/xray_centre/nexus_callback.py +2 -2
- mx_bluesky/hyperion/baton_handler.py +41 -4
- mx_bluesky/hyperion/external_interaction/alerting/constants.py +2 -7
- mx_bluesky/hyperion/external_interaction/callbacks/rotation/ispyb_callback.py +2 -2
- {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/METADATA +2 -2
- {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/RECORD +43 -43
- {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/WHEEL +0 -0
- {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/entry_points.txt +0 -0
- {mx_bluesky-1.5.4.dist-info → mx_bluesky-1.5.5.dist-info}/licenses/LICENSE +0 -0
- {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
|
-
|
|
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
|
-
|
|
175
|
-
detector in use is the Eiger, the Pilatus cable is repurposed to trigger
|
|
176
|
-
|
|
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
|
|
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
|
|
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
|
|
214
|
-
LASER_TTL =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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"
|
|
104
|
+
det: Literal["eiger"],
|
|
107
105
|
detector_stage: YZStage = inject("detector_motion"),
|
|
108
106
|
) -> MsgGenerator:
|
|
109
|
-
det_y_target = Eiger.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
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
|
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
|
|
28
|
-
class will be activated, and on
|
|
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
|
-
|
|
73
|
-
deposition on
|
|
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
|
|
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
|
|
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
|
-
|
|
7
|
-
|
|
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
|
-
|
|
38
|
-
deposition on
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
12
|
-
mx_bluesky/beamlines/i04/redis_to_murko_forwarder.py,sha256=
|
|
13
|
-
mx_bluesky/beamlines/i04/thawing_plan.py,sha256=
|
|
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=
|
|
22
|
-
mx_bluesky/beamlines/i24/serial/dcid.py,sha256=
|
|
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=
|
|
25
|
-
mx_bluesky/beamlines/i24/serial/run_fixed_target.sh,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
33
|
-
mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DetStage.edl,sha256=
|
|
34
|
-
mx_bluesky/beamlines/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl,sha256=
|
|
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=
|
|
39
|
-
mx_bluesky/beamlines/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py,sha256=
|
|
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=
|
|
43
|
-
mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DetStage.edl,sha256=
|
|
44
|
-
mx_bluesky/beamlines/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
56
|
-
mx_bluesky/beamlines/i24/serial/parameters/experiment_parameters.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
65
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/pv_abstract.py,sha256=
|
|
66
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_beamline.py,sha256=
|
|
67
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_detector.py,sha256=
|
|
68
|
-
mx_bluesky/beamlines/i24/serial/setup_beamline/setup_zebra_plans.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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
|
|
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.
|
|
187
|
-
mx_bluesky-1.5.
|
|
188
|
-
mx_bluesky-1.5.
|
|
189
|
-
mx_bluesky-1.5.
|
|
190
|
-
mx_bluesky-1.5.
|
|
191
|
-
mx_bluesky-1.5.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|