mx-bluesky 0.0.2__py3-none-any.whl → 0.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. mx_bluesky/__main__.py +1 -2
  2. mx_bluesky/_version.py +14 -2
  3. mx_bluesky/example.py +4 -4
  4. mx_bluesky/i04/__init__.py +3 -0
  5. mx_bluesky/i04/callbacks/murko_callback.py +45 -0
  6. mx_bluesky/i04/thawing_plan.py +84 -0
  7. mx_bluesky/i24/serial/__init__.py +49 -0
  8. mx_bluesky/i24/serial/blueapi_config.yaml +12 -0
  9. mx_bluesky/{I24 → i24}/serial/dcid.py +53 -41
  10. mx_bluesky/{I24 → i24}/serial/extruder/EX-gui-edm/DetStage.edl +1 -2
  11. mx_bluesky/{I24 → i24}/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl +28 -32
  12. mx_bluesky/{I24 → i24}/serial/extruder/EX-gui-edm/microdrop_alignment.edl +0 -1
  13. mx_bluesky/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +513 -0
  14. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl +1 -2
  15. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/DetStage.edl +1 -2
  16. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl +46 -41
  17. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl +0 -1
  18. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl +10 -11
  19. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/PMAC_Command.edl +0 -1
  20. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/Shutter_Control.edl +0 -1
  21. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl +0 -1
  22. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/nudgechip.edl +0 -1
  23. mx_bluesky/{I24 → i24}/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl +273 -143
  24. mx_bluesky/i24/serial/fixed_target/FT-gui-edm/short1-laser.png +0 -0
  25. mx_bluesky/i24/serial/fixed_target/FT-gui-edm/short2-laser.png +0 -0
  26. mx_bluesky/{I24 → i24}/serial/fixed_target/ft_utils.py +24 -1
  27. mx_bluesky/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +798 -0
  28. mx_bluesky/{I24 → i24}/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py +374 -412
  29. mx_bluesky/{I24 → i24}/serial/fixed_target/i24ssx_Chip_Mapping_py3v1.py +34 -40
  30. mx_bluesky/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +325 -0
  31. mx_bluesky/{I24 → i24}/serial/fixed_target/i24ssx_moveonclick.py +39 -41
  32. mx_bluesky/i24/serial/log.py +156 -0
  33. mx_bluesky/i24/serial/parameters/__init__.py +15 -0
  34. mx_bluesky/i24/serial/parameters/constants.py +47 -0
  35. mx_bluesky/i24/serial/parameters/experiment_parameters.py +124 -0
  36. mx_bluesky/i24/serial/parameters/fixed_target/cs/cs_maker.json +9 -0
  37. mx_bluesky/{I24 → i24}/serial/parameters/fixed_target/cs/motor_direction.txt +1 -1
  38. mx_bluesky/{I24 → i24}/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar +1 -1
  39. mx_bluesky/i24/serial/parameters/utils.py +40 -0
  40. mx_bluesky/i24/serial/run_extruder.sh +19 -0
  41. mx_bluesky/i24/serial/run_fixed_target.sh +22 -0
  42. mx_bluesky/i24/serial/run_serial.py +36 -0
  43. mx_bluesky/{I24 → i24}/serial/set_visit_directory.sh +6 -1
  44. mx_bluesky/{I24 → i24}/serial/setup_beamline/pv.py +1 -62
  45. mx_bluesky/{I24 → i24}/serial/setup_beamline/pv_abstract.py +6 -7
  46. mx_bluesky/{I24 → i24}/serial/setup_beamline/setup_beamline.py +90 -269
  47. mx_bluesky/{I24 → i24}/serial/setup_beamline/setup_detector.py +47 -40
  48. mx_bluesky/i24/serial/setup_beamline/setup_zebra_plans.py +459 -0
  49. mx_bluesky/i24/serial/start_blueapi.sh +28 -0
  50. mx_bluesky/i24/serial/write_nexus.py +102 -0
  51. mx_bluesky/parameters/__init__.py +31 -0
  52. mx_bluesky/parameters/components.py +200 -0
  53. {mx_bluesky-0.0.2.dist-info → mx_bluesky-0.3.1.dist-info}/METADATA +33 -27
  54. mx_bluesky-0.3.1.dist-info/RECORD +67 -0
  55. {mx_bluesky-0.0.2.dist-info → mx_bluesky-0.3.1.dist-info}/WHEEL +1 -1
  56. mx_bluesky-0.3.1.dist-info/entry_points.txt +4 -0
  57. mx_bluesky/I24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py +0 -476
  58. mx_bluesky/I24/serial/fixed_target/FT-gui-edm/ME14E-motors.edl +0 -1874
  59. mx_bluesky/I24/serial/fixed_target/__init__.py +0 -0
  60. mx_bluesky/I24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py +0 -706
  61. mx_bluesky/I24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py +0 -463
  62. mx_bluesky/I24/serial/log.py +0 -101
  63. mx_bluesky/I24/serial/parameters/__init__.py +0 -5
  64. mx_bluesky/I24/serial/parameters/constants.py +0 -39
  65. mx_bluesky/I24/serial/parameters/fixed_target/cs/cs_maker.json +0 -9
  66. mx_bluesky/I24/serial/parameters/fixed_target/cs/fiducial_1.txt +0 -4
  67. mx_bluesky/I24/serial/parameters/fixed_target/cs/fiducial_2.txt +0 -4
  68. mx_bluesky/I24/serial/parameters/fixed_target/litemaps/currentchip.map +0 -81
  69. mx_bluesky/I24/serial/parameters/fixed_target/parameters.txt +0 -13
  70. mx_bluesky/I24/serial/run_serial.py +0 -52
  71. mx_bluesky/I24/serial/write_nexus.py +0 -113
  72. mx_bluesky-0.0.2.dist-info/RECORD +0 -58
  73. mx_bluesky-0.0.2.dist-info/entry_points.txt +0 -4
  74. /mx_bluesky/{I24 → i24}/__init__.py +0 -0
  75. /mx_bluesky/{I24/serial → i24/serial/extruder}/__init__.py +0 -0
  76. /mx_bluesky/{I24/serial/extruder → i24/serial/fixed_target}/__init__.py +0 -0
  77. /mx_bluesky/{I24 → i24}/serial/parameters/fixed_target/pvar_files/oxford.pvar +0 -0
  78. /mx_bluesky/{I24 → i24}/serial/run_ssx.sh +0 -0
  79. /mx_bluesky/{I24 → i24}/serial/setup_beamline/__init__.py +0 -0
  80. /mx_bluesky/{I24 → i24}/serial/setup_beamline/ca.py +0 -0
  81. {mx_bluesky-0.0.2.dist-info → mx_bluesky-0.3.1.dist-info}/LICENSE +0 -0
  82. {mx_bluesky-0.0.2.dist-info → mx_bluesky-0.3.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,200 @@
1
+ from __future__ import annotations
2
+
3
+ from abc import abstractmethod
4
+ from collections.abc import Sequence
5
+ from enum import Enum
6
+ from pathlib import Path
7
+ from typing import SupportsInt, TypeVar
8
+
9
+ from dodal.devices.aperturescatterguard import AperturePositionGDANames
10
+ from dodal.devices.detector import (
11
+ DetectorParams,
12
+ TriggerMode,
13
+ )
14
+ from pydantic import BaseModel, Field, root_validator
15
+ from scanspec.core import AxesPoints
16
+ from semver import Version
17
+
18
+ T = TypeVar("T")
19
+
20
+
21
+ class ParameterVersion(Version):
22
+ @classmethod
23
+ def _parse(cls, version):
24
+ if isinstance(version, cls):
25
+ return version
26
+ return cls.parse(version)
27
+
28
+ @classmethod
29
+ def __get_validators__(cls):
30
+ """Return a list of validator methods for pydantic models."""
31
+ yield cls._parse
32
+
33
+ @classmethod
34
+ def __modify_schema__(cls, field_schema):
35
+ """Inject/mutate the pydantic field schema in-place."""
36
+ field_schema.update(examples=["1.0.2", "2.15.3-alpha", "21.3.15-beta+12345"])
37
+
38
+
39
+ class RotationAxis(str, Enum):
40
+ OMEGA = "omega"
41
+ PHI = "phi"
42
+ CHI = "chi"
43
+ KAPPA = "kappa"
44
+
45
+
46
+ class XyzAxis(str, Enum):
47
+ X = "sam_x"
48
+ Y = "sam_y"
49
+ Z = "sam_z"
50
+
51
+
52
+ class IspybExperimentType(str, Enum):
53
+ # Enum values from ispyb column data type
54
+ SAD = "SAD" # at or slightly above the peak
55
+ SAD_INVERSE_BEAM = "SAD - Inverse Beam"
56
+ OSC = "OSC" # "native" (in the absence of a heavy atom)
57
+ COLLECT_MULTIWEDGE = (
58
+ "Collect - Multiwedge" # "poorly determined" ~ EDNA complex strategy???
59
+ )
60
+ MAD = "MAD"
61
+ HELICAL = "Helical"
62
+ MULTI_POSITIONAL = "Multi-positional"
63
+ MESH = "Mesh"
64
+ BURN = "Burn"
65
+ MAD_INVERSE_BEAM = "MAD - Inverse Beam"
66
+ CHARACTERIZATION = "Characterization"
67
+ DEHYDRATION = "Dehydration"
68
+ TOMO = "tomo"
69
+ EXPERIMENT = "experiment"
70
+ EM = "EM"
71
+ PDF = "PDF"
72
+ PDF_BRAGG = "PDF+Bragg"
73
+ BRAGG = "Bragg"
74
+ SINGLE_PARTICLE = "single particle"
75
+ SERIAL_FIXED = "Serial Fixed"
76
+ SERIAL_JET = "Serial Jet"
77
+ STANDARD = "Standard" # Routine structure determination experiment
78
+ TIME_RESOLVED = "Time Resolved" # Investigate the change of a system over time
79
+ DLS_ANVIL_HP = "Diamond Anvil High Pressure" # HP sample environment pressure cell
80
+ CUSTOM = "Custom" # Special or non-standard data collection
81
+ XRF_MAP = "XRF map"
82
+ ENERGY_SCAN = "Energy scan"
83
+ XRF_SPECTRUM = "XRF spectrum"
84
+ XRF_MAP_XAS = "XRF map xas"
85
+ MESH_3D = "Mesh3D"
86
+ SCREENING = "Screening"
87
+ STILL = "Still"
88
+ SSX_CHIP = "SSX-Chip"
89
+ SSX_JET = "SSX-Jet"
90
+
91
+ # Aliases for historic hyperion experiment type mapping
92
+ ROTATION = "SAD"
93
+ GRIDSCAN_2D = "mesh"
94
+ GRIDSCAN_3D = "Mesh3D"
95
+
96
+
97
+ class WithSnapshot(BaseModel):
98
+ snapshot_directory: Path
99
+ snapshot_omegas_deg: list[float] | None
100
+
101
+ @property
102
+ def take_snapshots(self) -> bool:
103
+ return bool(self.snapshot_omegas_deg)
104
+
105
+
106
+ class DiffractionExperiment(WithSnapshot):
107
+ """For all experiments which use beam"""
108
+
109
+ visit: str = Field(min_length=5, regex=r"[\w]{2}[\d]+-[\d]+")
110
+ file_name: str
111
+ exposure_time_s: float = Field(gt=0)
112
+ comment: str = Field(default="")
113
+ beamline: str = Field(regex=r"BL\d{2}[BIJS]")
114
+ insertion_prefix: str = Field(regex=r"SR\d{2}[BIJS]")
115
+ det_dist_to_beam_converter_path: str
116
+ zocalo_environment: str
117
+ trigger_mode: TriggerMode = Field(default=TriggerMode.FREE_RUN)
118
+ detector_distance_mm: float | None = Field(default=None, gt=0)
119
+ demand_energy_ev: float | None = Field(default=None, gt=0)
120
+ run_number: int | None = Field(default=None, ge=0)
121
+ selected_aperture: AperturePositionGDANames | None = Field(default=None)
122
+ transmission_frac: float = Field(default=0.1)
123
+ ispyb_experiment_type: IspybExperimentType
124
+ storage_directory: str
125
+
126
+ @root_validator(pre=True)
127
+ def validate_snapshot_directory(cls, values):
128
+ snapshot_dir = values.get(
129
+ "snapshot_directory", Path(values["storage_directory"], "snapshots")
130
+ )
131
+ values["snapshot_directory"] = (
132
+ snapshot_dir if isinstance(snapshot_dir, Path) else Path(snapshot_dir)
133
+ )
134
+ return values
135
+
136
+ @property
137
+ def num_images(self) -> int:
138
+ return 0
139
+
140
+ @property
141
+ @abstractmethod
142
+ def detector_params(self) -> DetectorParams: ...
143
+
144
+
145
+ class WithScan(BaseModel):
146
+ """For experiments where the scan is known"""
147
+
148
+ @property
149
+ @abstractmethod
150
+ def scan_points(self) -> AxesPoints: ...
151
+
152
+ @property
153
+ @abstractmethod
154
+ def num_images(self) -> int: ...
155
+
156
+
157
+ class SplitScan(BaseModel):
158
+ @property
159
+ @abstractmethod
160
+ def scan_indices(self) -> Sequence[SupportsInt]:
161
+ """Should return the first index of each scan (i.e. for each nexus file)"""
162
+ ...
163
+
164
+
165
+ class WithSample(BaseModel):
166
+ sample_id: int
167
+ sample_puck: int | None = None
168
+ sample_pin: int | None = None
169
+
170
+
171
+ class WithOavCentring(BaseModel):
172
+ oav_centring_file: str
173
+
174
+
175
+ class OptionalXyzStarts(BaseModel):
176
+ x_start_um: float | None = None
177
+ y_start_um: float | None = None
178
+ z_start_um: float | None = None
179
+
180
+
181
+ class XyzStarts(BaseModel):
182
+ x_start_um: float
183
+ y_start_um: float
184
+ z_start_um: float
185
+
186
+ def _start_for_axis(self, axis: XyzAxis) -> float:
187
+ match axis:
188
+ case XyzAxis.X:
189
+ return self.x_start_um
190
+ case XyzAxis.Y:
191
+ return self.y_start_um
192
+ case XyzAxis.Z:
193
+ return self.z_start_um
194
+
195
+
196
+ class OptionalGonioAngleStarts(BaseModel):
197
+ omega_start_deg: float | None = None
198
+ phi_start_deg: float | None = None
199
+ chi_start_deg: float | None = None
200
+ kappa_start_deg: float | None = None
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mx-bluesky
3
- Version: 0.0.2
4
- Summary: Bluesky tools for MX Beamlines
3
+ Version: 0.3.1
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
7
7
  Version 2.0, January 2004
@@ -205,31 +205,42 @@ License: Apache License
205
205
  See the License for the specific language governing permissions and
206
206
  limitations under the License.
207
207
 
208
- Project-URL: GitHub, https://github.com/DiamondLightSource/mx_bluesky
208
+ Project-URL: GitHub, https://github.com/DiamondLightSource/mx-bluesky
209
209
  Classifier: Development Status :: 3 - Alpha
210
210
  Classifier: License :: OSI Approved :: Apache Software License
211
- Classifier: Programming Language :: Python :: 3.9
212
211
  Classifier: Programming Language :: Python :: 3.10
213
212
  Classifier: Programming Language :: Python :: 3.11
214
- Requires-Python: >=3.9
213
+ Classifier: Programming Language :: Python :: 3.12
214
+ Requires-Python: >=3.10
215
215
  Description-Content-Type: text/x-rst
216
216
  License-File: LICENSE
217
217
  Requires-Dist: bluesky
218
218
  Requires-Dist: ophyd
219
219
  Requires-Dist: pyepics
220
+ Requires-Dist: caproto
220
221
  Requires-Dist: jupyterlab
221
222
  Requires-Dist: matplotlib
222
223
  Requires-Dist: requests
223
224
  Requires-Dist: opencv-python
224
- Requires-Dist: dls-dodal ==1.9.0
225
+ Requires-Dist: pydantic
226
+ Requires-Dist: semver
227
+ Requires-Dist: fastapi[all]
228
+ Requires-Dist: dls-dodal ==1.30.0
229
+ Requires-Dist: blueapi ==0.4.4
225
230
  Provides-Extra: dev
226
- Requires-Dist: GitPython ; extra == 'dev'
227
231
  Requires-Dist: black ; extra == 'dev'
232
+ Requires-Dist: copier ; extra == 'dev'
233
+ Requires-Dist: GitPython ; extra == 'dev'
228
234
  Requires-Dist: mypy ; extra == 'dev'
235
+ Requires-Dist: myst-parser ; extra == 'dev'
229
236
  Requires-Dist: pipdeptree ; extra == 'dev'
230
237
  Requires-Dist: pre-commit ; extra == 'dev'
231
238
  Requires-Dist: pydata-sphinx-theme >=0.12 ; extra == 'dev'
239
+ Requires-Dist: pyright ; extra == 'dev'
240
+ Requires-Dist: pytest-asyncio ; extra == 'dev'
232
241
  Requires-Dist: pytest-cov ; extra == 'dev'
242
+ Requires-Dist: pytest-random-order ; extra == 'dev'
243
+ Requires-Dist: pytest ; extra == 'dev'
233
244
  Requires-Dist: ruff ; extra == 'dev'
234
245
  Requires-Dist: sphinx-autobuild ; extra == 'dev'
235
246
  Requires-Dist: sphinx-copybutton ; extra == 'dev'
@@ -238,24 +249,24 @@ Requires-Dist: tox-direct ; extra == 'dev'
238
249
  Requires-Dist: types-mock ; extra == 'dev'
239
250
  Requires-Dist: types-requests ; extra == 'dev'
240
251
 
241
- mx_bluesky
252
+ mx-bluesky
242
253
  ===========================
243
254
 
244
- |code_ci| |docs_ci| |coverage| |pypi_version| |license|
255
+ |ci| |coverage| |pypi_version| |license|
245
256
 
246
257
  Contains code for working with Bluesky on MX beamlines at Diamond
247
258
 
248
259
  ============== ==============================================================
249
- PyPI ``pip install mx_bluesky``
250
- Source code https://github.com/DiamondLightSource/mx_bluesky
251
- Documentation https://DiamondLightSource.github.io/mx_bluesky
252
- Releases https://github.com/DiamondLightSource/mx_bluesky/releases
260
+ PyPI ``pip install mx-bluesky``
261
+ Source code https://github.com/DiamondLightSource/mx-bluesky
262
+ Documentation https://DiamondLightSource.github.io/mx-bluesky
263
+ Releases https://github.com/DiamondLightSource/mx-bluesky/releases
253
264
  ============== ==============================================================
254
265
 
255
266
  Getting Started
256
267
  ===============
257
268
 
258
- To get started with developing this repo at DLS run ```dls_dev_setup.sh``.
269
+ To get started with developing this repo at DLS run ``dls_dev_setup.sh``.
259
270
 
260
271
  If you want to develop interactively at the beamline we recommend using jupyter notebooks. You can get started with this by running::
261
272
 
@@ -263,24 +274,19 @@ If you want to develop interactively at the beamline we recommend using jupyter
263
274
 
264
275
  If you're doing more in-depth development we recommend developing with VSCode. You can do this at DLS by running::
265
276
 
266
-
267
277
  $ module load vscode
268
- $ code .
278
+ $ code .vscode/mx-bluesky.code-workspace
269
279
 
270
- .. |code_ci| image:: https://github.com/DiamondLightSource/mx_bluesky/actions/workflows/code.yml/badge.svg?branch=main
271
- :target: https://github.com/DiamondLightSource/mx_bluesky/actions/workflows/code.yml
280
+ .. |ci| image:: https://github.com/DiamondLightSource/mx-bluesky/actions/workflows/ci.yml/badge.svg?branch=main
281
+ :target: https://github.com/DiamondLightSource/mx-bluesky/actions/workflows/ci.yml
272
282
  :alt: Code CI
273
283
 
274
- .. |docs_ci| image:: https://github.com/DiamondLightSource/mx_bluesky/actions/workflows/docs.yml/badge.svg?branch=main
275
- :target: https://github.com/DiamondLightSource/mx_bluesky/actions/workflows/docs.yml
276
- :alt: Docs CI
277
-
278
- .. |coverage| image:: https://codecov.io/gh/DiamondLightSource/mx_bluesky/branch/main/graph/badge.svg
279
- :target: https://codecov.io/gh/DiamondLightSource/mx_bluesky
284
+ .. |coverage| image:: https://codecov.io/gh/DiamondLightSource/mx-bluesky/branch/main/graph/badge.svg
285
+ :target: https://codecov.io/gh/DiamondLightSource/mx-bluesky
280
286
  :alt: Test Coverage
281
287
 
282
- .. |pypi_version| image:: https://img.shields.io/pypi/v/mx_bluesky.svg
283
- :target: https://pypi.org/project/mx_bluesky
288
+ .. |pypi_version| image:: https://img.shields.io/pypi/v/mx-bluesky.svg
289
+ :target: https://pypi.org/project/mx-bluesky
284
290
  :alt: Latest PyPI version
285
291
 
286
292
  .. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
@@ -291,4 +297,4 @@ If you're doing more in-depth development we recommend developing with VSCode. Y
291
297
  Anything below this line is used when viewing README.rst and will be replaced
292
298
  when included in index.rst
293
299
 
294
- See https://DiamondLightSource.github.io/mx_bluesky for more detailed documentation.
300
+ See https://DiamondLightSource.github.io/mx-bluesky for more detailed documentation.
@@ -0,0 +1,67 @@
1
+ mx_bluesky/__init__.py,sha256=twUymKa_5teVCbYPgxRDu87WyQhJa8nMRb8HLTCFJZ8,115
2
+ mx_bluesky/__main__.py,sha256=bmFrxcsN8zGadkDLRnE3qV3-iXJcEWVPp5GNx2rsTJ0,383
3
+ mx_bluesky/_version.py,sha256=HzPz9rq3s1AiZXregKlqKaJJ2wGMtvH_a3V9la9CnpM,411
4
+ mx_bluesky/example.py,sha256=_zBoGrKAI1ReOvBz51F9PDorKWQufrb0_ydmoqJ2UAA,478
5
+ mx_bluesky/jupyter_example.ipynb,sha256=tfgYrPU8Rfyv5miiaJUjrTn1jduXlD3e78Z9iHG9s8Y,1663
6
+ mx_bluesky/i04/__init__.py,sha256=gz4F6vux8PoVu4-1a2wylakjR_Heqjf1mOD4gIz4zUc,101
7
+ mx_bluesky/i04/thawing_plan.py,sha256=tUexudXQZ-YU0zZGexysw-ja6AQyYKwLOTBpO5IqJ0A,3408
8
+ mx_bluesky/i04/callbacks/murko_callback.py,sha256=tq7dWDoTonuJZCTfrq6dBs7eOgCql88lnMOwRQCCP_o,1701
9
+ mx_bluesky/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ mx_bluesky/i24/serial/__init__.py,sha256=Jfc9eLVRgPIai_Sob8E4yn35-PTKYajZX7PmQUeDNwM,1096
11
+ mx_bluesky/i24/serial/blueapi_config.yaml,sha256=72NE3cSoZ2taNQe-cFNeimIutfnwyBmKAisiVyZntKo,235
12
+ mx_bluesky/i24/serial/dcid.py,sha256=CXDliRxmRWsXlbnioQrcNBDb7qBO_x-IxwT3PBEWuY8,15152
13
+ mx_bluesky/i24/serial/log.py,sha256=xLKyKrxC6zro9-uHBitGSsQUTkN1aZjDvNu9YdFFXNI,4661
14
+ mx_bluesky/i24/serial/run_extruder.sh,sha256=Rujzmh3J6VZ7ZiupK5MVWJsCp0a4Z9Oh3eR64-v1F1Y,436
15
+ mx_bluesky/i24/serial/run_fixed_target.sh,sha256=BMpmLWbBpWNOFC5lYhEUw06DJIoq8KeIOJQDZuT_qVo,585
16
+ mx_bluesky/i24/serial/run_serial.py,sha256=UvebrQwEY5axl7RMOXh49udvrD-JwC_LLtHWERmPC_0,940
17
+ mx_bluesky/i24/serial/run_ssx.sh,sha256=0Ir5iQQ-xSN_5teHtxzht6G-mJ08mE1gxBS32vkh1eM,714
18
+ mx_bluesky/i24/serial/set_visit_directory.sh,sha256=WuN5PUBxTofzuESk1-3gWtTcbPjOx-26JaQSVCsZhZs,1660
19
+ mx_bluesky/i24/serial/start_blueapi.sh,sha256=4iBzQljTLXQiVIF4UO7drc9qUkP7KSRC6Mjh8hcGxpI,608
20
+ mx_bluesky/i24/serial/write_nexus.py,sha256=m94N1NdGNuj9U9a4UpGjNpIRMwn0mixG9Wl_7uZagwU,4007
21
+ mx_bluesky/i24/serial/extruder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ mx_bluesky/i24/serial/extruder/i24ssx_Extruder_Collect_py3v2.py,sha256=XS2xfiyAGGQcep6mS55c7fCDfguzd2FUjo5BM2UtCO4,17797
23
+ mx_bluesky/i24/serial/extruder/EX-gui-edm/DetStage.edl,sha256=WX55FC_xraum6refr0nKpzTvlNdslEcCB33pwVCqAcc,1974
24
+ mx_bluesky/i24/serial/extruder/EX-gui-edm/DiamondExtruder-I24-py3v1.edl,sha256=z27XUU7lConpsunfWjhCd3pNBNkjNYFtLS_9N8MW7AY,30896
25
+ mx_bluesky/i24/serial/extruder/EX-gui-edm/microdrop_alignment.edl,sha256=K79vmGAcf9qVEQLXTgr0g4bZDWaJ7nFoK4e0Ex7qAwM,14690
26
+ mx_bluesky/i24/serial/fixed_target/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ mx_bluesky/i24/serial/fixed_target/ft_utils.py,sha256=cLZBEN-PK_7V6T5mjaHv53xa3rvKBStD4g-GUqCjkOM,1223
28
+ mx_bluesky/i24/serial/fixed_target/i24ssx_Chip_Collect_py3v1.py,sha256=prh5ICQxani7L0XfZdM1rbOumv84RiQpXQEluHxBXWk,28070
29
+ mx_bluesky/i24/serial/fixed_target/i24ssx_Chip_Manager_py3v1.py,sha256=irvWkruV4hOn_IJzibpxKrNAwkj7uwIVs4tq6l-ikWM,35424
30
+ mx_bluesky/i24/serial/fixed_target/i24ssx_Chip_Mapping_py3v1.py,sha256=Xnw0mVr6vziceHNLYFHoTtyNA9HazB1n94y1z6jJHBU,5202
31
+ mx_bluesky/i24/serial/fixed_target/i24ssx_Chip_StartUp_py3v1.py,sha256=RDFRifmUcNbkwICCnAVy9QNT9iUFFjzNvHu-XHDkn-8,10790
32
+ mx_bluesky/i24/serial/fixed_target/i24ssx_moveonclick.py,sha256=VCHHUSOUvY_8IzbUVwraobPDa_ig4pVBvKXZexLVISI,5778
33
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/CustomChip_py3v1.edl,sha256=_Oyged8nr4sRNsRhNbvuId0nTshzY1BoCOIbmk2LAUU,10325
34
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/DetStage.edl,sha256=gqCNAANug952ZM7_7Hmcta-nRmY8oMgQWuFG2xfDFMg,1977
35
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/DiamondChipI24-py3v1.edl,sha256=eqOV27njC5woic1UxAXUnqXNwyo5ps6ZieSL_2ltWuw,55404
36
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/ME14E-GeneralPurpose.edl,sha256=cpKpXfU668mGjIz35jUMTF8KAi0RI7WlVO2AR-EnJ8U,60868
37
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/MappingLite-oxford_py3v1.edl,sha256=-zIGNE1V-O3uzGgBAdvP4comQdbkqfOunwBdEFiaciQ,38846
38
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/PMAC_Command.edl,sha256=2KUy2iEcX9AC07zSH3Sp97b5qauGIm8_HjvoQ4pkyCU,1417
39
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/Shutter_Control.edl,sha256=o2PDoIFzeErIUijDbGdfWdrh3wd5GFAqEsDD2at2a4k,1601
40
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/microdrop_alignment.edl,sha256=8TWQTIBnX3OLa1kjsibsCnG5wCVotPYIOHwFam7rJe4,14679
41
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/nudgechip.edl,sha256=IgLLF7gcNoG8Z4t9FTA7_4ggUccNm6-ekK5bb0V4ekY,15711
42
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/pumpprobe-py3v1.edl,sha256=-E5-njqa9UnyeeqbAYPsXnVdRM_HBCly825aZNT9gsg,22558
43
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/short1-laser.png,sha256=wDNuKCa_8hUPy4W01vdIrfdZtCyQKT8qVS5AS6kOTmo,9740
44
+ mx_bluesky/i24/serial/fixed_target/FT-gui-edm/short2-laser.png,sha256=MrdiCFX7j-ODkfSdzc4NQ_8hj2Gs8i9gQqWyNXvdM5s,10189
45
+ mx_bluesky/i24/serial/parameters/__init__.py,sha256=AoL4WdUHmarre1J0inFH_M59RymX7uPn-G7HX8w3Gr4,404
46
+ mx_bluesky/i24/serial/parameters/constants.py,sha256=3_k3JA7KXr1uKTzpELRJMq3OQvC1d9QCQWIcJtBeTEw,1484
47
+ mx_bluesky/i24/serial/parameters/experiment_parameters.py,sha256=FfxJmczWKLcxRRCflY9473ieBte6JeFBN-cxj1B8d_8,3411
48
+ mx_bluesky/i24/serial/parameters/utils.py,sha256=y1BLxjWPOQg6wM-tCtdHMSQUC87cgl01sk6VpHWjIAk,2079
49
+ mx_bluesky/i24/serial/parameters/fixed_target/cs/cs_maker.json,sha256=n8FxMtq3iFsbG3IIrFmgQWDdnG_BsFXZ_P40Z7wIuE4,142
50
+ mx_bluesky/i24/serial/parameters/fixed_target/cs/motor_direction.txt,sha256=oIPpcQpqCrKz5dPZ-qQ5gQ2Sdqtj6nsnf66pN8PGU50,199
51
+ mx_bluesky/i24/serial/parameters/fixed_target/pvar_files/minichip-oxford.pvar,sha256=SN4deU199dMcA1Bcx1BF6CBMvoSszxJWZC6vt7_5fHc,284
52
+ mx_bluesky/i24/serial/parameters/fixed_target/pvar_files/oxford.pvar,sha256=pZbFOEiN_S5yiTEtqdNHmTMtnQY-W2ImXVBYCovPCx0,1842
53
+ mx_bluesky/i24/serial/setup_beamline/__init__.py,sha256=UhBdMcPdJMzwV0d8DKOBzvYNd6TDSwcP9GJVqfGa7Jc,261
54
+ mx_bluesky/i24/serial/setup_beamline/ca.py,sha256=HdU4OUAT2du7cPfIssMjUNvIe9jQQChvCwnkiTw1_aA,1590
55
+ mx_bluesky/i24/serial/setup_beamline/pv.py,sha256=Wen5tTUBggb5Gf4f2yar5Rkn0GbkLRpKu6rbbFb6qPM,15566
56
+ mx_bluesky/i24/serial/setup_beamline/pv_abstract.py,sha256=KVj1_HiTb51RmG0wxp-kxIDuwyQYo0wMCARXnkX-dtc,1796
57
+ mx_bluesky/i24/serial/setup_beamline/setup_beamline.py,sha256=F0HHyj5WwdZzdHynnBpZ5t75UMTACxIFb0etwk1hTz0,18332
58
+ mx_bluesky/i24/serial/setup_beamline/setup_detector.py,sha256=iNnAjtD18Jd_mxGHeYkdhmi4ZozZkhPwa3V1FIlB1r0,3315
59
+ mx_bluesky/i24/serial/setup_beamline/setup_zebra_plans.py,sha256=dzkml6AbJovQr4znygV4yg2wrUffNQcRpgAQqGx0siY,17019
60
+ mx_bluesky/parameters/__init__.py,sha256=JfT3Y5XiAQAD2IHedVxb5KVZzC9B47HVe6GPuiCCS1U,583
61
+ mx_bluesky/parameters/components.py,sha256=3D2ww7xV3AY47lASqqOq8JXuiFafb4ZBbHuauAGa_-k,5659
62
+ mx_bluesky-0.3.1.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
63
+ mx_bluesky-0.3.1.dist-info/METADATA,sha256=BA3YdXE-z6zmKD2FK2S1Wa0YxmEQJuzHSjHetcfLe7Q,16677
64
+ mx_bluesky-0.3.1.dist-info/WHEEL,sha256=nCVcAvsfA9TDtwGwhYaRrlPhTLV9m-Ga6mdyDtuwK18,91
65
+ mx_bluesky-0.3.1.dist-info/entry_points.txt,sha256=LHs220CM6hOrmptR6i9pLzyWZfJ0_PZ4Mvyp2VFNsgY,186
66
+ mx_bluesky-0.3.1.dist-info/top_level.txt,sha256=S4rrzXIUef58ulf_04wn01XGZ3xeJjXs4LPEJ_xoF-I,11
67
+ mx_bluesky-0.3.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (73.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ mx-bluesky = mx_bluesky.__main__:main
3
+ run_extruder = mx_bluesky.i24.serial.run_serial:run_extruder
4
+ run_fixed_target = mx_bluesky.i24.serial.run_serial:run_fixed_target