ophyd-async 0.13.2__py3-none-any.whl → 0.13.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ophyd_async/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.13.2'
32
- __version_tuple__ = version_tuple = (0, 13, 2)
31
+ __version__ = version = '0.13.3'
32
+ __version_tuple__ = version_tuple = (0, 13, 3)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -107,18 +107,27 @@ class Motor(
107
107
  self.user_readback.set_name(name)
108
108
 
109
109
  async def check_motor_limit(self, abs_start_pos: float, abs_end_pos: float):
110
- """Check the motor limit with the absolute positions."""
110
+ """Check the positions are within limits.
111
+
112
+ Will raise a MotorLimitsException if the given absolute positions will be
113
+ outside the motor soft limits.
114
+ """
111
115
  motor_lower_limit, motor_upper_limit, egu = await asyncio.gather(
112
116
  self.low_limit_travel.get_value(),
113
117
  self.high_limit_travel.get_value(),
114
118
  self.motor_egu.get_value(),
115
119
  )
120
+
121
+ # EPICS motor record treats limits of 0, 0 as no limit
122
+ if motor_lower_limit == 0 and motor_upper_limit == 0:
123
+ return
124
+
116
125
  if (
117
126
  not motor_upper_limit >= abs_start_pos >= motor_lower_limit
118
127
  or not motor_upper_limit >= abs_end_pos >= motor_lower_limit
119
128
  ):
120
129
  raise MotorLimitsException(
121
- f"Motor trajectory for requested fly/move is from "
130
+ f"{self.name} motor trajectory for requested fly/move is from "
122
131
  f"{abs_start_pos}{egu} to "
123
132
  f"{abs_end_pos}{egu} but motor limits are "
124
133
  f"{motor_lower_limit}{egu} <= x <= {motor_upper_limit}{egu} "
@@ -72,7 +72,6 @@ class PmacTrajectoryTriggerLogic(FlyerController):
72
72
  self.scantime = np.sum(trajectory.durations)
73
73
  use_axis = {axis + 1: False for axis in range(len(CS_LETTERS))}
74
74
 
75
- size = 0
76
75
  for motor, number in motor_info.motor_cs_index.items():
77
76
  use_axis[number + 1] = True
78
77
  await self.pmac.trajectory.positions[number + 1].set(
@@ -81,13 +80,12 @@ class PmacTrajectoryTriggerLogic(FlyerController):
81
80
  await self.pmac.trajectory.velocities[number + 1].set(
82
81
  trajectory.velocities[motor]
83
82
  )
84
- size += len(trajectory.positions[motor])
85
83
 
86
84
  coros = [
87
85
  self.pmac.trajectory.profile_cs_name.set(motor_info.cs_port),
88
86
  self.pmac.trajectory.time_array.set(trajectory.durations),
89
87
  self.pmac.trajectory.user_array.set(trajectory.user_programs),
90
- self.pmac.trajectory.points_to_build.set(size),
88
+ self.pmac.trajectory.points_to_build.set(len(trajectory.durations)),
91
89
  self.pmac.trajectory.calculate_velocities.set(False),
92
90
  ] + [
93
91
  self.pmac.trajectory.use_axis[number].set(use)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ophyd-async
3
- Version: 0.13.2
3
+ Version: 0.13.3
4
4
  Summary: Asynchronous Bluesky hardware abstraction code, compatible with control systems like EPICS and Tango
5
5
  Author-email: Tom Cobb <tom.cobb@diamond.ac.uk>
6
6
  License: BSD 3-Clause License
@@ -49,7 +49,7 @@ Requires-Dist: colorlog
49
49
  Requires-Dist: pydantic>=2.0
50
50
  Requires-Dist: pydantic-numpy
51
51
  Requires-Dist: stamina>=23.1.0
52
- Requires-Dist: scanspec>=1.0a1
52
+ Requires-Dist: scanspec>=0.8
53
53
  Requires-Dist: velocity-profile
54
54
  Provides-Extra: sim
55
55
  Requires-Dist: h5py; extra == "sim"
@@ -88,6 +88,7 @@ Requires-Dist: pytest-forked; extra == "dev"
88
88
  Requires-Dist: pytest-rerunfailures; extra == "dev"
89
89
  Requires-Dist: pytest-timeout; extra == "dev"
90
90
  Requires-Dist: ruff; extra == "dev"
91
+ Requires-Dist: scanspec>=1.0a1; extra == "dev"
91
92
  Requires-Dist: sphinx-autobuild; extra == "dev"
92
93
  Requires-Dist: sphinx-autodoc2; extra == "dev"
93
94
  Requires-Dist: sphinxcontrib-mermaid; extra == "dev"
@@ -1,7 +1,7 @@
1
1
  ophyd_async/__init__.py,sha256=dcAA3qsj1nNIMe5l-v2tlduZ_ypwBmyuHe45Lsq4k4w,206
2
2
  ophyd_async/__main__.py,sha256=n_U4O9bgm97OuboUB_9eK7eFiwy8BZSgXJ0OzbE0DqU,481
3
3
  ophyd_async/_docs_parser.py,sha256=gPYrigfSbYCF7QoSf2UvE-cpQu4snSssl7ZWN-kKDzI,352
4
- ophyd_async/_version.py,sha256=XZecU3ohLLhnQNT8_JmdvW2idqqOh08RIDcm2qzc5t8,706
4
+ ophyd_async/_version.py,sha256=MG7dROnfeBA5y43Gv6z8LsZSoCLYybK6UCAQ7R0xks4,706
5
5
  ophyd_async/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  ophyd_async/core/__init__.py,sha256=KBj8v-Fxh8V1QKJYR0xAjoziqo1vjyblx45H7Jrikd0,4979
7
7
  ophyd_async/core/_derived_signal.py,sha256=TuZza_j3J1Bw4QSqBYB9Ta2FyQP5BycO3nSHVtJ890Q,13015
@@ -26,7 +26,7 @@ ophyd_async/core/_table.py,sha256=ai-_W-_WMZcy9f69BDYRv9vjVl-AVeOPN_uHYoGCSsc,69
26
26
  ophyd_async/core/_utils.py,sha256=-iKbqsvVR7P29E6VpOgI5WfDwGBRdud_gvExIoUVlG4,12495
27
27
  ophyd_async/core/_yaml_settings.py,sha256=Qojhku9l5kPSkTnEylCRWTe0gpw6S_XP5av5dPpqFgQ,2089
28
28
  ophyd_async/epics/__init__.py,sha256=ou4yEaH9VZHz70e8oM614-arLMQvUfQyXhRJsnEpWn8,60
29
- ophyd_async/epics/motor.py,sha256=oRAAW-KWbMnAxHdOMKMt1ZrzgD5KzHX9iRwd0TYZXwI,8747
29
+ ophyd_async/epics/motor.py,sha256=YbhzyP56X_2KjFLyPVHXMxYmntxUzDl4K3np_V2akhk,9024
30
30
  ophyd_async/epics/signal.py,sha256=0A-supp9ajr63O6aD7F9oG0-Q26YmRjk-ZGh57-jo1Y,239
31
31
  ophyd_async/epics/adandor/__init__.py,sha256=dlitllrAdhvh16PAcVMUSSEytTDNMu6_HuYk8KD1EoY,343
32
32
  ophyd_async/epics/adandor/_andor.py,sha256=TijGjNVxuH-P0X7UACPt9eLLQ449DwMyVhbn1kV7Le8,1245
@@ -84,7 +84,7 @@ ophyd_async/epics/odin/__init__.py,sha256=7kRqVzwoD8PVtp7Nj9iQWlgbLeoWE_8oiq-B0k
84
84
  ophyd_async/epics/odin/_odin_io.py,sha256=YDBrS15PnEKe5SHmz397Emh--lZSQEnbR3G7p8pbShY,6533
85
85
  ophyd_async/epics/pmac/__init__.py,sha256=GqJTiJudqE9pu050ZNED09F9tKRfazn0wBsojsMH2gg,273
86
86
  ophyd_async/epics/pmac/_pmac_io.py,sha256=Nnenk7HHyzzqe0jIg2FAtxFohFnr_ByDZ0IAEI4_Ls4,4023
87
- ophyd_async/epics/pmac/_pmac_trajectory.py,sha256=Q9Ry2xzL7FqszehhfBfhu-5-fFyPcJiD2Iu86c9pQ7w,4167
87
+ ophyd_async/epics/pmac/_pmac_trajectory.py,sha256=e1WNyHd-Tn1JENYGfDJJ5o66B9z8qYZXV3khNo9YStk,4118
88
88
  ophyd_async/epics/pmac/_utils.py,sha256=ahN5zMfO3-gNV7H1fQ5wsDeGUL9IpMQa2g27rhVf0uU,34326
89
89
  ophyd_async/epics/testing/__init__.py,sha256=aTIv4D2DYrpnGco5RQF8QuLG1SfFkIlTyM2uYEKXltA,522
90
90
  ophyd_async/epics/testing/_example_ioc.py,sha256=zb4ZEUzuB2MrSw5ETPLIiHhf-2BRU1Bdxco6Kh4iI1I,3880
@@ -153,8 +153,8 @@ ophyd_async/testing/_one_of_everything.py,sha256=U9ui7B-iNHDM3H3hIWUuaCb8Gc2eLlU
153
153
  ophyd_async/testing/_single_derived.py,sha256=5-HOTzgePcZ354NK_ssVpyIbJoJmKyjVQCxSwQXUC-4,2730
154
154
  ophyd_async/testing/_utils.py,sha256=zClRo5ve8RGia7wQnby41W-Zprj-slOA5da1LfYnuhw,45
155
155
  ophyd_async/testing/_wait_for_pending.py,sha256=YZAR48n-CW0GsPey3zFRzMJ4byDAr3HvMIoawjmTrHw,732
156
- ophyd_async-0.13.2.dist-info/licenses/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
157
- ophyd_async-0.13.2.dist-info/METADATA,sha256=GwFtb0s8P44XeDTXV6U55G1tro_OERT4Vj-9aVrKomE,7177
158
- ophyd_async-0.13.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
159
- ophyd_async-0.13.2.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
160
- ophyd_async-0.13.2.dist-info/RECORD,,
156
+ ophyd_async-0.13.3.dist-info/licenses/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
157
+ ophyd_async-0.13.3.dist-info/METADATA,sha256=MJyMUgxAYadbFX6irChsIsegu_39gLCH0DKzhB8qOhs,7222
158
+ ophyd_async-0.13.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
159
+ ophyd_async-0.13.3.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
160
+ ophyd_async-0.13.3.dist-info/RECORD,,