dls-dodal 1.68.0__py3-none-any.whl → 2.0.0__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.
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/METADATA +1 -31
- dls_dodal-2.0.0.dist-info/RECORD +354 -0
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/WHEEL +1 -1
- dodal/_version.py +2 -2
- dodal/beamlines/__init__.py +10 -17
- dodal/beamlines/adsim.py +40 -33
- dodal/beamlines/b01_1.py +11 -0
- dodal/beamlines/b07.py +17 -21
- dodal/beamlines/b07_1.py +20 -22
- dodal/beamlines/b07_shared.py +12 -0
- dodal/beamlines/b16.py +1 -1
- dodal/beamlines/b21.py +15 -6
- dodal/beamlines/i02_1.py +17 -45
- dodal/beamlines/i02_2.py +6 -12
- dodal/beamlines/i03.py +8 -5
- dodal/beamlines/i03_supervisor.py +19 -0
- dodal/beamlines/i04.py +87 -184
- dodal/beamlines/i05.py +9 -39
- dodal/beamlines/i05_1.py +4 -13
- dodal/beamlines/i05_shared.py +51 -0
- dodal/beamlines/i06_1.py +26 -0
- dodal/beamlines/{i06.py → i06_shared.py} +25 -14
- dodal/beamlines/i07.py +14 -16
- dodal/beamlines/i09.py +76 -29
- dodal/beamlines/i09_1.py +25 -56
- dodal/beamlines/i09_1_shared.py +61 -0
- dodal/beamlines/i09_2.py +6 -100
- dodal/beamlines/i09_2_shared.py +110 -0
- dodal/beamlines/i10.py +60 -54
- dodal/beamlines/i10_1.py +99 -10
- dodal/beamlines/{i10_optics.py → i10_shared.py} +80 -66
- dodal/beamlines/i11.py +31 -18
- dodal/beamlines/i13_1.py +1 -1
- dodal/beamlines/i15.py +6 -6
- dodal/beamlines/i15_1.py +6 -6
- dodal/beamlines/i16.py +11 -0
- dodal/beamlines/i17.py +37 -28
- dodal/beamlines/i18.py +3 -4
- dodal/beamlines/i19_1.py +95 -34
- dodal/beamlines/i19_2.py +68 -52
- dodal/beamlines/i19_optics.py +26 -13
- dodal/beamlines/i20_1.py +17 -11
- dodal/beamlines/i21.py +44 -29
- dodal/beamlines/i22.py +19 -4
- dodal/beamlines/i23.py +20 -27
- dodal/beamlines/i24.py +64 -113
- dodal/beamlines/k07.py +99 -5
- dodal/beamlines/p38.py +3 -3
- dodal/beamlines/p60.py +35 -14
- dodal/beamlines/p99.py +16 -15
- dodal/beamlines/training_rig.py +20 -12
- dodal/cli.py +36 -2
- dodal/common/__init__.py +2 -1
- dodal/common/beamlines/beamline_parameters.py +2 -1
- dodal/common/beamlines/beamline_utils.py +11 -9
- dodal/common/beamlines/commissioning_mode.py +6 -3
- dodal/common/coordination.py +12 -14
- dodal/common/crystal_metadata.py +5 -8
- dodal/common/device_utils.py +4 -3
- dodal/common/maths.py +87 -19
- dodal/common/udc_directory_provider.py +13 -8
- dodal/common/visit.py +18 -21
- dodal/common/watcher_utils.py +13 -12
- dodal/device_manager.py +94 -54
- dodal/devices/aperturescatterguard.py +26 -27
- dodal/devices/areadetector/plugins/cam.py +1 -3
- dodal/devices/areadetector/plugins/mjpg.py +6 -5
- dodal/devices/attenuator/attenuator.py +12 -11
- dodal/devices/beamlines/b07/__init__.py +3 -0
- dodal/devices/{b07_1 → beamlines/b07_1}/__init__.py +2 -2
- dodal/devices/{b07_1 → beamlines/b07_1}/ccmc.py +5 -10
- dodal/devices/{b16 → beamlines/b16}/detector.py +2 -3
- dodal/devices/{i02_1 → beamlines/i02_1}/fast_grid_scan.py +2 -3
- dodal/devices/{i02_1 → beamlines/i02_1}/sample_motors.py +1 -1
- dodal/devices/{i03 → beamlines/i03}/beamsize.py +11 -7
- dodal/devices/{i03 → beamlines/i03}/dcm.py +1 -2
- dodal/devices/{i03 → beamlines/i03}/undulator_dcm.py +4 -5
- dodal/devices/beamlines/i04/beam_centre.py +151 -0
- dodal/devices/{i04 → beamlines/i04}/beamsize.py +11 -7
- dodal/devices/beamlines/i04/max_pixel.py +25 -0
- dodal/devices/{i04 → beamlines/i04}/murko_results.py +23 -8
- dodal/devices/{i04 → beamlines/i04}/transfocator.py +10 -15
- dodal/devices/beamlines/i05/__init__.py +3 -0
- dodal/devices/beamlines/i06_shared/__init__.py +3 -0
- dodal/devices/beamlines/i06_shared/i06_enum.py +7 -0
- dodal/devices/{i07 → beamlines/i07}/dcm.py +2 -3
- dodal/devices/{i07 → beamlines/i07}/id.py +8 -9
- dodal/devices/beamlines/i09/__init__.py +3 -0
- dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/hard_energy.py +5 -6
- dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/hard_undulator_functions.py +19 -16
- dodal/devices/{i10 → beamlines/i10}/diagnostics.py +4 -3
- dodal/devices/{i10 → beamlines/i10}/i10_apple2.py +37 -51
- dodal/devices/{i10 → beamlines/i10}/rasor/rasor_current_amp.py +1 -24
- dodal/devices/{i10 → beamlines/i10}/rasor/rasor_motors.py +2 -2
- dodal/devices/{i10 → beamlines/i10}/slits.py +5 -3
- dodal/devices/beamlines/i10_1/__init__.py +9 -0
- dodal/devices/beamlines/i10_1/electromagnet/magnet.py +16 -0
- dodal/devices/beamlines/i10_1/electromagnet/stages.py +14 -0
- dodal/devices/beamlines/i10_1/scaler_cards.py +13 -0
- dodal/devices/{i11 → beamlines/i11}/cyberstar_blower.py +1 -1
- dodal/devices/{i11 → beamlines/i11}/diff_stages.py +4 -6
- dodal/devices/{i11 → beamlines/i11}/mythen.py +3 -4
- dodal/devices/{i11 → beamlines/i11}/nx100robot.py +6 -6
- dodal/devices/{i11 → beamlines/i11}/spinner.py +1 -1
- dodal/devices/{i13_1 → beamlines/i13_1}/merlin.py +1 -1
- dodal/devices/{i15 → beamlines/i15}/dcm.py +1 -2
- dodal/devices/{i15 → beamlines/i15}/focussing_mirror.py +5 -5
- dodal/devices/{i15 → beamlines/i15}/jack.py +2 -2
- dodal/devices/{i15 → beamlines/i15}/multilayer_mirror.py +1 -1
- dodal/devices/{i17 → beamlines/i17}/i17_apple2.py +16 -22
- dodal/devices/{i18 → beamlines/i18}/diode.py +1 -1
- dodal/devices/{i19 → beamlines/i19}/access_controlled/attenuator_motor_squad.py +12 -8
- dodal/devices/{i19 → beamlines/i19}/access_controlled/blueapi_device.py +16 -15
- dodal/devices/beamlines/i19/access_controlled/piezo_control.py +72 -0
- dodal/devices/{i19 → beamlines/i19}/access_controlled/shutter.py +11 -9
- dodal/devices/{i19 → beamlines/i19}/backlight.py +3 -1
- dodal/devices/{i19 → beamlines/i19}/mapt_configuration.py +2 -1
- dodal/devices/{i19 → beamlines/i19}/pin_col_stages.py +11 -8
- dodal/devices/beamlines/i19/pin_tip.py +32 -0
- dodal/devices/beamlines/i21/__init__.py +3 -0
- dodal/devices/{i22 → beamlines/i22}/dcm.py +1 -2
- dodal/devices/{i22 → beamlines/i22}/fswitch.py +1 -3
- dodal/devices/{i22 → beamlines/i22}/nxsas.py +5 -4
- dodal/devices/{i24 → beamlines/i24}/beam_center.py +1 -1
- dodal/devices/{i24 → beamlines/i24}/beamstop.py +2 -2
- dodal/devices/{i24 → beamlines/i24}/commissioning_jungfrau.py +12 -12
- dodal/devices/{i24 → beamlines/i24}/dcm.py +1 -3
- dodal/devices/{i24 → beamlines/i24}/dual_backlight.py +3 -3
- dodal/devices/{i24 → beamlines/i24}/pmac.py +9 -7
- dodal/devices/{p60 → beamlines/p60}/lab_xray_source.py +1 -1
- dodal/devices/beamlines/p99/__init__.py +0 -0
- dodal/devices/{p99 → beamlines/p99}/andor2_point.py +11 -15
- dodal/devices/bimorph_mirror.py +22 -20
- dodal/devices/collimation_table.py +3 -2
- dodal/devices/common_dcm.py +30 -20
- dodal/devices/controllers.py +2 -2
- dodal/devices/cryostream.py +8 -0
- dodal/devices/current_amplifiers/current_amplifier.py +16 -18
- dodal/devices/current_amplifiers/current_amplifier_detector.py +9 -10
- dodal/devices/current_amplifiers/femto.py +8 -9
- dodal/devices/current_amplifiers/sr570.py +16 -16
- dodal/devices/current_amplifiers/struck_scaler_counter.py +5 -5
- dodal/devices/detector/det_resolution.py +9 -8
- dodal/devices/detector/detector.py +4 -2
- dodal/devices/diamond_filter.py +3 -4
- dodal/devices/eiger.py +32 -17
- dodal/devices/eiger_odin.py +1 -1
- dodal/devices/electron_analyser/base/__init__.py +3 -3
- dodal/devices/electron_analyser/base/base_controller.py +32 -21
- dodal/devices/electron_analyser/base/base_detector.py +15 -20
- dodal/devices/electron_analyser/base/base_driver_io.py +39 -46
- dodal/devices/electron_analyser/base/base_enums.py +0 -5
- dodal/devices/electron_analyser/base/base_region.py +29 -31
- dodal/devices/electron_analyser/base/base_util.py +18 -16
- dodal/devices/electron_analyser/base/energy_sources.py +35 -40
- dodal/devices/electron_analyser/specs/specs_detector.py +7 -6
- dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py +7 -6
- dodal/devices/eurotherm.py +3 -2
- dodal/devices/fast_grid_scan.py +31 -34
- dodal/devices/fast_shutter.py +125 -39
- dodal/devices/flux.py +1 -1
- dodal/devices/focusing_mirror.py +29 -11
- dodal/devices/hutch_shutter.py +6 -6
- dodal/devices/insertion_device/__init__.py +20 -8
- dodal/devices/insertion_device/apple2_controller.py +371 -0
- dodal/devices/insertion_device/apple2_undulator.py +184 -587
- dodal/devices/insertion_device/apple_knot_controller.py +222 -0
- dodal/devices/insertion_device/energy.py +161 -0
- dodal/devices/insertion_device/energy_motor_lookup.py +21 -28
- dodal/devices/insertion_device/lookup_table_models.py +47 -52
- dodal/devices/insertion_device/polarisation.py +36 -0
- dodal/devices/ipin.py +1 -1
- dodal/devices/linkam3.py +7 -5
- dodal/devices/motors.py +107 -19
- dodal/devices/mx_phase1/beamstop.py +2 -4
- dodal/devices/oav/oav_calculations.py +20 -13
- dodal/devices/oav/oav_detector.py +92 -22
- dodal/devices/oav/oav_parameters.py +4 -9
- dodal/devices/oav/oav_to_redis_forwarder.py +22 -18
- dodal/devices/oav/pin_image_recognition/__init__.py +4 -6
- dodal/devices/oav/pin_image_recognition/manual_test.py +1 -2
- dodal/devices/oav/pin_image_recognition/utils.py +30 -32
- dodal/devices/oav/snapshots/grid_overlay.py +10 -9
- dodal/devices/oav/snapshots/snapshot_image_processing.py +15 -13
- dodal/devices/oav/utils.py +20 -6
- dodal/devices/p45.py +3 -9
- dodal/devices/pgm.py +8 -14
- dodal/devices/pressure_jump_cell.py +93 -32
- dodal/devices/qbpm.py +1 -3
- dodal/devices/robot.py +45 -20
- dodal/devices/s4_slit_gaps.py +1 -1
- dodal/devices/selectable_source.py +41 -0
- dodal/devices/slits.py +2 -5
- dodal/devices/smargon.py +2 -3
- dodal/devices/temperture_controller/lakeshore/lakeshore.py +38 -64
- dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +21 -35
- dodal/devices/tetramm.py +7 -7
- dodal/devices/turbo_slit.py +8 -7
- dodal/devices/undulator.py +42 -56
- dodal/devices/util/adjuster_plans.py +2 -3
- dodal/devices/util/epics_util.py +10 -10
- dodal/devices/util/lookup_tables.py +17 -18
- dodal/devices/v2f.py +2 -3
- dodal/devices/watsonmarlow323_pump.py +1 -1
- dodal/devices/xbpm_feedback.py +3 -2
- dodal/devices/xspress3/xspress3.py +8 -11
- dodal/devices/xspress3/xspress3_channel.py +3 -6
- dodal/devices/zebra/zebra.py +21 -7
- dodal/devices/zebra/zebra_constants_mapping.py +12 -7
- dodal/devices/zebra/zebra_controlled_shutter.py +2 -1
- dodal/devices/zocalo/zocalo_interaction.py +14 -14
- dodal/devices/zocalo/zocalo_results.py +33 -33
- dodal/log.py +23 -20
- dodal/plan_stubs/check_topup.py +15 -15
- dodal/plan_stubs/data_session.py +6 -6
- dodal/plan_stubs/motor_utils.py +22 -18
- dodal/plan_stubs/pressure_jump_cell.py +18 -0
- dodal/plan_stubs/wrapped.py +40 -55
- dodal/plans/bimorph.py +63 -52
- dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -1
- dodal/plans/device_setup_plans/__init__.py +5 -0
- dodal/plans/device_setup_plans/setup_pin_tip_params.py +63 -0
- dodal/plans/preprocessors/verify_undulator_gap.py +10 -8
- dodal/plans/spec_path.py +3 -5
- dodal/plans/verify_undulator_gap.py +1 -2
- dodal/plans/wrapped.py +4 -3
- dodal/testing/__init__.py +0 -0
- dodal/testing/electron_analyser/device_factory.py +5 -7
- dodal/testing/fixtures/devices/apple2.py +38 -0
- dodal/testing/fixtures/run_engine.py +3 -7
- dodal/testing/fixtures/utils.py +1 -2
- dodal/utils.py +60 -58
- dls_dodal-1.68.0.dist-info/RECORD +0 -330
- dodal/beamline_specific_utils/i05_shared.py +0 -14
- dodal/devices/b07/__init__.py +0 -3
- dodal/devices/i04/max_pixel.py +0 -38
- dodal/devices/i05/__init__.py +0 -3
- dodal/devices/i09/__init__.py +0 -3
- dodal/devices/i21/__init__.py +0 -5
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/licenses/LICENSE +0 -0
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/top_level.txt +0 -0
- /dodal/{beamline_specific_utils → devices/beamlines}/__init__.py +0 -0
- /dodal/devices/{b07 → beamlines/b07}/enums.py +0 -0
- /dodal/devices/{b07_1 → beamlines/b07_1}/enums.py +0 -0
- /dodal/devices/{b16 → beamlines/b16}/__init__.py +0 -0
- /dodal/devices/{i02_1 → beamlines/i02_1}/__init__.py +0 -0
- /dodal/devices/{i02_2 → beamlines/i02_2}/__init__.py +0 -0
- /dodal/devices/{i03 → beamlines/i03}/__init__.py +0 -0
- /dodal/devices/{i03 → beamlines/i03}/constants.py +0 -0
- /dodal/devices/{i04 → beamlines/i04}/__init__.py +0 -0
- /dodal/devices/{i04 → beamlines/i04}/constants.py +0 -0
- /dodal/devices/{i05 → beamlines/i05}/enums.py +0 -0
- /dodal/devices/{i07 → beamlines/i07}/__init__.py +0 -0
- /dodal/devices/{i09 → beamlines/i09}/enums.py +0 -0
- /dodal/devices/{i09_1 → beamlines/i09_1}/__init__.py +0 -0
- /dodal/devices/{i09_1 → beamlines/i09_1}/enums.py +0 -0
- /dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/__init__.py +0 -0
- /dodal/devices/{i09_2_shared → beamlines/i09_2_shared}/__init__.py +0 -0
- /dodal/devices/{i09_2_shared → beamlines/i09_2_shared}/i09_apple2.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/__init__.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/i10_setting_data.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/mirrors.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/rasor/__init__.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/rasor/rasor_scaler_cards.py +0 -0
- /dodal/devices/{i11 → beamlines/i10_1/electromagnet}/__init__.py +0 -0
- /dodal/devices/{i13_1 → beamlines/i11}/__init__.py +0 -0
- /dodal/devices/{i15 → beamlines/i13_1}/__init__.py +0 -0
- /dodal/devices/{i13_1 → beamlines/i13_1}/merlin_controller.py +0 -0
- /dodal/devices/{i17 → beamlines/i15}/__init__.py +0 -0
- /dodal/devices/{i15 → beamlines/i15}/laue.py +0 -0
- /dodal/devices/{i15 → beamlines/i15}/motors.py +0 -0
- /dodal/devices/{i15 → beamlines/i15}/rail.py +0 -0
- /dodal/devices/{i18 → beamlines/i17}/__init__.py +0 -0
- /dodal/devices/{i19 → beamlines/i18}/__init__.py +0 -0
- /dodal/devices/{i18 → beamlines/i18}/kb_mirror.py +0 -0
- /dodal/devices/{i19/access_controlled → beamlines/i19}/__init__.py +0 -0
- /dodal/devices/{i20_1 → beamlines/i19/access_controlled}/__init__.py +0 -0
- /dodal/devices/{i19 → beamlines/i19}/access_controlled/hutch_access.py +0 -0
- /dodal/devices/{i19 → beamlines/i19}/beamstop.py +0 -0
- /dodal/devices/{i19 → beamlines/i19}/diffractometer.py +0 -0
- /dodal/devices/{i22 → beamlines/i20_1}/__init__.py +0 -0
- /dodal/devices/{i21 → beamlines/i21}/enums.py +0 -0
- /dodal/devices/{i24 → beamlines/i22}/__init__.py +0 -0
- /dodal/devices/{p99 → beamlines/i24}/__init__.py +0 -0
- /dodal/devices/{i24 → beamlines/i24}/aperture.py +0 -0
- /dodal/devices/{i24 → beamlines/i24}/focus_mirrors.py +0 -0
- /dodal/devices/{i24 → beamlines/i24}/vgonio.py +0 -0
- /dodal/devices/{p60 → beamlines/p60}/__init__.py +0 -0
- /dodal/devices/{p60 → beamlines/p60}/enums.py +0 -0
- /dodal/devices/{p99 → beamlines/p99}/sample_stage.py +0 -0
- /dodal/devices/insertion_device/{id_enum.py → enum.py} +0 -0
dodal/utils.py
CHANGED
|
@@ -129,8 +129,8 @@ class DeviceInitializationController(Generic[T]):
|
|
|
129
129
|
|
|
130
130
|
def cache_clear(self) -> None:
|
|
131
131
|
"""Clears the controller's internal cached instance of the device, if present.
|
|
132
|
-
Noop if not.
|
|
133
|
-
|
|
132
|
+
Noop if not.
|
|
133
|
+
"""
|
|
134
134
|
# Functools adds the cache_clear function via setattr so the type checker
|
|
135
135
|
# does not pick it up.
|
|
136
136
|
self._factory.cache_clear() # type: ignore
|
|
@@ -149,34 +149,36 @@ class DeviceInitializationController(Generic[T]):
|
|
|
149
149
|
Once the device is connected, the value of mock must be consistent, or connect
|
|
150
150
|
must be False.
|
|
151
151
|
|
|
152
|
-
Additional keyword arguments will be passed through to the wrapped factory
|
|
152
|
+
Additional keyword arguments will be passed through to the wrapped factory
|
|
153
|
+
function.
|
|
153
154
|
|
|
154
155
|
Args:
|
|
155
|
-
connect_immediately (bool, default False):
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
name (str
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
connection_timeout (float
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
mock (bool
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
156
|
+
connect_immediately (bool, default False): Whether to call connect on the
|
|
157
|
+
device before returning it- connect is idempotent for ophyd-async
|
|
158
|
+
devices. Not connecting to the device allows for the instance to be
|
|
159
|
+
created prior to the RunEngine event loop being configured or for
|
|
160
|
+
connect to be called lazily e.g. by the `ensure_connected` stub.
|
|
161
|
+
name (str, optional): An override name to give the device, which is
|
|
162
|
+
also used to name its children. Defaults to None, which does not name
|
|
163
|
+
the device unless the device has no name and this Controller is
|
|
164
|
+
configured to use_factory_name, which propagates the name of the wrapped
|
|
165
|
+
factory function to the device instance.
|
|
166
|
+
connection_timeout (float, optional): An override timeout length in
|
|
167
|
+
seconds for the connect method, if it is called. Defaults to None, which
|
|
168
|
+
defers to the timeout configured for this Controller: the default uses
|
|
169
|
+
ophyd_async's DEFAULT_TIMEOUT.
|
|
170
|
+
mock (bool, optional): Overrides whether to connect to Mock signal
|
|
171
|
+
backends, if connect is called. Defaults to None, which uses the mock
|
|
172
|
+
parameter of this Controller. This value must be used consistently when
|
|
173
|
+
connect is called on the Device.
|
|
174
|
+
**kwargs: Arguments passed on to every factory.
|
|
173
175
|
|
|
174
176
|
Returns:
|
|
175
|
-
T:
|
|
177
|
+
T: A singleton instance of the Device class returned by the wrapped factory.
|
|
176
178
|
|
|
177
179
|
Raises:
|
|
178
|
-
RuntimeError:
|
|
179
|
-
|
|
180
|
+
RuntimeError: If the device factory was invoked again with different
|
|
181
|
+
keyword arguments, without previously invoking cache_clear().
|
|
180
182
|
"""
|
|
181
183
|
is_v2_device = is_v2_device_factory(self._factory)
|
|
182
184
|
is_mock = mock if mock is not None else self._mock
|
|
@@ -220,11 +222,11 @@ def make_device(
|
|
|
220
222
|
|
|
221
223
|
Args:
|
|
222
224
|
module (str | ModuleType): The module to make devices from.
|
|
223
|
-
device_name: Name of the device to construct
|
|
224
|
-
**kwargs: Arguments passed on to every device factory
|
|
225
|
+
device_name: Name of the device to construct.
|
|
226
|
+
**kwargs: Arguments passed on to every device factory.
|
|
225
227
|
|
|
226
228
|
Returns:
|
|
227
|
-
dict[str, AnyDevice]: A dict mapping device names to the constructed devices
|
|
229
|
+
dict[str, AnyDevice]: A dict mapping device names to the constructed devices.
|
|
228
230
|
"""
|
|
229
231
|
if isinstance(module, str):
|
|
230
232
|
module = import_module(module)
|
|
@@ -240,21 +242,23 @@ def make_device(
|
|
|
240
242
|
def make_all_devices(
|
|
241
243
|
module: str | ModuleType | None = None, include_skipped: bool = False, **kwargs
|
|
242
244
|
) -> tuple[dict[str, AnyDevice], dict[str, Exception]]:
|
|
243
|
-
"""Makes all devices in the given beamline module, for those modules using device
|
|
244
|
-
as opposed to the DeviceManager.
|
|
245
|
+
"""Makes all devices in the given beamline module, for those modules using device
|
|
246
|
+
factories as opposed to the DeviceManager.
|
|
245
247
|
|
|
246
248
|
In cases of device interdependencies it ensures a device is created before any which
|
|
247
249
|
depend on it.
|
|
248
250
|
|
|
249
251
|
Args:
|
|
250
252
|
module (str | ModuleType | None, optional): The module to make devices from.
|
|
253
|
+
include_skipped (bool, optional): If True, also load factories with the
|
|
254
|
+
@skip_device annotation. Defaults to False.
|
|
251
255
|
**kwargs: Arguments passed on to every device.
|
|
252
256
|
|
|
253
257
|
Returns:
|
|
254
|
-
Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: This represents a tuple
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
+
Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: This represents a tuple
|
|
259
|
+
containing two dictionaries:
|
|
260
|
+
-A dictionary where the keys are device names and the values are devices.
|
|
261
|
+
-A dictionary where the keys are device names and the values are exceptions.
|
|
258
262
|
"""
|
|
259
263
|
if isinstance(module, str) or module is None:
|
|
260
264
|
module = import_module(module or __name__)
|
|
@@ -278,14 +282,14 @@ def invoke_factories(
|
|
|
278
282
|
this will detect a dependency and create and cache the non-dependant device first.
|
|
279
283
|
|
|
280
284
|
Args:
|
|
281
|
-
factories: Mapping of function name -> function
|
|
285
|
+
factories (Mapping[str, AnyDeviceFactory]): Mapping of function name -> function.
|
|
286
|
+
**kwargs: Optional key word arguments: `mock` and `connect_immediately`.
|
|
282
287
|
|
|
283
288
|
Returns:
|
|
284
|
-
Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: Tuple of two dictionaries
|
|
285
|
-
|
|
286
|
-
|
|
289
|
+
Tuple[Dict[str, AnyDevice], Dict[str, Exception]]: Tuple of two dictionaries:
|
|
290
|
+
- One mapping device name to device.
|
|
291
|
+
- One mapping device name to exception for any failed devices.
|
|
287
292
|
"""
|
|
288
|
-
|
|
289
293
|
devices: dict[str, AnyDevice] = {}
|
|
290
294
|
exceptions: dict[str, Exception] = {}
|
|
291
295
|
|
|
@@ -344,13 +348,14 @@ def extract_dependencies(
|
|
|
344
348
|
) -> Iterable[str]:
|
|
345
349
|
"""Compute dependencies for a device factory. Dependencies are named in the
|
|
346
350
|
factory function signature, similar to pytest fixtures. For example given
|
|
347
|
-
def device_one(): and def device_two(device_one: Readable):, indicate
|
|
351
|
+
def device_one(): and def device_two(device_one: Readable):, indicate that
|
|
348
352
|
device_one is a dependency of device_two.
|
|
349
353
|
|
|
350
354
|
Args:
|
|
351
|
-
factories: All factories, mapping of
|
|
352
|
-
|
|
353
|
-
|
|
355
|
+
factories (Mapping[str, AnyDeviceFactory]): All factories, mapping of
|
|
356
|
+
function name -> function
|
|
357
|
+
factory_name (str): The name of the factory in factories whose dependencies need
|
|
358
|
+
computing
|
|
354
359
|
|
|
355
360
|
Returns:
|
|
356
361
|
Iterable[str]: Generator of factory names
|
|
@@ -358,7 +363,6 @@ def extract_dependencies(
|
|
|
358
363
|
Yields:
|
|
359
364
|
Iterator[Iterable[str]]: Factory names
|
|
360
365
|
"""
|
|
361
|
-
|
|
362
366
|
for name, param in inspect.signature(factories[factory_name]).parameters.items():
|
|
363
367
|
if param.default is inspect.Parameter.empty and name in factories:
|
|
364
368
|
yield name
|
|
@@ -371,14 +375,13 @@ def collect_factories(
|
|
|
371
375
|
via the return type signature e.g. def my_device() -> ADeviceType:
|
|
372
376
|
|
|
373
377
|
Args:
|
|
374
|
-
module: The module to inspect
|
|
375
|
-
include_skipped: If True, also load factories with the
|
|
376
|
-
|
|
378
|
+
module (ModuleType): The module to inspect
|
|
379
|
+
include_skipped (bool, optional): If True, also load factories with the
|
|
380
|
+
@skip_device annotation. Defaults to False.
|
|
377
381
|
|
|
378
382
|
Returns:
|
|
379
383
|
dict[str, AnyDeviceFactory]: Mapping of factory name -> factory.
|
|
380
|
-
"""
|
|
381
|
-
|
|
384
|
+
""" # noqa D415
|
|
382
385
|
factories: dict[str, AnyDeviceFactory] = {}
|
|
383
386
|
|
|
384
387
|
for var in module.__dict__.values():
|
|
@@ -445,22 +448,21 @@ def is_v1_device_type(obj: type[Any]) -> bool:
|
|
|
445
448
|
def filter_ophyd_devices(
|
|
446
449
|
devices: Mapping[str, AnyDevice],
|
|
447
450
|
) -> tuple[Mapping[str, OphydV1Device], Mapping[str, OphydV2Device]]:
|
|
448
|
-
"""
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
different types. Useful when special handling is needed for each type of device.
|
|
451
|
+
"""Split a dictionary of ophyd and ophyd-async devices (i.e. the output of
|
|
452
|
+
make_all_devices) into 2 separate dictionaries of the different types. Useful when
|
|
453
|
+
special handling is needed for each type of device.
|
|
452
454
|
|
|
453
455
|
Args:
|
|
454
|
-
devices: Dictionary of device name to ophyd or
|
|
456
|
+
devices (Mapping[str, AnyDevice]): Dictionary of device name to ophyd or
|
|
457
|
+
ophyd-async device.
|
|
455
458
|
|
|
456
459
|
Raises:
|
|
457
460
|
ValueError: If anything in the dictionary doesn't come from either library.
|
|
458
461
|
|
|
459
462
|
Returns:
|
|
460
463
|
Tuple of two dictionaries, one mapping names to ophyd devices and one mapping
|
|
461
|
-
|
|
464
|
+
names to ophyd-async devices.
|
|
462
465
|
"""
|
|
463
|
-
|
|
464
466
|
ophyd_devices = {}
|
|
465
467
|
ophyd_async_devices = {}
|
|
466
468
|
for name, device in devices.items():
|
|
@@ -474,8 +476,7 @@ def filter_ophyd_devices(
|
|
|
474
476
|
|
|
475
477
|
|
|
476
478
|
def get_beamline_based_on_environment_variable() -> ModuleType:
|
|
477
|
-
"""
|
|
478
|
-
Gets the dodal module for the current beamline, as specified by the
|
|
479
|
+
"""Gets the dodal module for the current beamline, as specified by the
|
|
479
480
|
BEAMLINE environment variable.
|
|
480
481
|
"""
|
|
481
482
|
beamline = get_beamline_name("")
|
|
@@ -525,7 +526,8 @@ def _find_next_run_number_from_files(file_names: list[str]) -> int:
|
|
|
525
526
|
def get_run_number(directory: str, prefix: str = "") -> int:
|
|
526
527
|
"""Looks at the numbers coming from all nexus files with the format
|
|
527
528
|
"{prefix}_(any number}.nxs", and returns the highest number + 1, or 1 if there are
|
|
528
|
-
no matching numbers found. If no prefix is given, considers all files in the dir.
|
|
529
|
+
no matching numbers found. If no prefix is given, considers all files in the dir.
|
|
530
|
+
"""
|
|
529
531
|
nexus_file_names = [
|
|
530
532
|
file
|
|
531
533
|
for file in os.listdir(directory)
|
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
dls_dodal-1.68.0.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
2
|
-
dodal/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
|
|
3
|
-
dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
|
|
4
|
-
dodal/_version.py,sha256=fKEtAXP7aFyf66hvwaMabE9BzwL6dh3xGKYU6jI5_mA,706
|
|
5
|
-
dodal/cli.py,sha256=fPFs0ACCf2jEnACCIzEd5xR5ormxRwDKOZjzFlaBC88,4728
|
|
6
|
-
dodal/device_manager.py,sha256=rTW-uaOiMPxkvYg7-yDy5MwhhfTCbbY5XkJXV_kcvj0,21029
|
|
7
|
-
dodal/log.py,sha256=UckmmyY_SdZePyi5lHnjh-DVw6qvnat3ANa_5-y80Og,9877
|
|
8
|
-
dodal/utils.py,sha256=32yIQHW7CQecxClTazqbb0ixbLoGxB0TxZcBGlqSTI8,19481
|
|
9
|
-
dodal/beamline_specific_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
dodal/beamline_specific_utils/i05_shared.py,sha256=NmXzoJSJ6daReigaONpxxlNTYGGCSkFvgGYQUpjgteM,425
|
|
11
|
-
dodal/beamlines/README.md,sha256=K9MkL_GomxlsoTB7Mz-_dJA5NNSbmCfMiutchGg3C8o,404
|
|
12
|
-
dodal/beamlines/__init__.py,sha256=kVmxHMi9W1MkrOsVxBK7N1DBFGDrWv4FH1m8_nRxwzo,3242
|
|
13
|
-
dodal/beamlines/adsim.py,sha256=1ciucMo1oNYeKarIeBbqlQjZrVN2viyNrDz8dHw5QxY,2153
|
|
14
|
-
dodal/beamlines/aithre.py,sha256=RRNmzJz4Fu5eHRXKoIJpv1D1fNR5e7wmT34d52QwM9Y,1399
|
|
15
|
-
dodal/beamlines/b01_1.py,sha256=H24kiQtF0XnpWBtpsdC_k4w2WU4ibvovU3YPAop_zdg,2830
|
|
16
|
-
dodal/beamlines/b07.py,sha256=BfJJso_h2YX1LU0sRNxGeKJzCNRWngV9Kv2Hc3M6zLM,1430
|
|
17
|
-
dodal/beamlines/b07_1.py,sha256=Lph4PT0JOoOk_PnRBFZxg1R6N6TqNCrmNL7ybCF2Evc,1637
|
|
18
|
-
dodal/beamlines/b16.py,sha256=rK00hEj8KLGNkLZr9omAuoMz_DyLN9rK4eUQssETR9E,1703
|
|
19
|
-
dodal/beamlines/b18.py,sha256=ryxrGtcCdwoFgZ8ljWYgr1g9gKvoA7nxkARVxl1IE78,1189
|
|
20
|
-
dodal/beamlines/b21.py,sha256=KGPoUogtu5XutVSGZ8LiQgIHOyWbW_9KAt23TetKTHc,3873
|
|
21
|
-
dodal/beamlines/i02_1.py,sha256=SwRm9v1U6CiT0fwLbSTECbJ6OF1BPEx4TJ0cEReuGZA,4017
|
|
22
|
-
dodal/beamlines/i02_2.py,sha256=Jkghwv1Y5i0VUR2NZZ7hoiK9Ii8O-rIECDoKLX9AKi0,1169
|
|
23
|
-
dodal/beamlines/i03.py,sha256=HyJzusfTuTYT5hi6ajcB3wQup1BPKWRGrxbLocz8Hmg,10438
|
|
24
|
-
dodal/beamlines/i04.py,sha256=toMPtu1k2NXzfmmX6b8CH_kjhCjmO5LD_8Hs9UQPNhU,14956
|
|
25
|
-
dodal/beamlines/i05.py,sha256=FxzIJ4BFE6PC3Gs6Kq_GjrRbpam8UbRO22EHjuSO2nQ,1281
|
|
26
|
-
dodal/beamlines/i05_1.py,sha256=bzaDqR2doZnoN-dk_oPwWqSGJaVZTDnNtx0wMzGSTp8,714
|
|
27
|
-
dodal/beamlines/i06.py,sha256=V0kjC2NPX4fn9et3T8KLbTgNXsyYki4S5swrC61YwAI,1571
|
|
28
|
-
dodal/beamlines/i07.py,sha256=mnwJPscsXFZnRQ2fKd-FwYiL_VjQu5zbYGQcgg7lplE,1270
|
|
29
|
-
dodal/beamlines/i09.py,sha256=gWVSQOmpQO6X24eARNXHQHafDv5AX7CozGSmj8NR_ak,1910
|
|
30
|
-
dodal/beamlines/i09_1.py,sha256=bcFExeMBPoabzEA-c01cO-EUwFA3KHWBmA0iuQ4gp7A,2543
|
|
31
|
-
dodal/beamlines/i09_2.py,sha256=pEH-a4gwuhf4xRqdLx5eAvOfxDtnc16Nvk57nDUVPSg,3395
|
|
32
|
-
dodal/beamlines/i10.py,sha256=LC0ii13rVyZj1ziatBAyRoyuutdyyTCkpSvICGv4IGY,4059
|
|
33
|
-
dodal/beamlines/i10_1.py,sha256=FxnWjr1u55XgIvnuyTfknnj-xPMNJOAtxObq1y9k518,1062
|
|
34
|
-
dodal/beamlines/i10_optics.py,sha256=C8dftjZw1TmdswUMpGoKOF70TsAQ1WAffdQH-1BJ74I,7142
|
|
35
|
-
dodal/beamlines/i11.py,sha256=hzW5Lh74zDzUD0vqXQzekoFVWDp8qEIc0OPRm0Qepqs,3643
|
|
36
|
-
dodal/beamlines/i13_1.py,sha256=VYVqMN8-njy7YSI08gskRccT-K2paRC9edAx0ah-Cwo,1602
|
|
37
|
-
dodal/beamlines/i15.py,sha256=lmUhh1jt5CtD4P_BzkwNufu814aT3uaQlLyDMY_B5AE,5725
|
|
38
|
-
dodal/beamlines/i15_1.py,sha256=EKg6BCr3wpHxdmG23kSTZYcNnGQxZbkzzulBLwz_Kew,3903
|
|
39
|
-
dodal/beamlines/i16.py,sha256=NDTbyllb11Rklk5MNDVhrmI361Q-aKOMPy_dp09JE74,648
|
|
40
|
-
dodal/beamlines/i17.py,sha256=nlebjLsEruFcrpVGXclNHBsnIMtasQKvsBimwIf2-vI,2788
|
|
41
|
-
dodal/beamlines/i18.py,sha256=vPGfrbh1CY2W2BXIfCA5PIeVyixS5nEJSxHpla1RM4I,3756
|
|
42
|
-
dodal/beamlines/i19_1.py,sha256=aC-R9CEjRZEdSutfYhK9r2rT6J__IOZy4zG95B_fJC8,3466
|
|
43
|
-
dodal/beamlines/i19_2.py,sha256=gNRRRimY69zl_e9FRaEFs-fQxWu6oqFwjHjjVs-AJrk,4514
|
|
44
|
-
dodal/beamlines/i19_optics.py,sha256=fNdAFRJYFA045l4giGI3V68qijDFE1C8gdvD6fncAio,1181
|
|
45
|
-
dodal/beamlines/i20_1.py,sha256=Zsr1lsH7ySbOgK7RhMVMWzNWZAV-fuYW0iAjSEJZicY,2625
|
|
46
|
-
dodal/beamlines/i21.py,sha256=1ZtVPmnZLMvhcIpeVN7OZYnt44hVJpNNnHbfxwGoseQ,3357
|
|
47
|
-
dodal/beamlines/i22.py,sha256=XVGYyx6QEhbXJ5DRm-YWnUZKdagv_X8YJNYjmhXT7II,8097
|
|
48
|
-
dodal/beamlines/i23.py,sha256=ZXvPEiMA4mPbRTXOxvL1NcoVWDg4Deyl8k57cveDg90,3060
|
|
49
|
-
dodal/beamlines/i24.py,sha256=0ZjJCUYIUWIQTPrXFqKviiTCZiyuJh4MkmqMYd9JZ9o,7454
|
|
50
|
-
dodal/beamlines/k07.py,sha256=jELF4ENfSsPumbFieZDQKP-fDKFeGfox7guhdxJqmD8,1005
|
|
51
|
-
dodal/beamlines/k11.py,sha256=sBOl-MLk7FMo10KFykuK5aLqH1zyW4FnI0XXmtQhUfg,978
|
|
52
|
-
dodal/beamlines/p38.py,sha256=ohFCTkyqR2MWGK20PrJqAIokiEjDPNTAfMRzrn3T0Mg,5778
|
|
53
|
-
dodal/beamlines/p45.py,sha256=tQ7EkWfr7o2okK7Prw1C7DNGYdKPU2ofqjm98wu_-G0,2158
|
|
54
|
-
dodal/beamlines/p60.py,sha256=EEEPwzIMyNecEDZsPDrfn6RskbSumySruLTuYNQCDBI,1485
|
|
55
|
-
dodal/beamlines/p99.py,sha256=Rbi9OvmrGIblctOnZxFG_tqqhALLZ9O3ht4mBcb5vU8,2754
|
|
56
|
-
dodal/beamlines/training_rig.py,sha256=VfMMNLdqej50CX17GluuwBbdXaurc5dnWjmoCT20bT4,1593
|
|
57
|
-
dodal/common/__init__.py,sha256=0fah9eCiHBBLVhdIqN_pjQIgPtxkAu25-3i4KjHRFM4,386
|
|
58
|
-
dodal/common/coordination.py,sha256=zvY3n8r-eDU2K3O7RlMzS6eoKI_XWHCWS9mcLwHVZXc,1252
|
|
59
|
-
dodal/common/crystal_metadata.py,sha256=XGr-X81G9SZvPx5b4nBCH4FOnywyX_zYVy6zwDxIMVM,1926
|
|
60
|
-
dodal/common/data_util.py,sha256=Z2DgxQl3AzTB940e_qYVDIHuu_9vWzpbycjKb62SFus,555
|
|
61
|
-
dodal/common/device_utils.py,sha256=3hWgLmESiF88fho9bCweZpZH6b5fbbuSZGuSEYXxl4E,1345
|
|
62
|
-
dodal/common/enums.py,sha256=Q8RSQBIHTCbhngVUKoznzvwazQ7INsT5NE0BcAgT1U0,404
|
|
63
|
-
dodal/common/maths.py,sha256=K9x7iL3xXLtWYTV-xlFHDNSTIL9a2UP3Ws7wr6Dm2rQ,1803
|
|
64
|
-
dodal/common/types.py,sha256=fkL7UOwDbe3v2_VJ5f1W5RxR98Wx-Ra-LxUZWkNDtls,486
|
|
65
|
-
dodal/common/udc_directory_provider.py,sha256=v5OBaCUwjtQZAsRQUw6LlVL58UvwwDO1l2MKlilXjdk,2403
|
|
66
|
-
dodal/common/visit.py,sha256=0KxiIYJolSewuTn9Av-B4NxU2WpQo2l1-WmAO741Du8,5826
|
|
67
|
-
dodal/common/watcher_utils.py,sha256=nfBaYh9DPsT0x2JS5x8_e4rVl9bjdPmMqwIQUXuoYac,3168
|
|
68
|
-
dodal/common/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
|
-
dodal/common/beamlines/beamline_parameters.py,sha256=nYTy5TDYegvon6iNCxf7Uez3hbdu9GCoLUmJhRO1qhE,2665
|
|
70
|
-
dodal/common/beamlines/beamline_utils.py,sha256=UnDJlRs7p8srjv-peX05jHZBb8J2d2lPSyG9118x560,5286
|
|
71
|
-
dodal/common/beamlines/commissioning_mode.py,sha256=KL24Ia4IOkSxi7M4CKRRQQW0T3HUDpj7K3Y5_DtALRA,1314
|
|
72
|
-
dodal/common/beamlines/device_helpers.py,sha256=8sasAIFRDwo6ElHqLrXnpj_v7xcEg-29Zhey_e4r9u8,84
|
|
73
|
-
dodal/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
|
-
dodal/devices/aperture.py,sha256=S7AoIoQg_kFxaQk7HUMijbm1kYkOEi2csbdj76kp1ys,427
|
|
75
|
-
dodal/devices/aperturescatterguard.py,sha256=-9XhNGjmO3vl0O-v0N-2LJPkI2ELdR26AyZAdMkThXE,14013
|
|
76
|
-
dodal/devices/backlight.py,sha256=y40kR6N3qSFVLRaGU8CjJJpwv_hq2QALf_85fLQqras,1415
|
|
77
|
-
dodal/devices/baton.py,sha256=315I_0V73_DYYVT0PBs0luVy4CMqdPo0kLvHBi12MIU,606
|
|
78
|
-
dodal/devices/bimorph_mirror.py,sha256=OGe6aCczG0gVco4OvIRLJVxn2kw5F2QG1e06uqhFLTw,4609
|
|
79
|
-
dodal/devices/collimation_table.py,sha256=64HunSPJH-L2gZdfIj_RYdOlOuwRFEfMHfLHzu4BAKI,1681
|
|
80
|
-
dodal/devices/common_dcm.py,sha256=BmvwnT5mbCmSQI8aGl3GKEfpe7N1axUANEyG-NYgC98,5288
|
|
81
|
-
dodal/devices/controllers.py,sha256=W_Ras1c6xLjcOMKPSHN8Z1eCUCH-ktaah2hzQXyuFLk,652
|
|
82
|
-
dodal/devices/cryostream.py,sha256=F8-JVl9LvvR0jvFUwhowazwT7q38HnDuVZxRS-1BOnk,4522
|
|
83
|
-
dodal/devices/diamond_filter.py,sha256=hySd7HnLdplpPNvBrLddLjO_3LqgD8-99Zr__Sy_GbI,689
|
|
84
|
-
dodal/devices/eiger.py,sha256=EywzuUSDnwLDd0XACKilDgwVcet1SnIPixZ28Etf78Q,17527
|
|
85
|
-
dodal/devices/eiger_odin.py,sha256=1JoqPppTp99IZCiFOXJZB3h62xXRYKZINxTYXdLnT8c,7480
|
|
86
|
-
dodal/devices/eurotherm.py,sha256=rdLldmWYP1PZBckoya6svPy1mDxHYaa1IfMleMPGzD4,3832
|
|
87
|
-
dodal/devices/fast_grid_scan.py,sha256=xm2PEPrbqHOQfVrNcXt60S1UT5RtWir6MkdnVlhZNPw,17592
|
|
88
|
-
dodal/devices/fast_shutter.py,sha256=kbHaV-cjAaKFfgEHu7fw9jEBDoJAkIa7N0XXGBZq-xs,2345
|
|
89
|
-
dodal/devices/fluorescence_detector_motion.py,sha256=hJ1M9Zs6Dlw8DDL9APh7yVePlS4tU2hnlySd16hqfwE,346
|
|
90
|
-
dodal/devices/flux.py,sha256=1CDsq9yU2-ho8MfYBl50Tl9ABZwpUBHnV486PQXKNoQ,462
|
|
91
|
-
dodal/devices/focusing_mirror.py,sha256=2UWVrY6bs6_0i-h6JJ_LAUZPX_FgMzIx04JqZafdtYU,7464
|
|
92
|
-
dodal/devices/hutch_shutter.py,sha256=iY3qWxDr8mDlAvN_BYe2gqpXRM1hlfV3ewdwkwh0_v0,3889
|
|
93
|
-
dodal/devices/ipin.py,sha256=lDXEnCLXa0XLQUpwzq6X5FUkt08zHXnuD_bIqaTepVI,1215
|
|
94
|
-
dodal/devices/linkam3.py,sha256=Lkw7c05XyHEEA83djfVFqz_8HN4kROCRqZwLwvHwRdA,2054
|
|
95
|
-
dodal/devices/motors.py,sha256=eag9Z8hGhDbQR9PJGRd4yOVWuMEUqGQ3UcjqtYCn27A,8482
|
|
96
|
-
dodal/devices/p45.py,sha256=CImflt7ifaOkV20Uip3S8_fde_GlIIhD16y-54ODfHE,1390
|
|
97
|
-
dodal/devices/pgm.py,sha256=grNtQHWP6oSbhmEd12loe9cAFnOn2A7rBlgjwnvH8z8,1182
|
|
98
|
-
dodal/devices/positioner.py,sha256=qf_1uYOI1whS0U5sPA3O3mlZYKrPuW3i0gEKI_q-up0,1289
|
|
99
|
-
dodal/devices/pressure_jump_cell.py,sha256=YGmllfBya7MryLg3EXS0pzBJDRs_TlgDFxt8TzAwKJQ,8734
|
|
100
|
-
dodal/devices/qbpm.py,sha256=FfrWWAHHtYv3fGRT1qljyPpAwoHJYfbooT9CfKg-oXI,465
|
|
101
|
-
dodal/devices/robot.py,sha256=IBGwLoWw2MIxSs0gqRBOw4SYOX94ahQ0UI40FZlvZeM,7618
|
|
102
|
-
dodal/devices/s4_slit_gaps.py,sha256=4KdarIQoRqX4ry3LUS1Km7fkjUFahA0VuTd2DvYEqQ8,446
|
|
103
|
-
dodal/devices/scintillator.py,sha256=w6YSf1mY_xJKU00TXS_wfzJVKFvXNX9U7Vs8as-33wM,4249
|
|
104
|
-
dodal/devices/slits.py,sha256=IJtipn1N5B7pH64frWcF2TFK8mTFwSYXpGt_FMGl68w,1537
|
|
105
|
-
dodal/devices/smargon.py,sha256=JlaNPCRWh0dHbslmjuDtlZhVbIz_clmw4eUIgoSj9tM,4986
|
|
106
|
-
dodal/devices/status.py,sha256=hVrJS1yooQo6PRumRACoIEh-SKBUKxvBlQl-MtLFUMQ,327
|
|
107
|
-
dodal/devices/synchrotron.py,sha256=OHBrTrm4K39XE8BrE9b_Jn_ZfMRyDp9CHCwvmiV-KOc,1989
|
|
108
|
-
dodal/devices/tetramm.py,sha256=QrS7gXB5BVkHHSqCJxYnAg2bbqnHTg0e4UZNpF9g0gE,10461
|
|
109
|
-
dodal/devices/thawer.py,sha256=RGd9vjLyD4IDTDiP2V0giMZIduk_BJiFy1XRkrCSKY4,611
|
|
110
|
-
dodal/devices/turbo_slit.py,sha256=xhcnhfbdcTYSYozogw6Li4fF4ofoPsc350rEyrRdaNE,1460
|
|
111
|
-
dodal/devices/undulator.py,sha256=Ohy-5sxSKeb8p8jCORj7VILklkJ6WNYrbVLMFxTMBzs,9223
|
|
112
|
-
dodal/devices/v2f.py,sha256=d9f4w5tLxK0S8vrgD85_9W52oEE0uPf912UvLhEWxDM,1248
|
|
113
|
-
dodal/devices/watsonmarlow323_pump.py,sha256=xNwjoxW3NJIDkeDWHfb0A8Yj95_KKRXMD9AghvX-WLk,1337
|
|
114
|
-
dodal/devices/webcam.py,sha256=UAx2KF0mKi6I-mJJUb5z56MHY-Wd89-tqyPcFbouQFg,2491
|
|
115
|
-
dodal/devices/xbpm_feedback.py,sha256=HKLY3k52FPe2G-EAg8ir2LSdeUuGvhRD73ibDZ4mjH8,1418
|
|
116
|
-
dodal/devices/aithre_lasershaping/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
|
-
dodal/devices/aithre_lasershaping/goniometer.py,sha256=ljdGf7f_fCtgT62e_7HohNoE5CMGxvJkKqPDKkJ1akI,1447
|
|
118
|
-
dodal/devices/aithre_lasershaping/laser_robot.py,sha256=vy-I1ASYflFYIUYePhT2l3l7g2iekrIFzLxA0GLmKY8,717
|
|
119
|
-
dodal/devices/areadetector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
|
-
dodal/devices/areadetector/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
-
dodal/devices/areadetector/plugins/cam.py,sha256=sZzJm5Ez3eWfXZi_EB67wluhZmMQm1UyOc2bJFfzd1U,964
|
|
122
|
-
dodal/devices/areadetector/plugins/mjpg.py,sha256=tyJ6azC8eCaM_vhQQMB79E03VA9kljUA_7mBycGMsmw,3205
|
|
123
|
-
dodal/devices/attenuator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
124
|
-
dodal/devices/attenuator/attenuator.py,sha256=-rJYY_bHCDl8NVn3yYPytYIANiOPsz0f-3U1zBsT5pE,6246
|
|
125
|
-
dodal/devices/attenuator/filter.py,sha256=xb_8S62ktJdqdNE03PqhsfsTsQyTsRbR9CF1ksfX06M,542
|
|
126
|
-
dodal/devices/attenuator/filter_selections.py,sha256=r0TsT3Cylx0wQiBoCsU0Kk8eOupj2wItX9xPUgpm6Lc,1954
|
|
127
|
-
dodal/devices/b07/__init__.py,sha256=Zw4VkH-68MLoDveswDpR-lTlzK1-IeNz2W4qtkCO3Hs,109
|
|
128
|
-
dodal/devices/b07/enums.py,sha256=GmS6YZEbFH2wEwS1Ni4VNG-2wT98v7NnCzbHqFKo5Pg,1415
|
|
129
|
-
dodal/devices/b07_1/__init__.py,sha256=yInDRarid492g7unaL8zIrWSNpRXhgsj8z7TRTRJfjI,281
|
|
130
|
-
dodal/devices/b07_1/ccmc.py,sha256=SyxfR8Sd8C7Bx2q0cvItdxP2DOP-ZhbMuAfSvBrbSio,2554
|
|
131
|
-
dodal/devices/b07_1/enums.py,sha256=TREiXDSAGFRXR3iUkKADYfm-CmhLmlpGHKZUOQ2Z1as,723
|
|
132
|
-
dodal/devices/b16/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
133
|
-
dodal/devices/b16/detector.py,sha256=saI2aFBhT0oTisam5b1mlaMJTRwGT7bHbqPGBP7SDnk,840
|
|
134
|
-
dodal/devices/beamsize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
|
-
dodal/devices/beamsize/beamsize.py,sha256=J0xtG9NCPUvlJ0leewWzFpEYY-Oz1GFSOTkSlZ835ms,145
|
|
136
|
-
dodal/devices/current_amplifiers/__init__.py,sha256=-MhT-t-GJ83rrvTDBCoWub_NKYkRtu4sEj8-y5XZBP0,782
|
|
137
|
-
dodal/devices/current_amplifiers/current_amplifier.py,sha256=erDVtstLNFVb4wdSqWwRCQX_ifPxOc07x_2Ba_8Y1Wg,2660
|
|
138
|
-
dodal/devices/current_amplifiers/current_amplifier_detector.py,sha256=YKA769KpU1V4GyYF3ckMgE8sXnaJyzRPUbBqIo7UruM,3968
|
|
139
|
-
dodal/devices/current_amplifiers/femto.py,sha256=cnAs-NOHr8ShWBsuJk1b8ysL4EKyym-EK6rkJraWxpc,4488
|
|
140
|
-
dodal/devices/current_amplifiers/sr570.py,sha256=tYXFnl9IEUOpPmzJID9auJJrSn1SQvJTuz-uZS_7FK4,7575
|
|
141
|
-
dodal/devices/current_amplifiers/struck_scaler_counter.py,sha256=3xTsqOCnLwb8o_YsFGbm0PilOe8HsR4Bz_rRZMDKy-Y,2575
|
|
142
|
-
dodal/devices/detector/__init__.py,sha256=-RdACL3tzc3lLArWOoGNje48UUlv2fElOmGOz9yOuO0,317
|
|
143
|
-
dodal/devices/detector/det_dim_constants.py,sha256=arBWvzMwybatdSiCMAiwB4Bq1dX-wkLi54xPPfTfQhY,2772
|
|
144
|
-
dodal/devices/detector/det_dist_to_beam_converter.py,sha256=nSkhiEESyuzdrWoPu6h3C05DnOhCXa6DZd-9vU5JYc0,1625
|
|
145
|
-
dodal/devices/detector/det_resolution.py,sha256=8OW40MhRg56GlLstM1MOkIxa4DY8eg4q0RBUX7k6PHs,3298
|
|
146
|
-
dodal/devices/detector/detector.py,sha256=DqQvlgdjIdKErrZqgM9IH7drc-r6N8nhkFk7KwlgYAk,4815
|
|
147
|
-
dodal/devices/detector/detector_motion.py,sha256=Ly4nz_AsB-_EDOADMC2u2J0dunpkOMbafVN_dgh3T-E,1389
|
|
148
|
-
dodal/devices/electron_analyser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
-
dodal/devices/electron_analyser/base/__init__.py,sha256=u8kktlYGxZKXFh-dA98MVVvSsSayAraCHsDI8RtJm3Q,1604
|
|
150
|
-
dodal/devices/electron_analyser/base/base_controller.py,sha256=aFajs4VgmG4J2Gf_4Wt--HM3gaslQlS3JXFUw5YeOWI,2869
|
|
151
|
-
dodal/devices/electron_analyser/base/base_detector.py,sha256=qNZnf-PS82z250ir9UxGYsGF5ToxvL-y-9gCJWrrWnE,7092
|
|
152
|
-
dodal/devices/electron_analyser/base/base_driver_io.py,sha256=Y1uXIbxZS4wrxzAxv8bIJ5eZHyG3rGTTauLNjptjR-A,8985
|
|
153
|
-
dodal/devices/electron_analyser/base/base_enums.py,sha256=ruSH7LNRhtqMflv7gYxKeAu0uLzZIaoCai7sSTzpvkg,204
|
|
154
|
-
dodal/devices/electron_analyser/base/base_region.py,sha256=VD-7bccwKMfm1AqY9jYSiuqfL5XLKKmxrfiFzi13Crw,7432
|
|
155
|
-
dodal/devices/electron_analyser/base/base_util.py,sha256=nGx3vF7eF4SxjzNysoxWbzqmxdSWvcPPHmghw74UuEc,1245
|
|
156
|
-
dodal/devices/electron_analyser/base/energy_sources.py,sha256=HdslyJYn8GbhCkQ2eOlgDOZ1zrHXBUIEk_4kfUXgLrk,3162
|
|
157
|
-
dodal/devices/electron_analyser/specs/__init__.py,sha256=PiId7pXfFqG0UznwzTROAp3iORuU6UEwn_0ohKBxKNk,315
|
|
158
|
-
dodal/devices/electron_analyser/specs/specs_detector.py,sha256=J7TQpvCg6mzVp010LCqtHhHydrcKRweGeApeZeX8GFM,1542
|
|
159
|
-
dodal/devices/electron_analyser/specs/specs_driver_io.py,sha256=SVb0tQGbb6m9DbjmNxfWKCwDVqMSh5a8Ad5RsMb6rZs,4449
|
|
160
|
-
dodal/devices/electron_analyser/specs/specs_enums.py,sha256=cXPcbIGEN5ZJJt1KeiNJEtZkkcjQ-fz7dBfsU283zYQ,235
|
|
161
|
-
dodal/devices/electron_analyser/specs/specs_region.py,sha256=uF12HNzh1I9csYVS3j-CAGuCHCblVzYFBp_4G7JCnvI,1165
|
|
162
|
-
dodal/devices/electron_analyser/vgscienta/__init__.py,sha256=s8acayQN8E0j1H9YEr6Q47Kxu3OtrPuZHk3ARuuot_A,397
|
|
163
|
-
dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py,sha256=5iJIl1WwnrPVCoyBEMwzaycg0yDURs3DZNq5ceTSRAc,1850
|
|
164
|
-
dodal/devices/electron_analyser/vgscienta/vgscienta_driver_io.py,sha256=QADd2CU52BrRwPquHmHO77gX4EY7x-yWmbOfGZhe_k8,3471
|
|
165
|
-
dodal/devices/electron_analyser/vgscienta/vgscienta_enums.py,sha256=3vmX67ExATU8clueVp_mCzw3OUQx799oZMc8gyHtMJE,205
|
|
166
|
-
dodal/devices/electron_analyser/vgscienta/vgscienta_region.py,sha256=SvQmB_NsdzKhuKkuzvkirsYMaqR-1bOjppVsBP4bBqo,2219
|
|
167
|
-
dodal/devices/i02_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
168
|
-
dodal/devices/i02_1/fast_grid_scan.py,sha256=bfiumNayrISFGYqdcd3Bh6lEZvkOxrqyX_B24LYW1nU,2429
|
|
169
|
-
dodal/devices/i02_1/sample_motors.py,sha256=fAHAyeuP4hjOnYsp2x5VQNrTh8Di35ezJV1si2YmKPY,607
|
|
170
|
-
dodal/devices/i02_2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
171
|
-
dodal/devices/i03/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
|
|
172
|
-
dodal/devices/i03/beamsize.py,sha256=xLbB_PJevGRTYSarILE6ImEmK7tgKQ1xa6D9tl6JjYA,1235
|
|
173
|
-
dodal/devices/i03/constants.py,sha256=Y-4tsbmAMEcjV5FBjeRmnA2tl5-LPt5x_icG2xu7XkI,136
|
|
174
|
-
dodal/devices/i03/dcm.py,sha256=qK9qcPCedjOVMvKZ0TZaWNeyt7CJRsC-Wpjy44OQf4E,2336
|
|
175
|
-
dodal/devices/i03/undulator_dcm.py,sha256=gtlN-t-L9bLeC5E1tN_aibJhpYiSnwt-TNm5ZsPm88M,2867
|
|
176
|
-
dodal/devices/i04/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
|
|
177
|
-
dodal/devices/i04/beamsize.py,sha256=0Y8Adz_nSSe86uD95BgcZTyZUfisMMX01aoPi8jQx-I,1582
|
|
178
|
-
dodal/devices/i04/constants.py,sha256=_Dw28NeXldwRYH-h6YP6OHnyj7h0z4NQs_-RysNby5Q,281
|
|
179
|
-
dodal/devices/i04/max_pixel.py,sha256=qH-hElSDOi_ThMzuapiBSkJIAqMZ08K_OyuO3hkw0F0,1565
|
|
180
|
-
dodal/devices/i04/murko_results.py,sha256=y6dNd1aZGRyEPP5mtWTVejbRYBoEa6qXMUNFM4VDCbg,10069
|
|
181
|
-
dodal/devices/i04/transfocator.py,sha256=gI3UpQ6N0edo3_2aSvW5aWAS3Y1yJcFnZowRNwBvGDI,3250
|
|
182
|
-
dodal/devices/i05/__init__.py,sha256=v0Axsf-vMyLyxcbqS8lljJc0BQ5Tw8yVBTWcO3tG_4g,67
|
|
183
|
-
dodal/devices/i05/enums.py,sha256=9FHBIexkSfZSTHxUnGupravfG9sVriHcrB15jemkQOQ,191
|
|
184
|
-
dodal/devices/i07/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
185
|
-
dodal/devices/i07/dcm.py,sha256=AJpBiLX6t_mAjGKw9LmjXIFG5IIe5Ploe5LxS-ZckT8,1250
|
|
186
|
-
dodal/devices/i07/id.py,sha256=CMYY_SOr7wS1KYXPIIRcsKBNgg9vSnopovRV4Y61DZU,1489
|
|
187
|
-
dodal/devices/i09/__init__.py,sha256=5AGY_SKtqrU7NeEbzu9ROazPD_C1fEci1LJfdcuz2VY,135
|
|
188
|
-
dodal/devices/i09/enums.py,sha256=Rfs6OgEHSSxcH2UiVmlR_5wLwxDmcHonXds0UDVRfCc,551
|
|
189
|
-
dodal/devices/i09_1/__init__.py,sha256=dTazun87AkMDXh7J8gIZYJxJth0XUs72qahJ-VvhRBI,72
|
|
190
|
-
dodal/devices/i09_1/enums.py,sha256=FwhsvKnEcm9M22U4gcAJi6FE2RaUBZH0jRjNgJUKRqc,1319
|
|
191
|
-
dodal/devices/i09_1_shared/__init__.py,sha256=jbSL26A4boUJZKUCoA7JNjVfjZ3ehERlDsw1kPj1OUw,335
|
|
192
|
-
dodal/devices/i09_1_shared/hard_energy.py,sha256=77TbYZGidZAlwP9zDE-h0mTMW4Iuf9b30mfnbUV0qJc,3965
|
|
193
|
-
dodal/devices/i09_1_shared/hard_undulator_functions.py,sha256=e0kpReW1q4lK4pQYVbg-h9JZxDN-M8a-yaPo1cNuY-0,6205
|
|
194
|
-
dodal/devices/i09_2_shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
|
-
dodal/devices/i09_2_shared/i09_apple2.py,sha256=6WliOiSdTjuO6N5YrvJK4AKAUgT7sSVHoLnpH1ntTU0,245
|
|
196
|
-
dodal/devices/i10/__init__.py,sha256=Pa7gI_ulcPO3dN2xpw6tBN1E3CpV3Lj82kmGwIVU7TA,575
|
|
197
|
-
dodal/devices/i10/diagnostics.py,sha256=ULSHpaRPVWcP-HgKAJW2rsdPoYZs_MgF6HJoPj39MwU,6339
|
|
198
|
-
dodal/devices/i10/i10_apple2.py,sha256=zbJFTsBGT0i0ZMFG49bSPLv0z5gbpr1nRrzbhIEDIh8,6880
|
|
199
|
-
dodal/devices/i10/i10_setting_data.py,sha256=69XWgE-YNTiW7C3t67MNcTL5JDDhOo7h-X7DCTpFE5g,164
|
|
200
|
-
dodal/devices/i10/mirrors.py,sha256=Zofd0g2f3YvFi_KIHQE_w4dFZNglhmh--65tRnWLuyY,504
|
|
201
|
-
dodal/devices/i10/slits.py,sha256=pBstXJnA6j3ftDqei0EZyAPU--M_heqo6hm2DEOqPdc,5040
|
|
202
|
-
dodal/devices/i10/rasor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
203
|
-
dodal/devices/i10/rasor/rasor_current_amp.py,sha256=hImaPI3veKiS5YVfYwv-qrQ1AYNBjFVxG_MwTQqtkcc,2368
|
|
204
|
-
dodal/devices/i10/rasor/rasor_motors.py,sha256=yWBxsiVhbdkQzhaK1S-nUq_wVntwHgdf6T8c8f7wHUE,1327
|
|
205
|
-
dodal/devices/i10/rasor/rasor_scaler_cards.py,sha256=sfWJKNx6pq342PEAlmg_Yt_Tijq7mO1XFjcCDtToQiU,467
|
|
206
|
-
dodal/devices/i11/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
207
|
-
dodal/devices/i11/cyberstar_blower.py,sha256=YngbNzNkWVj_LUGEIqo9JRxRQ0PT7zjouj2VljdDlOk,1033
|
|
208
|
-
dodal/devices/i11/diff_stages.py,sha256=3kcBRUvIwaqmoVf9MxY0CvU8LBbX_qaGhqbbYEmOri4,1713
|
|
209
|
-
dodal/devices/i11/mythen.py,sha256=_fi7SAoWfJ34RyfSNXEyG0gwP0ox6_l9RUN9BF6OBUI,5221
|
|
210
|
-
dodal/devices/i11/nx100robot.py,sha256=utycJTnCGV2_miUF00jEJyFcdYqSC4pcvE2fpyg-7Mo,6157
|
|
211
|
-
dodal/devices/i11/spinner.py,sha256=PjumM7QRB7iFUtN4b6xCvxKItYUNX2XLLWDupy5LI_M,932
|
|
212
|
-
dodal/devices/i13_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
213
|
-
dodal/devices/i13_1/merlin.py,sha256=mgTFSMJftRzLL-HXAUuJkOYxtyA3Rp8YX0L46JCb30Y,1019
|
|
214
|
-
dodal/devices/i13_1/merlin_controller.py,sha256=myfmByOEXyMrlJZfsjOxDHeGQVwZGfsRtzrfSy2001o,1495
|
|
215
|
-
dodal/devices/i15/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
216
|
-
dodal/devices/i15/dcm.py,sha256=S9kZaImMUUYDDycP_a7qJWE6UzU1JUq2kcbH_-jmuZU,1337
|
|
217
|
-
dodal/devices/i15/focussing_mirror.py,sha256=E6T_c7M2osgHLa7u8eUfQJlXlJbZHtOp95FhP3qZ4gY,1739
|
|
218
|
-
dodal/devices/i15/jack.py,sha256=VafCNx-uqkIy0LxbBAhSm_tuC8_SbGCrnTbvQCExAzA,962
|
|
219
|
-
dodal/devices/i15/laue.py,sha256=H0nLPH8gqJejBZtZeY0lv84EaE2lqdL3CmXvT9iHhpk,496
|
|
220
|
-
dodal/devices/i15/motors.py,sha256=-kGHisSWc_zuV9m2L0mGgmiSiIZ7puLsimddk28h_7s,831
|
|
221
|
-
dodal/devices/i15/multilayer_mirror.py,sha256=qdxnn6PBAxK0MgeVUpM8Ukkq4tdX3jhjlmyU-AzzH4M,741
|
|
222
|
-
dodal/devices/i15/rail.py,sha256=9cRTRKy6uZBASMhK1wC8K_k_5FfLgHnoh9VblSOTkpQ,428
|
|
223
|
-
dodal/devices/i17/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
224
|
-
dodal/devices/i17/i17_apple2.py,sha256=BQ8yD87S_nLFRTZ2RHlQqUJyXlRgeN1qvHUjESn7t9w,2250
|
|
225
|
-
dodal/devices/i18/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
226
|
-
dodal/devices/i18/diode.py,sha256=nk5kvn4LsbhczRpCwHOO0_jJTYOz7MP9qm_uvBWuv7c,1468
|
|
227
|
-
dodal/devices/i18/kb_mirror.py,sha256=W4R3TeulSjosUqAFIIznyWzje_Y2AoEf9f8N-NkisYM,710
|
|
228
|
-
dodal/devices/i19/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
229
|
-
dodal/devices/i19/backlight.py,sha256=c3F8RTessUJmJHlCWATSj-W25qlkAttb-c95eS28lKs,662
|
|
230
|
-
dodal/devices/i19/beamstop.py,sha256=JkcvkEmcC3eY3GHrvYNGqv2yDwrfgdpWKVZJWSadWW8,715
|
|
231
|
-
dodal/devices/i19/diffractometer.py,sha256=QCEi0Gko6Ja9_ec2vfdazwMspknvX63jcz8hQ2XW1xo,1182
|
|
232
|
-
dodal/devices/i19/mapt_configuration.py,sha256=0zUzCSDofQORdaqbgD5NU-Vuf-EljgTKfvFDRDA9IjQ,1717
|
|
233
|
-
dodal/devices/i19/pin_col_stages.py,sha256=SAdokjoTmlRcCQQSVTz4jCkBibSsKCye7s5aYtfhsfg,6691
|
|
234
|
-
dodal/devices/i19/access_controlled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
235
|
-
dodal/devices/i19/access_controlled/attenuator_motor_squad.py,sha256=KsU6c-Jb3cwy_iOu1KxQD7gRfswkfCUaI6Ann9TTvkQ,2565
|
|
236
|
-
dodal/devices/i19/access_controlled/blueapi_device.py,sha256=ZUt1Am5H4Tm74joLz7dan2_iZk5YZQTWb_h5OFZZSks,4210
|
|
237
|
-
dodal/devices/i19/access_controlled/hutch_access.py,sha256=hnClUWCL1qTYzuBMmhXX85jiNak7mbYfyHEh54tZ27U,377
|
|
238
|
-
dodal/devices/i19/access_controlled/shutter.py,sha256=D0vNXkIa6IoSoBMyGdw_RQHPlTgJdgzRsKkany0Jv-I,2154
|
|
239
|
-
dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
240
|
-
dodal/devices/i21/__init__.py,sha256=GQB4jkhrWvD1i6LTqIBf_2CDLLL3M9cdwHxjkAHyUdU,74
|
|
241
|
-
dodal/devices/i21/enums.py,sha256=asy90S84fBBydYwz89jNeocz04JXpbHn8ynaPzW353c,141
|
|
242
|
-
dodal/devices/i22/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
243
|
-
dodal/devices/i22/dcm.py,sha256=abs6U6DOUO8_g2adpynfoc9lQYbLC3tgObSwI9AhKZg,4551
|
|
244
|
-
dodal/devices/i22/fswitch.py,sha256=kpgegs4Wv_weBSzbrlXLXqXOOZdzTn3X9k5PlEN5F6c,2881
|
|
245
|
-
dodal/devices/i22/nxsas.py,sha256=rQsNZOkgw3P3mHA4NNeGz-ikjhN6WTvlWOaLLPKPfFM,5481
|
|
246
|
-
dodal/devices/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
247
|
-
dodal/devices/i24/aperture.py,sha256=dlH_g7OPTBc5QRMd-ADU3_GDTKh668kkMHo4k_JxUcY,770
|
|
248
|
-
dodal/devices/i24/beam_center.py,sha256=nQyOif6JtlU_qP7kZP-8wN1ldW81MIbFUykPC1bEm70,446
|
|
249
|
-
dodal/devices/i24/beamstop.py,sha256=6tbiQLlcTlp4PCPhHJ_mlHtkv0kz5ArQ99zg9rwTnrw,1133
|
|
250
|
-
dodal/devices/i24/commissioning_jungfrau.py,sha256=i-B6Sy2braKSGYF2G7QrluPkThXHY-YiULUJRqClFok,4532
|
|
251
|
-
dodal/devices/i24/dcm.py,sha256=2stTmR-Hx7azjVmMPVRu0gRDrJ-1jjKaWxFrF9IKsJc,1268
|
|
252
|
-
dodal/devices/i24/dual_backlight.py,sha256=N0R7M1mHPRmQ4fks5lGU1wrXjOvcW_ZKIXaRoC8aLDE,2084
|
|
253
|
-
dodal/devices/i24/focus_mirrors.py,sha256=DYiYLpDw8FJ1LYHxLOxE_om5qGfUo2itzskgqhmQZlg,1763
|
|
254
|
-
dodal/devices/i24/pmac.py,sha256=-HYf2HPzaqWvszp4T8TXohdp40-xmKqQq4V0mLvVri8,7028
|
|
255
|
-
dodal/devices/i24/vgonio.py,sha256=sxSmcYZayVJPJz_D_91j9PmNor7Tbl1RGQFRrdtESlw,533
|
|
256
|
-
dodal/devices/insertion_device/__init__.py,sha256=Gx-2YRja1TeW5AMaSH42sCOoiXnoAkuezsy8aJmC3IE,1373
|
|
257
|
-
dodal/devices/insertion_device/apple2_undulator.py,sha256=B0OjfPv8oN0tOVJ8JVhsBqLC9zWeHQxxy9t9ERO6T_Q,30543
|
|
258
|
-
dodal/devices/insertion_device/energy_motor_lookup.py,sha256=8kmw7rNBTK_srKplNQ5pHD5P6b1oOP1fNJ7iNDrKgzY,2708
|
|
259
|
-
dodal/devices/insertion_device/id_enum.py,sha256=IQgVUiY23hcOk3G073OAspeRJ9V4YEx2MntKlUt0Nqk,265
|
|
260
|
-
dodal/devices/insertion_device/lookup_table_models.py,sha256=_lkdHo9W8u0GppBUg5Mas7ABF1ET3la6PjLGavThh3Q,9874
|
|
261
|
-
dodal/devices/mx_phase1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
262
|
-
dodal/devices/mx_phase1/beamstop.py,sha256=zWdZp0j9lCg4YzsZ7GSR3xEcvMfMTJoMO6XdgiC53p4,3765
|
|
263
|
-
dodal/devices/oav/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
264
|
-
dodal/devices/oav/oav_calculations.py,sha256=pgQmqot9avffVRjY-NkboKnGxPEtwSovWSDMQD1icvg,2746
|
|
265
|
-
dodal/devices/oav/oav_detector.py,sha256=HHBiXREzX6bDtQ2miPEa5SgR-nVdQzoQr5fpkz9fzdg,8942
|
|
266
|
-
dodal/devices/oav/oav_parameters.py,sha256=gBFJwJbPGXyyXWxxhJIRhM5lAF_JxqSGOFOUW8oKL-Q,7017
|
|
267
|
-
dodal/devices/oav/oav_to_redis_forwarder.py,sha256=4F9FuAM0d5vWEUCeLmyNLQl6IUK89Vttw2rX1Kw-mGQ,6400
|
|
268
|
-
dodal/devices/oav/utils.py,sha256=ekDiYypwH-FuT3Ss7QZnEbukjhtAY466SGVMz5T97s8,3517
|
|
269
|
-
dodal/devices/oav/pin_image_recognition/__init__.py,sha256=s5cdeJ6EuKAA-e5n4laaWNlYHza87frPYVC809N3TOw,6573
|
|
270
|
-
dodal/devices/oav/pin_image_recognition/manual_test.py,sha256=h1Rto6ZDCB3jWhjSy9N8ECxRN583iYDJr9LxrTJ8kfE,903
|
|
271
|
-
dodal/devices/oav/pin_image_recognition/utils.py,sha256=HPPMh4dTXvS4Jr9DqAXkanWQfFi7sA5kOcqLRpT2kjE,9448
|
|
272
|
-
dodal/devices/oav/snapshots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
273
|
-
dodal/devices/oav/snapshots/grid_overlay.py,sha256=CdvCdTKMCiwMwxm2lV28KpcIUSXlscZmWxb73_KKmiI,3694
|
|
274
|
-
dodal/devices/oav/snapshots/snapshot.py,sha256=Ksjy6B2wyxFdMyHAPSPcTVhx_UTEd_T9JDnTDMG4VJ0,499
|
|
275
|
-
dodal/devices/oav/snapshots/snapshot_image_processing.py,sha256=nNBOKX0JwBh4AJWflYueEbKEJ_tvIDa4Y5mNgS8RFv0,2318
|
|
276
|
-
dodal/devices/oav/snapshots/snapshot_with_grid.py,sha256=04MgMrclfB3cJuv2AmYE8oqQscUAr1JVmQIb5DIa-rU,2448
|
|
277
|
-
dodal/devices/p60/__init__.py,sha256=cLrjUaHNJRtRBb1ic_LTlxIi_nH6_hZN8-5gWCt0Q6w,229
|
|
278
|
-
dodal/devices/p60/enums.py,sha256=S0dFIG4k1aI995q-SSZYfKYiXRog_SnTTOVHOtP-qug,521
|
|
279
|
-
dodal/devices/p60/lab_xray_source.py,sha256=CrvJYNspp4xgmad_VSUwaMG39L5S8sDRiD2wNrmXjEg,603
|
|
280
|
-
dodal/devices/p99/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
281
|
-
dodal/devices/p99/andor2_point.py,sha256=zBoIou7VVzs-tAq3M29XL2xYV8aYZRKPYCGKRLk7MA0,1417
|
|
282
|
-
dodal/devices/p99/sample_stage.py,sha256=DvHU556Gp0wFiufZiwY3o2W4xmsCL5uSwNnhd8HPAnc,528
|
|
283
|
-
dodal/devices/temperture_controller/__init__.py,sha256=AV5Bxci_4xPwwv0zg3fp6N8Zx7Z7XKt4fzMQzQt-Fbo,128
|
|
284
|
-
dodal/devices/temperture_controller/lakeshore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
285
|
-
dodal/devices/temperture_controller/lakeshore/lakeshore.py,sha256=AK3-iRMLUx7dBQHc7pYzfY1sulVfzMJZ0Cuk-FNCi9Y,6407
|
|
286
|
-
dodal/devices/temperture_controller/lakeshore/lakeshore_io.py,sha256=OSvJv-vtWIoDuvqGAbg9_3QvSfIA2iBEleJJ7M2-gO4,3914
|
|
287
|
-
dodal/devices/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
288
|
-
dodal/devices/util/adjuster_plans.py,sha256=c40PFZpXFw0YmJLh9jU4VIb8vRxHyafZlmvprTKAOhM,824
|
|
289
|
-
dodal/devices/util/epics_util.py,sha256=4useFL8ngsVF08fhOn48BlnO4oh0T4sEKqjdS6mjvG0,4687
|
|
290
|
-
dodal/devices/util/lookup_tables.py,sha256=8rip4fQI3YaYNcnUPiWF5Bhq9UXJSxFFfqJaFU4a_LU,3706
|
|
291
|
-
dodal/devices/xspress3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
292
|
-
dodal/devices/xspress3/xspress3.py,sha256=OerapEy-IuK7EFz13B5z0BzBmESVl6pYUlqAWHIwJck,4555
|
|
293
|
-
dodal/devices/xspress3/xspress3_channel.py,sha256=w8tAx2lz5kJ_LeJ_eb_4o--Dtt8MRijsYNgDG6oEIVg,1626
|
|
294
|
-
dodal/devices/zebra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
295
|
-
dodal/devices/zebra/zebra.py,sha256=AxGmFIYL62arJcy8WCE2-M1llxVB3xBhum3NV7jpEUQ,9602
|
|
296
|
-
dodal/devices/zebra/zebra_constants_mapping.py,sha256=12Xs_nEbnAxdUN45VNn5fmI6GuUKpcQcJwsv5mifMss,4157
|
|
297
|
-
dodal/devices/zebra/zebra_controlled_shutter.py,sha256=hrSD1oRW8BY67ub_oggjp6cvhqlRQWlXYsGtn9HBGhk,1876
|
|
298
|
-
dodal/devices/zocalo/__init__.py,sha256=76YCA9dS0MF4AqSa-r5ss6oOgKVVjmVcbQYGtuOyeFA,498
|
|
299
|
-
dodal/devices/zocalo/zocalo_constants.py,sha256=vu7Xjz7UNEpBUWEEBxDvP4bVFkZIN6NLGfQDpWbCjH8,98
|
|
300
|
-
dodal/devices/zocalo/zocalo_interaction.py,sha256=GFukU9xqagQtVSDg5BrL23jxl1w8wjs4b4NLLqdFfpk,3584
|
|
301
|
-
dodal/devices/zocalo/zocalo_results.py,sha256=czYNpOurzBJBfl4OS0Uxpjpp09QFDtJprXyBctqPu2c,12659
|
|
302
|
-
dodal/parameters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
303
|
-
dodal/parameters/experiment_parameter_base.py,sha256=vONep-llSqhM0OpVj3zFUxdnzRQpu9y9mPhh2HauEJE,226
|
|
304
|
-
dodal/plan_stubs/__init__.py,sha256=HbaQ9K1pSznrmDecSRIhClLWercMRuO9G7GoFvtZ6lY,168
|
|
305
|
-
dodal/plan_stubs/check_topup.py,sha256=3gyLHfHNQBCgEWuAg4QE-ONx7y2Do1vVv5HP8ss0Z1I,5371
|
|
306
|
-
dodal/plan_stubs/data_session.py,sha256=Syc6XKaN1usf7bNWOez8_vAH3byrcROqskmBrSUWa4Y,2132
|
|
307
|
-
dodal/plan_stubs/motor_utils.py,sha256=smYhhkSfDHQrq_UPa7Szhhyx_HlwnP_1srG0JkiDwnY,4478
|
|
308
|
-
dodal/plan_stubs/wrapped.py,sha256=kC8HH7bx3-sLYu2oieY_502tAdT2OECF8n-fqoL5Bfc,4266
|
|
309
|
-
dodal/plans/__init__.py,sha256=Hi-PVPyOMWcnbggtrORhhOCsH9TXTCW_mgxYVr5EKEU,94
|
|
310
|
-
dodal/plans/bimorph.py,sha256=JxDmZDiEvZnz5f22tlaoyivpnaNGiX8kSL82qz5uvMM,11738
|
|
311
|
-
dodal/plans/configure_arm_trigger_and_disarm_detector.py,sha256=Yffie3vznQbVGKQUiQFzpl0CxWBKJz1d3-SmschmeAw,6164
|
|
312
|
-
dodal/plans/load_panda_yaml.py,sha256=OF-ZygZyAyQEUdrAWiIxWZ6QhAsVx4Mm9ngRYB1mzKI,433
|
|
313
|
-
dodal/plans/save_panda.py,sha256=X-zR5GysBPp3M7ZpEYEqCUSc4nJYzHJBA44e52uQ6F4,3099
|
|
314
|
-
dodal/plans/spec_path.py,sha256=Q0AcvTKRT401iGMRDSqK-D523UX5_ofiVMZ_rNXKOx8,2074
|
|
315
|
-
dodal/plans/verify_undulator_gap.py,sha256=8FirCLRuDreqIRYTJfFuaefrgInoztKKajD6T-t07yw,638
|
|
316
|
-
dodal/plans/wrapped.py,sha256=BPMw__RcWvk9v5XnhMsi9_k4KsDEbmXogzD2n1ecbUg,2098
|
|
317
|
-
dodal/plans/preprocessors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
318
|
-
dodal/plans/preprocessors/verify_undulator_gap.py,sha256=cBZEGq8TW1jrXFXB00iClQVXSEaE_jP_rHMY9WTgYyY,1813
|
|
319
|
-
dodal/testing/electron_analyser/__init__.py,sha256=-lc1opD2dCv0x678-J-ApOhHtvEvcslfOQ7E613U8-Y,118
|
|
320
|
-
dodal/testing/electron_analyser/device_factory.py,sha256=mLeWQems_xBmmxPjyUEBhcp8VIsasY4TsUnVOe10ZaE,2252
|
|
321
|
-
dodal/testing/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
322
|
-
dodal/testing/fixtures/run_engine.py,sha256=_DQivl-pAAoSVpX60XT4jLLmPBJHahCkaVAI3gnl3q8,4208
|
|
323
|
-
dodal/testing/fixtures/utils.py,sha256=jy3mfAAn_TFQ7gqCec-OiOlZkaNLUH3TESW2oohvNgo,1861
|
|
324
|
-
dodal/testing/fixtures/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
325
|
-
dodal/testing/fixtures/devices/apple2.py,sha256=5FbO1YACBF8aM82X9_36gPqk6rjdy1xRu8OdfdPrxAM,2727
|
|
326
|
-
dls_dodal-1.68.0.dist-info/METADATA,sha256=9_RH8_nxq7q8xT5oNB_i10-jiRoqOC6dIxs_RRHg2o0,16923
|
|
327
|
-
dls_dodal-1.68.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
328
|
-
dls_dodal-1.68.0.dist-info/entry_points.txt,sha256=0IO1Bjlnv0vJSSFdGEZ-S_pqQNkE2FnPTA6f0-aTBs8,87
|
|
329
|
-
dls_dodal-1.68.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
|
|
330
|
-
dls_dodal-1.68.0.dist-info/RECORD,,
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
|
-
from dodal.devices.i05.enums import Grating
|
|
3
|
-
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
4
|
-
from dodal.utils import BeamlinePrefix
|
|
5
|
-
|
|
6
|
-
PREFIX = BeamlinePrefix("i05", "I")
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
@device_factory()
|
|
10
|
-
def pgm() -> PlaneGratingMonochromator:
|
|
11
|
-
return PlaneGratingMonochromator(
|
|
12
|
-
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
13
|
-
grating=Grating,
|
|
14
|
-
)
|
dodal/devices/b07/__init__.py
DELETED
dodal/devices/i04/max_pixel.py
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import cv2
|
|
2
|
-
import numpy as np
|
|
3
|
-
from bluesky.protocols import Triggerable
|
|
4
|
-
from ophyd_async.core import AsyncStatus, StandardReadable, soft_signal_r_and_setter
|
|
5
|
-
from ophyd_async.epics.core import (
|
|
6
|
-
epics_signal_r,
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
# kernal size describes how many of the neigbouring pixels are used for the blur,
|
|
10
|
-
# higher kernal size means more of a blur effect
|
|
11
|
-
KERNAL_SIZE = (7, 7)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class MaxPixel(StandardReadable, Triggerable):
|
|
15
|
-
"""Gets the max pixel (brightest pixel) from the image after some image processing."""
|
|
16
|
-
|
|
17
|
-
def __init__(self, prefix: str, name: str = "") -> None:
|
|
18
|
-
self.array_data = epics_signal_r(np.ndarray, f"pva://{prefix}PVA:ARRAY")
|
|
19
|
-
self.max_pixel_val, self._max_val_setter = soft_signal_r_and_setter(float)
|
|
20
|
-
super().__init__(name)
|
|
21
|
-
|
|
22
|
-
async def _convert_to_gray_and_blur(self):
|
|
23
|
-
"""
|
|
24
|
-
Preprocess the image array data (convert to grayscale and apply a gaussian blur)
|
|
25
|
-
Image is converted to grayscale (using a weighted mean as green contributes more to brightness)
|
|
26
|
-
as we aren't interested in data relating to colour. A blur is then applied to mitigate
|
|
27
|
-
errors due to rogue hot pixels.
|
|
28
|
-
"""
|
|
29
|
-
data = await self.array_data.get_value()
|
|
30
|
-
gray_arr = cv2.cvtColor(data, cv2.COLOR_BGR2GRAY)
|
|
31
|
-
return cv2.GaussianBlur(gray_arr, KERNAL_SIZE, 0)
|
|
32
|
-
|
|
33
|
-
@AsyncStatus.wrap
|
|
34
|
-
async def trigger(self):
|
|
35
|
-
arr = await self._convert_to_gray_and_blur()
|
|
36
|
-
max_val = float(np.max(arr)) # np.int64
|
|
37
|
-
assert isinstance(max_val, float)
|
|
38
|
-
self._max_val_setter(max_val)
|
dodal/devices/i05/__init__.py
DELETED
dodal/devices/i09/__init__.py
DELETED