ophyd-async 0.13.4__py3-none-any.whl → 0.13.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import re
2
+ from typing import Any
2
3
 
3
4
  from ophyd_async.core import StrictEnum
4
5
 
@@ -45,3 +46,11 @@ def get_device_trl_and_attr(name: str):
45
46
  groups[2] = groups[2].removesuffix("/") # remove trailing slash from device name
46
47
  device = "".join(groups)
47
48
  return device, attr
49
+
50
+
51
+ def try_to_cast_as_float(value: Any) -> float | None:
52
+ """Attempt to cast a value to float, returning None on failure."""
53
+ try:
54
+ return float(value)
55
+ except (ValueError, TypeError):
56
+ return None
@@ -53,8 +53,7 @@ class TangoMover(TangoReadable, Movable, Stoppable):
53
53
 
54
54
  if not (isinstance(timeout, float) or timeout is None):
55
55
  raise ValueError("Timeout must be a float or None")
56
- # For this server, set returns immediately so this status should not be awaited
57
- await self.position.set(value, wait=False, timeout=timeout)
56
+ await self.position.set(value, timeout=timeout)
58
57
 
59
58
  move_status = AsyncStatus(
60
59
  wait_for_value(self.state, DevStateEnum.ON, timeout=timeout)
@@ -2,5 +2,6 @@ from ._one_of_everything import (
2
2
  ExampleStrEnum,
3
3
  OneOfEverythingTangoDevice,
4
4
  )
5
+ from ._test_config import TestConfig
5
6
 
6
- __all__ = ["ExampleStrEnum", "OneOfEverythingTangoDevice"]
7
+ __all__ = ["ExampleStrEnum", "OneOfEverythingTangoDevice", "TestConfig"]
@@ -1,4 +1,5 @@
1
1
  import textwrap
2
+ from collections.abc import Sequence
2
3
  from dataclasses import dataclass
3
4
  from typing import Any, Generic, TypeVar
4
5
 
@@ -51,7 +52,7 @@ class AttributeData(Generic[T]):
51
52
  name: str
52
53
  tango_type: str
53
54
  initial_scalar: T
54
- initial_spectrum: Array1D
55
+ initial_spectrum: Array1D | Sequence[T]
55
56
 
56
57
 
57
58
  _all_attribute_definitions = [
@@ -59,7 +60,7 @@ _all_attribute_definitions = [
59
60
  "str",
60
61
  "DevString",
61
62
  "test_string",
62
- np.array(["one", "two", "three"], dtype=str),
63
+ ["one", "two", "three"],
63
64
  ),
64
65
  AttributeData(
65
66
  "bool",
@@ -82,7 +83,7 @@ _all_attribute_definitions = [
82
83
  "my_state",
83
84
  "DevState",
84
85
  DevState.INIT,
85
- np.array([DevState.INIT, DevState.ON, DevState.MOVING], dtype=DevState),
86
+ np.array(list(DevState.names.values()), dtype=DevState),
86
87
  ),
87
88
  ]
88
89
 
@@ -111,6 +112,10 @@ class OneOfEverythingTangoDevice(Device):
111
112
 
112
113
  def add_array_attrs(self, name: str, dtype: str, initial_value: np.ndarray):
113
114
  spectrum_name = f"{name}_spectrum"
115
+ if hasattr(initial_value, "shape"):
116
+ max_dim_x = initial_value.shape[-1]
117
+ else:
118
+ max_dim_x = len(initial_value)
114
119
  spectrum_attr = attribute(
115
120
  name=spectrum_name,
116
121
  dtype=dtype,
@@ -118,7 +123,7 @@ class OneOfEverythingTangoDevice(Device):
118
123
  access=AttrWriteType.READ_WRITE,
119
124
  fget=self.read,
120
125
  fset=self.write,
121
- max_dim_x=initial_value.shape[-1],
126
+ max_dim_x=max_dim_x,
122
127
  enum_labels=[e.value for e in ExampleStrEnum],
123
128
  )
124
129
  image_name = f"{name}_image"
@@ -129,12 +134,15 @@ class OneOfEverythingTangoDevice(Device):
129
134
  access=AttrWriteType.READ_WRITE,
130
135
  fget=self.read,
131
136
  fset=self.write,
132
- max_dim_x=initial_value.shape[-1],
137
+ max_dim_x=max_dim_x,
133
138
  max_dim_y=2,
134
139
  enum_labels=[e.value for e in ExampleStrEnum],
135
140
  )
136
141
  self._add_attr(spectrum_attr, initial_value)
137
142
  # have image just be 2 of the initial spectrum stacked
143
+ # String images are not supported, do not add their attribute data
144
+ if name in ["str", "strenum", "my_state"]:
145
+ return
138
146
  self._add_attr(image_attr, np.vstack((initial_value, initial_value)))
139
147
 
140
148
  def add_scalar_command(self, name: str, dtype: str):
@@ -0,0 +1,11 @@
1
+ """Helpful config class for testing."""
2
+
3
+ from tango import AttrDataFormat, CmdArgType
4
+
5
+
6
+ class TestConfig:
7
+ """Configuration for a test."""
8
+
9
+ data_type: CmdArgType
10
+ data_format: AttrDataFormat
11
+ enum_labels: list[str]
@@ -132,7 +132,7 @@ async def assert_describe_signal(signal: SignalR, /, **metadata):
132
132
  assert actual_datakey == expected_datakey
133
133
 
134
134
 
135
- def assert_emitted(docs: dict[str, list[dict]], **numbers: int):
135
+ def assert_emitted(docs: Mapping[str, list[dict]], **numbers: int):
136
136
  """Assert emitted document generated by running a Bluesky plan.
137
137
 
138
138
  :param docs: A mapping of document type -> list of documents that have been emitted.
@@ -195,7 +195,7 @@ class MonitorQueue(AbstractContextManager):
195
195
  _assert_readings_approx_equal(expected_reading, update)
196
196
 
197
197
  def __enter__(self):
198
- self.signal.subscribe(self.updates.put_nowait)
198
+ self.signal.subscribe_reading(self.updates.put_nowait)
199
199
  return self
200
200
 
201
201
  def __exit__(self, exc_type, exc_value, traceback):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ophyd-async
3
- Version: 0.13.4
3
+ Version: 0.13.5
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
@@ -58,45 +58,11 @@ Requires-Dist: aioca>=2.0a4; extra == "ca"
58
58
  Provides-Extra: pva
59
59
  Requires-Dist: p4p>=4.2.0; extra == "pva"
60
60
  Provides-Extra: tango
61
- Requires-Dist: pytango==10.0.2; extra == "tango"
61
+ Requires-Dist: pytango>=10.0.2; extra == "tango"
62
62
  Provides-Extra: demo
63
63
  Requires-Dist: ipython; extra == "demo"
64
64
  Requires-Dist: matplotlib; extra == "demo"
65
65
  Requires-Dist: pyqt6; extra == "demo"
66
- Provides-Extra: dev
67
- Requires-Dist: ophyd_async[sim]; extra == "dev"
68
- Requires-Dist: ophyd_async[ca]; extra == "dev"
69
- Requires-Dist: ophyd_async[pva]; extra == "dev"
70
- Requires-Dist: ophyd_async[tango]; extra == "dev"
71
- Requires-Dist: ophyd_async[demo]; extra == "dev"
72
- Requires-Dist: inflection; extra == "dev"
73
- Requires-Dist: import-linter; extra == "dev"
74
- Requires-Dist: myst-parser; extra == "dev"
75
- Requires-Dist: numpydoc; extra == "dev"
76
- Requires-Dist: ophyd>=1.10.7; extra == "dev"
77
- Requires-Dist: pickleshare; extra == "dev"
78
- Requires-Dist: pipdeptree; extra == "dev"
79
- Requires-Dist: pre-commit; extra == "dev"
80
- Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
81
- Requires-Dist: pyepics>=3.4.2; extra == "dev"
82
- Requires-Dist: pyright; extra == "dev"
83
- Requires-Dist: pytest; extra == "dev"
84
- Requires-Dist: pytest-asyncio; extra == "dev"
85
- Requires-Dist: pytest-cov; extra == "dev"
86
- Requires-Dist: pytest-faulthandler; extra == "dev"
87
- Requires-Dist: pytest-forked; extra == "dev"
88
- Requires-Dist: pytest-rerunfailures; extra == "dev"
89
- Requires-Dist: pytest-timeout; extra == "dev"
90
- Requires-Dist: ruff; extra == "dev"
91
- Requires-Dist: scanspec>=1.0a1; extra == "dev"
92
- Requires-Dist: sphinx-autobuild; extra == "dev"
93
- Requires-Dist: sphinx-autodoc2; extra == "dev"
94
- Requires-Dist: sphinxcontrib-mermaid; extra == "dev"
95
- Requires-Dist: sphinx-copybutton; extra == "dev"
96
- Requires-Dist: sphinx-design; extra == "dev"
97
- Requires-Dist: tox-direct; extra == "dev"
98
- Requires-Dist: types-mock; extra == "dev"
99
- Requires-Dist: types-pyyaml; extra == "dev"
100
66
  Dynamic: license-file
101
67
 
102
68
  [![CI](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml/badge.svg)](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml)
@@ -1,15 +1,15 @@
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=jkUE3cKd2dkiA6VGIHg5JjUEnRJjfyS9aYL_45rUBmo,706
4
+ ophyd_async/_version.py,sha256=s59flr3WuC_9oONlGKcmFdyemUNgE-R3uqabpBNb6YU,706
5
5
  ophyd_async/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- ophyd_async/core/__init__.py,sha256=xugzZ-bLD11qdk_bJYxPXEeDMRTxEPZzxxhMjp6KqW8,5015
6
+ ophyd_async/core/__init__.py,sha256=yGbkVju5otO8DmA3KyerYB0gLtcX5sdxlq3ajyGha4M,5531
7
7
  ophyd_async/core/_derived_signal.py,sha256=TuZza_j3J1Bw4QSqBYB9Ta2FyQP5BycO3nSHVtJ890Q,13015
8
- ophyd_async/core/_derived_signal_backend.py,sha256=PYyyont_nUR9LBC9eqVwueHCMwLJfQ_F7R_14sivBTU,12510
9
- ophyd_async/core/_detector.py,sha256=bPTQYLTjbxs7-wjV8szAZ0TQI20fV12vkq1OaA5L_z8,14938
10
- ophyd_async/core/_device.py,sha256=lSm8FBul9NTn9VO0rsAlV9pctJyUsMdU2ztEf5CqH5M,14716
8
+ ophyd_async/core/_derived_signal_backend.py,sha256=Ibce9JHghiI5Ir8w0pUYULHL2qWkobeUYc0-CDrsO2E,12615
9
+ ophyd_async/core/_detector.py,sha256=9fYbBPmRnMGADcDTYkspDAL2uzhtNNiKCEeBUU0oKaY,14942
10
+ ophyd_async/core/_device.py,sha256=_M3hwiYv8xO-7pfQkOzeZEEsB05Oa2HTRKOEc69C_a8,14743
11
11
  ophyd_async/core/_device_filler.py,sha256=MDz8eQQ-eEAwo-UEMxfqPfpcBuMG01tLCGR6utwVnmE,14825
12
- ophyd_async/core/_enums.py,sha256=7VpEvh9tFa-E3wn3x0SdXUlCG7AxSPwCRkf37B-0JbM,313
12
+ ophyd_async/core/_enums.py,sha256=2vh6x0rZ6SLiw2xxq1xVIn-GpbLDFc8wZoVdA55QiE8,370
13
13
  ophyd_async/core/_flyer.py,sha256=8zKyU5aQOr_t59GIUwsYeb8NSabdvBp0swwuRe4v5VQ,3457
14
14
  ophyd_async/core/_hdf_dataset.py,sha256=0bIX_ZbFSMdXqDwRtEvV-0avHnwXhjPddE5GVNmo7H8,2608
15
15
  ophyd_async/core/_log.py,sha256=DxKR4Nz3SgTaTzKBZWqt-w48yT8WUAr_3Qr223TEWRw,3587
@@ -18,15 +18,15 @@ ophyd_async/core/_protocol.py,sha256=wQ_snxhTprHqEjQb1HgFwBljwolMY6A8C3xgV1PXwdU
18
18
  ophyd_async/core/_providers.py,sha256=WBht3QCgvGc0stNcwH6z4Zr6hAz3e01-88NjsYI2w6I,9740
19
19
  ophyd_async/core/_readable.py,sha256=iBo1YwA5bsAbzLbznvmSnzKDWUuGkLh850Br3BXsgeU,11707
20
20
  ophyd_async/core/_settings.py,sha256=_ZccbXKP7j5rG6-bMKk7aaLr8hChdRDAPY_YSR71XXM,4213
21
- ophyd_async/core/_signal.py,sha256=ghgxtfUG9vkwgvuu6qXa_ECux5-3j9WwxB5mN5G6jqU,28421
22
- ophyd_async/core/_signal_backend.py,sha256=PvwTbbSVEGqM-2s5BNRrKGwM_MiYL71qMxYAgyZ7wRM,6930
21
+ ophyd_async/core/_signal.py,sha256=085vcyjhEyZECi4Svjq6DUM5kxrzZh8s5DoHR2LALOc,28195
22
+ ophyd_async/core/_signal_backend.py,sha256=F3ma45cIIJ3D702zsVZIqn4Jv7u05YzMQBQND70QCbQ,6987
23
23
  ophyd_async/core/_soft_signal_backend.py,sha256=NJUuyaCKtBZjggt8WKi7_lKQRHasToxviuQvl5xbhLU,6222
24
- ophyd_async/core/_status.py,sha256=h4TtWFM7wFtpxxyAYYSITgcVzArYZdYBHbya6qIX5t0,6553
24
+ ophyd_async/core/_status.py,sha256=a2IDvv_GvUcFuhjQA5bQzWm9ngR6zGc9PR4XcZiaeqk,6557
25
25
  ophyd_async/core/_table.py,sha256=ryJ7AwJBglQUzwP9_aSjR8cu8EKvYXfo1q1byhke3Uc,7248
26
- ophyd_async/core/_utils.py,sha256=-iKbqsvVR7P29E6VpOgI5WfDwGBRdud_gvExIoUVlG4,12495
26
+ ophyd_async/core/_utils.py,sha256=gUewO4XPrBxsEWzObNumqAB2Q7Hwrd5F_Nc6B2XwQIM,12532
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=YbhzyP56X_2KjFLyPVHXMxYmntxUzDl4K3np_V2akhk,9024
29
+ ophyd_async/epics/motor.py,sha256=nS6Vx4-6vYso3b_QtpE8p8dlys5jRr2LK7prZCkZMc8,9558
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
@@ -45,7 +45,7 @@ ophyd_async/epics/adcore/_hdf_writer.py,sha256=nKXOjVZfM6_BlYv5f1l8nwo7tjenYjx-3
45
45
  ophyd_async/epics/adcore/_jpeg_writer.py,sha256=VYpUWQGEjrKG2kiRGQZlBCPXVJ1BzWb9GyB9KhxPWgo,688
46
46
  ophyd_async/epics/adcore/_single_trigger.py,sha256=tFGLT1b_rZzAvbqWP-hyCccxJMRY26T5IER-VAqKXmc,1275
47
47
  ophyd_async/epics/adcore/_tiff_writer.py,sha256=197Ky9ltsJjUKNwl8_OAuoCe8dWIc7zCFs7wautwC7Y,689
48
- ophyd_async/epics/adcore/_utils.py,sha256=L7YQBrsNt6gL1JqVK_rW4fkHaRiDrDYlOtiLakMbXE8,5233
48
+ ophyd_async/epics/adcore/_utils.py,sha256=iKSUh-D99sjipmZxWuo_XsA6UG-vJlMlFrAmZW4FZns,5241
49
49
  ophyd_async/epics/adkinetix/__init__.py,sha256=A9xq3lGMrmza9lfukRixC0Up_kUDVFII8JguLr2x7Bw,308
50
50
  ophyd_async/epics/adkinetix/_kinetix.py,sha256=zZv0JZ8i1RSx7KBDn_1HGNOY0BoIP81mRK5TKq7d4eA,1302
51
51
  ophyd_async/epics/adkinetix/_kinetix_controller.py,sha256=UI-XcQpGj7jq-_e1ceoMOZkyfejwG6H5wX-Ntp_NJjg,1481
@@ -63,10 +63,10 @@ ophyd_async/epics/advimba/_vimba.py,sha256=4XlEnsJMGDzHLuYaIDUmaxx0gtOAehn5BKBZM
63
63
  ophyd_async/epics/advimba/_vimba_controller.py,sha256=KSbP4LHqYkCDplpmBk7hdf0Yz9J2vOxWn0fStFFAklA,1942
64
64
  ophyd_async/epics/advimba/_vimba_io.py,sha256=E3XlCKLQbGOWho0dQPeD4xeEl5pZGINyYstGD43qNrM,1492
65
65
  ophyd_async/epics/core/__init__.py,sha256=q73i4aJ_0HApVNmf3eAw-q30XuazAyZW2MW5TXk-pOY,648
66
- ophyd_async/epics/core/_aioca.py,sha256=38aW5dd3MzwhoweNMjkOfnfZHI2JZFateO0YABGVSfQ,13230
66
+ ophyd_async/epics/core/_aioca.py,sha256=KnD_LWBlIiJFf3ujPe7ZH3_j2P5uWtg5d9_XaVk-cqQ,13240
67
67
  ophyd_async/epics/core/_epics_connector.py,sha256=KXQ1WVpNrgQ30KiiXTYRwfoHdaU5oWv1jVZAvx3tGig,2557
68
68
  ophyd_async/epics/core/_epics_device.py,sha256=wGdR24I7GSPh3HmM7jsWKZhBZgt4IyLrCn4Ut7Wx_xo,510
69
- ophyd_async/epics/core/_p4p.py,sha256=Q6o4rlyrg2VXlqi1uHkGbnYc1gZ8YX5ZaJDcL0eAr_8,16385
69
+ ophyd_async/epics/core/_p4p.py,sha256=IUu0cROcgRee9er6qyskkX7GMS4Ixr94TV4_4a7joYA,16395
70
70
  ophyd_async/epics/core/_pvi_connector.py,sha256=SfKkZqGCRvJJtQpJQzmfuLJQqOge0wBsMeuTSQ-KPjs,5553
71
71
  ophyd_async/epics/core/_signal.py,sha256=qAEe8mgXRMgBTcxuwN-KDGSRtJTwrhygThTDe5vA3EQ,5916
72
72
  ophyd_async/epics/core/_util.py,sha256=wcbZ6Qa2qqme6AlKAfxGI68EMEPEMJSl7BiDRz3mrEg,2820
@@ -126,36 +126,37 @@ ophyd_async/sim/_blob_detector_controller.py,sha256=y1aSNQJUPnsT2qnj2sk254Mp18an
126
126
  ophyd_async/sim/_blob_detector_writer.py,sha256=_Pd0OaP4_mZfwxtUF35v7hsktLP_wYljR4nylr5CzJo,3346
127
127
  ophyd_async/sim/_mirror_horizontal.py,sha256=Jsqa8Snjy1jQDboZtAQFJjGor5uKk8FBC7OCe-GoZDw,1478
128
128
  ophyd_async/sim/_mirror_vertical.py,sha256=HUD44mYT0jQ0GKiQKxD7k_7y6o6OdE6TztgdPUJIK_g,2085
129
- ophyd_async/sim/_motor.py,sha256=EUykjGfQgBnf0Pmr66XeDlhz8DU0eAIXUvIgbtJccoA,9226
129
+ ophyd_async/sim/_motor.py,sha256=QRs9oBMKQBsUvP2kaTbh9apMgPvS3DwqbVUwgQAffAQ,9277
130
130
  ophyd_async/sim/_pattern_generator.py,sha256=kuxvyX2gIxrywhQRhaO1g8YluBT7LBkE20IsurZS-6o,3734
131
131
  ophyd_async/sim/_point_detector.py,sha256=wMG_ncvm99WMCPihlFyuMEf3UknAxCpB1hpk3uKiENE,3024
132
- ophyd_async/sim/_stage.py,sha256=fOR5HGWfqWw47-0HrMmQ5rait_qPVNneF329wCx8KKY,1233
132
+ ophyd_async/sim/_stage.py,sha256=_SywbmSQwxf7JLx68qwo0RpiB3oIWlbTLmvRKxUoig0,1602
133
133
  ophyd_async/tango/__init__.py,sha256=g9xzjlzPpUAP12YI-kYwfAoLSYPAQdL1S11R2c-cius,60
134
- ophyd_async/tango/core/__init__.py,sha256=IMvQ7MWcTof99h_pr483KWKvQV2-h7zo_iRpLA2PUYQ,1108
134
+ ophyd_async/tango/core/__init__.py,sha256=OOVdHu07cssK90F-caG0CY7qKpPYy0MSV421YNAI-_8,1413
135
135
  ophyd_async/tango/core/_base_device.py,sha256=e9oqSL-fDOj8r9nUUFZkbibhRGbI6HYtlnZjK5B_2fE,5033
136
136
  ophyd_async/tango/core/_converters.py,sha256=xI_RhMR8dY6IVORUZVVCL9LdYnEE6TA6BBPX_lTu06w,2183
137
- ophyd_async/tango/core/_signal.py,sha256=6KXDzV8Z08hrtCqG8J4AYnhemQjtL6Eofngo6yNo52o,5798
137
+ ophyd_async/tango/core/_signal.py,sha256=8mIxRVEVjhDN33LDbbKZWGMUYn9Gl5ZMEIYw6GSBTUE,5569
138
138
  ophyd_async/tango/core/_tango_readable.py,sha256=ctR6YcBGGatW6Jp2kvddA1hVZ2v1CidPsF9FmJK9BYg,406
139
- ophyd_async/tango/core/_tango_transport.py,sha256=kKBUSgZs80ZcldkD8gU16A5VYVlZneFNz-TSYd8QoQ0,31887
140
- ophyd_async/tango/core/_utils.py,sha256=FrX524jwa-0EQxpcGaKF6yqyHm5BWIFSE82FcIB0aAY,1430
139
+ ophyd_async/tango/core/_tango_transport.py,sha256=KxjhHqKADrOvzGi9tbOQXUWdsJ0NKGejWxHItxpUsjg,37401
140
+ ophyd_async/tango/core/_utils.py,sha256=pwT7V1DNWSyPOSzvDZ6OsDZTjaV-pAeDLDlmgtHVcNM,1673
141
141
  ophyd_async/tango/demo/__init__.py,sha256=_j-UicTnckuIBp8PnieFMOMnLFGivnaKdmo9o0hYtzc,256
142
142
  ophyd_async/tango/demo/_counter.py,sha256=2J4SCHnBWLF0O5mFWlJdO4tmnElvlx5sRrk4op_AC9U,1139
143
143
  ophyd_async/tango/demo/_detector.py,sha256=X5YWHAjukKZ7iYF1fBNle4CBDj1X5rvj0lnPMOcnRCU,1340
144
- ophyd_async/tango/demo/_mover.py,sha256=c-IxrWQN0YX-Iuf720xlKfsPbNfh7bUz_AVnbwYkW08,2984
144
+ ophyd_async/tango/demo/_mover.py,sha256=i-Tq5nDmYi4RcC4O6mOJoVeMEIIxuqyS_2AfjTpAcnk,2884
145
145
  ophyd_async/tango/demo/_tango/__init__.py,sha256=FfONT7vM49nNo3a1Lv-LcMZO9EHv6bv91yY-RnxIib4,85
146
146
  ophyd_async/tango/demo/_tango/_servers.py,sha256=putvERDyibibaTbhdWyqZB_axj2fURXqzDsZb9oSW14,2991
147
- ophyd_async/tango/testing/__init__.py,sha256=SYXPAS00ny3jlUMOJKpaewO4ljPjK1_z1smj7IfsBQg,148
148
- ophyd_async/tango/testing/_one_of_everything.py,sha256=tsxWgy2f_m9f0FH4XCVO_I8OtEquKbJQZbr4KaXMJL4,6571
147
+ ophyd_async/tango/testing/__init__.py,sha256=l52SmX9XuxZUBuLpOYJzHfskkWVYhx3RkSbGL_wUu5Y,199
148
+ ophyd_async/tango/testing/_one_of_everything.py,sha256=eJg5K8n1ExwPfruDCHNZcWjx4aRTA1Vs_7NQHSHjpgc,6851
149
+ ophyd_async/tango/testing/_test_config.py,sha256=i3t5d4wjUEtAvvSSZNz_bH_r5VEvUphUcEOEd8LKxQQ,228
149
150
  ophyd_async/testing/__init__.py,sha256=jDBzUAHGDMfkhd-_9u0CJWEq0E0sPrIGGlLmVzEyxY8,1742
150
151
  ophyd_async/testing/__pytest_assert_rewrite.py,sha256=_SU2UfChPgEf7CFY7aYH2B7MLp-07_qYnVLyu6QtDL8,129
151
- ophyd_async/testing/_assert.py,sha256=8j7NtHBdG2AjFY4yxgMx3oGX22rYvzj0337o-shfH40,8784
152
+ ophyd_async/testing/_assert.py,sha256=Ss_XDToi1ymUfr0Z1r45A2Fmg7-9UOv9gYkJEBsZPv8,8795
152
153
  ophyd_async/testing/_mock_signal_utils.py,sha256=d-n_923ii59-ae9TbqVuIK9MAJpDmu0k47fzgJLj8t8,5195
153
154
  ophyd_async/testing/_one_of_everything.py,sha256=U9ui7B-iNHDM3H3hIWUuaCb8Gc2eLlUh0sBHUlQldT0,4741
154
155
  ophyd_async/testing/_single_derived.py,sha256=5-HOTzgePcZ354NK_ssVpyIbJoJmKyjVQCxSwQXUC-4,2730
155
156
  ophyd_async/testing/_utils.py,sha256=zClRo5ve8RGia7wQnby41W-Zprj-slOA5da1LfYnuhw,45
156
157
  ophyd_async/testing/_wait_for_pending.py,sha256=YZAR48n-CW0GsPey3zFRzMJ4byDAr3HvMIoawjmTrHw,732
157
- ophyd_async-0.13.4.dist-info/licenses/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
158
- ophyd_async-0.13.4.dist-info/METADATA,sha256=gy3t1HyZjSGBSDOguEsn4LV_SQ8duzNLIXhZgpm9qoI,7222
159
- ophyd_async-0.13.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
160
- ophyd_async-0.13.4.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
161
- ophyd_async-0.13.4.dist-info/RECORD,,
158
+ ophyd_async-0.13.5.dist-info/licenses/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
159
+ ophyd_async-0.13.5.dist-info/METADATA,sha256=poy7PYBMjXEoQKIWeOyo9kcz_Vv5LhZSA9w9xFZRMR8,5703
160
+ ophyd_async-0.13.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
161
+ ophyd_async-0.13.5.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
162
+ ophyd_async-0.13.5.dist-info/RECORD,,