ophyd-async 0.5.2__py3-none-any.whl → 0.6.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.
Files changed (66) hide show
  1. ophyd_async/__init__.py +10 -1
  2. ophyd_async/__main__.py +12 -4
  3. ophyd_async/_version.py +2 -2
  4. ophyd_async/core/__init__.py +11 -3
  5. ophyd_async/core/_detector.py +72 -63
  6. ophyd_async/core/_device.py +13 -15
  7. ophyd_async/core/_device_save_loader.py +30 -19
  8. ophyd_async/core/_flyer.py +6 -4
  9. ophyd_async/core/_hdf_dataset.py +8 -9
  10. ophyd_async/core/_log.py +3 -1
  11. ophyd_async/core/_mock_signal_backend.py +11 -9
  12. ophyd_async/core/_mock_signal_utils.py +8 -5
  13. ophyd_async/core/_protocol.py +7 -7
  14. ophyd_async/core/_providers.py +11 -11
  15. ophyd_async/core/_readable.py +30 -22
  16. ophyd_async/core/_signal.py +52 -51
  17. ophyd_async/core/_signal_backend.py +20 -7
  18. ophyd_async/core/_soft_signal_backend.py +62 -32
  19. ophyd_async/core/_status.py +7 -9
  20. ophyd_async/core/_table.py +63 -0
  21. ophyd_async/core/_utils.py +24 -28
  22. ophyd_async/epics/adaravis/_aravis_controller.py +17 -16
  23. ophyd_async/epics/adaravis/_aravis_io.py +2 -1
  24. ophyd_async/epics/adcore/_core_io.py +2 -0
  25. ophyd_async/epics/adcore/_core_logic.py +2 -3
  26. ophyd_async/epics/adcore/_hdf_writer.py +19 -8
  27. ophyd_async/epics/adcore/_single_trigger.py +1 -1
  28. ophyd_async/epics/adcore/_utils.py +5 -6
  29. ophyd_async/epics/adkinetix/_kinetix_controller.py +19 -14
  30. ophyd_async/epics/adpilatus/_pilatus_controller.py +18 -16
  31. ophyd_async/epics/adsimdetector/_sim.py +6 -5
  32. ophyd_async/epics/adsimdetector/_sim_controller.py +20 -15
  33. ophyd_async/epics/advimba/_vimba_controller.py +21 -16
  34. ophyd_async/epics/demo/_mover.py +4 -5
  35. ophyd_async/epics/demo/sensor.db +0 -1
  36. ophyd_async/epics/eiger/_eiger.py +1 -1
  37. ophyd_async/epics/eiger/_eiger_controller.py +16 -16
  38. ophyd_async/epics/eiger/_odin_io.py +6 -5
  39. ophyd_async/epics/motor.py +8 -10
  40. ophyd_async/epics/pvi/_pvi.py +30 -33
  41. ophyd_async/epics/signal/_aioca.py +55 -25
  42. ophyd_async/epics/signal/_common.py +3 -10
  43. ophyd_async/epics/signal/_epics_transport.py +11 -8
  44. ophyd_async/epics/signal/_p4p.py +79 -30
  45. ophyd_async/epics/signal/_signal.py +6 -8
  46. ophyd_async/fastcs/panda/__init__.py +0 -6
  47. ophyd_async/fastcs/panda/_control.py +14 -15
  48. ophyd_async/fastcs/panda/_hdf_panda.py +11 -4
  49. ophyd_async/fastcs/panda/_table.py +111 -138
  50. ophyd_async/fastcs/panda/_trigger.py +1 -2
  51. ophyd_async/fastcs/panda/_utils.py +3 -2
  52. ophyd_async/fastcs/panda/_writer.py +28 -13
  53. ophyd_async/plan_stubs/_fly.py +16 -16
  54. ophyd_async/plan_stubs/_nd_attributes.py +12 -6
  55. ophyd_async/sim/demo/_pattern_detector/_pattern_detector.py +3 -3
  56. ophyd_async/sim/demo/_pattern_detector/_pattern_detector_controller.py +24 -20
  57. ophyd_async/sim/demo/_pattern_detector/_pattern_detector_writer.py +9 -6
  58. ophyd_async/sim/demo/_pattern_detector/_pattern_generator.py +21 -23
  59. ophyd_async/sim/demo/_sim_motor.py +2 -1
  60. {ophyd_async-0.5.2.dist-info → ophyd_async-0.6.0.dist-info}/METADATA +46 -45
  61. ophyd_async-0.6.0.dist-info/RECORD +96 -0
  62. {ophyd_async-0.5.2.dist-info → ophyd_async-0.6.0.dist-info}/WHEEL +1 -1
  63. ophyd_async-0.5.2.dist-info/RECORD +0 -95
  64. {ophyd_async-0.5.2.dist-info → ophyd_async-0.6.0.dist-info}/LICENSE +0 -0
  65. {ophyd_async-0.5.2.dist-info → ophyd_async-0.6.0.dist-info}/entry_points.txt +0 -0
  66. {ophyd_async-0.5.2.dist-info → ophyd_async-0.6.0.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,10 @@
1
+ from collections.abc import AsyncGenerator, AsyncIterator
1
2
  from pathlib import Path
2
- from typing import AsyncGenerator, AsyncIterator, Dict, Optional
3
3
 
4
4
  import h5py
5
5
  import numpy as np
6
- from bluesky.protocols import DataKey, StreamAsset
6
+ from bluesky.protocols import StreamAsset
7
+ from event_model import DataKey
7
8
 
8
9
  from ophyd_async.core import (
9
10
  DEFAULT_TIMEOUT,
@@ -60,19 +61,22 @@ class PatternGenerator:
60
61
  generate_gaussian_blob(width=detector_width, height=detector_height)
61
62
  * MAX_UINT8_VALUE
62
63
  )
63
- self._hdf_stream_provider: Optional[HDFFile] = None
64
- self._handle_for_h5_file: Optional[h5py.File] = None
65
- self.target_path: Optional[Path] = None
64
+ self._hdf_stream_provider: HDFFile | None = None
65
+ self._handle_for_h5_file: h5py.File | None = None
66
+ self.target_path: Path | None = None
66
67
 
67
- async def write_image_to_file(self) -> None:
68
+ def write_data_to_dataset(self, path: str, data_shape: tuple[int, ...], data):
69
+ """Write data to named dataset, resizing to fit and flushing after."""
68
70
  assert self._handle_for_h5_file, "no file has been opened!"
69
- # prepare - resize the fixed hdf5 data structure
70
- # so that the new image can be written
71
- self._handle_for_h5_file[DATA_PATH].resize(
72
- (self.image_counter + 1, self.height, self.width)
73
- )
74
- self._handle_for_h5_file[SUM_PATH].resize((self.image_counter + 1,))
71
+ dset = self._handle_for_h5_file[path]
72
+ assert isinstance(
73
+ dset, h5py.Dataset
74
+ ), f"Expected {path} to be dataset, got {dset}"
75
+ dset.resize((self.image_counter + 1,) + data_shape)
76
+ dset[self.image_counter] = data
77
+ dset.flush()
75
78
 
79
+ async def write_image_to_file(self) -> None:
76
80
  # generate the simulated data
77
81
  intensity: float = generate_interesting_pattern(self.x, self.y)
78
82
  detector_data = (
@@ -82,14 +86,9 @@ class PatternGenerator:
82
86
  / self.saturation_exposure_time
83
87
  ).astype(np.uint8)
84
88
 
85
- # write data to disc (intermediate step)
86
- self._handle_for_h5_file[DATA_PATH][self.image_counter] = detector_data
87
- sum = np.sum(detector_data)
88
- self._handle_for_h5_file[SUM_PATH][self.image_counter] = sum
89
-
90
- # save metadata - so that it's discoverable
91
- self._handle_for_h5_file[DATA_PATH].flush()
92
- self._handle_for_h5_file[SUM_PATH].flush()
89
+ # Write the data and sum
90
+ self.write_data_to_dataset(DATA_PATH, (self.height, self.width), detector_data)
91
+ self.write_data_to_dataset(SUM_PATH, (), np.sum(detector_data))
93
92
 
94
93
  # counter increment is last
95
94
  # as only at this point the new data is visible from the outside
@@ -107,7 +106,7 @@ class PatternGenerator:
107
106
 
108
107
  async def open_file(
109
108
  self, path_provider: PathProvider, name: str, multiplier: int = 1
110
- ) -> Dict[str, DataKey]:
109
+ ) -> dict[str, DataKey]:
111
110
  await self.counter_signal.connect()
112
111
 
113
112
  self.target_path = self._get_new_path(path_provider)
@@ -156,7 +155,7 @@ class PatternGenerator:
156
155
  describe = {
157
156
  ds.data_key: DataKey(
158
157
  source="sim://pattern-generator-hdf-file",
159
- shape=outer_shape + tuple(ds.shape),
158
+ shape=list(outer_shape) + list(ds.shape),
160
159
  dtype="array" if ds.shape else "number",
161
160
  external="STREAM:",
162
161
  )
@@ -199,7 +198,6 @@ class PatternGenerator:
199
198
  def close(self) -> None:
200
199
  if self._handle_for_h5_file:
201
200
  self._handle_for_h5_file.close()
202
- print("file closed")
203
201
  self._handle_for_h5_file = None
204
202
 
205
203
  async def observe_indices_written(
@@ -63,10 +63,11 @@ class SimMotor(StandardReadable, Movable, Stoppable):
63
63
  await asyncio.sleep(0.1)
64
64
 
65
65
  @WatchableAsyncStatus.wrap
66
- async def set(self, new_position: float):
66
+ async def set(self, value: float):
67
67
  """
68
68
  Asynchronously move the motor to a new position.
69
69
  """
70
+ new_position = value
70
71
  # Make sure any existing move tasks are stopped
71
72
  await self.stop()
72
73
  old_position, units, velocity = await asyncio.gather(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ophyd-async
3
- Version: 0.5.2
3
+ Version: 0.6.0
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
@@ -40,61 +40,62 @@ Classifier: Programming Language :: Python :: 3.11
40
40
  Requires-Python: >=3.10
41
41
  Description-Content-Type: text/markdown
42
42
  License-File: LICENSE
43
- Requires-Dist: networkx>=2.0
44
- Requires-Dist: numpy<2.0.0
43
+ Requires-Dist: networkx >=2.0
44
+ Requires-Dist: numpy <2.0.0
45
45
  Requires-Dist: packaging
46
46
  Requires-Dist: pint
47
- Requires-Dist: bluesky>=1.13.0a3
47
+ Requires-Dist: bluesky >=1.13.0a3
48
48
  Requires-Dist: event-model
49
49
  Requires-Dist: p4p
50
50
  Requires-Dist: pyyaml
51
51
  Requires-Dist: colorlog
52
- Requires-Dist: pydantic>=2.0
52
+ Requires-Dist: pydantic >=2.0
53
53
  Requires-Dist: pydantic-numpy
54
54
  Provides-Extra: ca
55
- Requires-Dist: aioca>=1.6; extra == "ca"
55
+ Requires-Dist: aioca >=1.6 ; extra == 'ca'
56
56
  Provides-Extra: dev
57
- Requires-Dist: ophyd-async[pva]; extra == "dev"
58
- Requires-Dist: ophyd-async[sim]; extra == "dev"
59
- Requires-Dist: ophyd-async[ca]; extra == "dev"
60
- Requires-Dist: black; extra == "dev"
61
- Requires-Dist: flake8; extra == "dev"
62
- Requires-Dist: flake8-isort; extra == "dev"
63
- Requires-Dist: Flake8-pyproject; extra == "dev"
64
- Requires-Dist: inflection; extra == "dev"
65
- Requires-Dist: ipython; extra == "dev"
66
- Requires-Dist: ipywidgets; extra == "dev"
67
- Requires-Dist: matplotlib; extra == "dev"
68
- Requires-Dist: myst-parser; extra == "dev"
69
- Requires-Dist: numpydoc; extra == "dev"
70
- Requires-Dist: ophyd; extra == "dev"
71
- Requires-Dist: pickleshare; extra == "dev"
72
- Requires-Dist: pipdeptree; extra == "dev"
73
- Requires-Dist: pre-commit; extra == "dev"
74
- Requires-Dist: pydata-sphinx-theme>=0.12; extra == "dev"
75
- Requires-Dist: pyepics>=3.4.2; extra == "dev"
76
- Requires-Dist: pyside6==6.7.0; extra == "dev"
77
- Requires-Dist: pytest; extra == "dev"
78
- Requires-Dist: pytest-asyncio; extra == "dev"
79
- Requires-Dist: pytest-cov; extra == "dev"
80
- Requires-Dist: pytest-faulthandler; extra == "dev"
81
- Requires-Dist: pytest-rerunfailures; extra == "dev"
82
- Requires-Dist: pytest-timeout; extra == "dev"
83
- Requires-Dist: ruff; extra == "dev"
84
- Requires-Dist: sphinx<7.4.0; extra == "dev"
85
- Requires-Dist: sphinx-autobuild; extra == "dev"
86
- Requires-Dist: autodoc-pydantic; extra == "dev"
87
- Requires-Dist: sphinxcontrib-mermaid; extra == "dev"
88
- Requires-Dist: sphinx-copybutton; extra == "dev"
89
- Requires-Dist: sphinx-design; extra == "dev"
90
- Requires-Dist: super-state-machine; extra == "dev"
91
- Requires-Dist: tox-direct; extra == "dev"
92
- Requires-Dist: types-mock; extra == "dev"
93
- Requires-Dist: types-pyyaml; extra == "dev"
57
+ Requires-Dist: ophyd-async[pva] ; extra == 'dev'
58
+ Requires-Dist: ophyd-async[sim] ; extra == 'dev'
59
+ Requires-Dist: ophyd-async[ca] ; extra == 'dev'
60
+ Requires-Dist: black ; extra == 'dev'
61
+ Requires-Dist: flake8 ; extra == 'dev'
62
+ Requires-Dist: flake8-isort ; extra == 'dev'
63
+ Requires-Dist: Flake8-pyproject ; extra == 'dev'
64
+ Requires-Dist: inflection ; extra == 'dev'
65
+ Requires-Dist: ipython ; extra == 'dev'
66
+ Requires-Dist: ipywidgets ; extra == 'dev'
67
+ Requires-Dist: matplotlib ; extra == 'dev'
68
+ Requires-Dist: myst-parser ; extra == 'dev'
69
+ Requires-Dist: numpydoc ; extra == 'dev'
70
+ Requires-Dist: ophyd ; extra == 'dev'
71
+ Requires-Dist: pickleshare ; extra == 'dev'
72
+ Requires-Dist: pipdeptree ; extra == 'dev'
73
+ Requires-Dist: pre-commit ; extra == 'dev'
74
+ Requires-Dist: pydata-sphinx-theme >=0.12 ; extra == 'dev'
75
+ Requires-Dist: pyepics >=3.4.2 ; extra == 'dev'
76
+ Requires-Dist: pyright ; extra == 'dev'
77
+ Requires-Dist: pyside6 ==6.7.0 ; extra == 'dev'
78
+ Requires-Dist: pytest ; extra == 'dev'
79
+ Requires-Dist: pytest-asyncio ; extra == 'dev'
80
+ Requires-Dist: pytest-cov ; extra == 'dev'
81
+ Requires-Dist: pytest-faulthandler ; extra == 'dev'
82
+ Requires-Dist: pytest-rerunfailures ; extra == 'dev'
83
+ Requires-Dist: pytest-timeout ; extra == 'dev'
84
+ Requires-Dist: ruff ; extra == 'dev'
85
+ Requires-Dist: sphinx <7.4.0 ; extra == 'dev'
86
+ Requires-Dist: sphinx-autobuild ; extra == 'dev'
87
+ Requires-Dist: autodoc-pydantic ; extra == 'dev'
88
+ Requires-Dist: sphinxcontrib-mermaid ; extra == 'dev'
89
+ Requires-Dist: sphinx-copybutton ; extra == 'dev'
90
+ Requires-Dist: sphinx-design ; extra == 'dev'
91
+ Requires-Dist: super-state-machine ; extra == 'dev'
92
+ Requires-Dist: tox-direct ; extra == 'dev'
93
+ Requires-Dist: types-mock ; extra == 'dev'
94
+ Requires-Dist: types-pyyaml ; extra == 'dev'
94
95
  Provides-Extra: pva
95
- Requires-Dist: p4p; extra == "pva"
96
+ Requires-Dist: p4p ; extra == 'pva'
96
97
  Provides-Extra: sim
97
- Requires-Dist: h5py; extra == "sim"
98
+ Requires-Dist: h5py ; extra == 'sim'
98
99
 
99
100
  [![CI](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml/badge.svg)](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml)
100
101
  [![Coverage](https://codecov.io/gh/bluesky/ophyd-async/branch/main/graph/badge.svg)](https://codecov.io/gh/bluesky/ophyd-async)
@@ -0,0 +1,96 @@
1
+ ophyd_async/__init__.py,sha256=tEfgj45lRItQ-_u8SRFPM-mpBh3gWvHXr3emhiJJG_M,225
2
+ ophyd_async/__main__.py,sha256=n_U4O9bgm97OuboUB_9eK7eFiwy8BZSgXJ0OzbE0DqU,481
3
+ ophyd_async/_version.py,sha256=2JKwcA-YQ0okV2N-gwTWy_n51igWrPcsKQFm0cnqsvw,411
4
+ ophyd_async/core/__init__.py,sha256=Cq7d1VSPaCiunodT2Biij38WzEUwhYqGfOV-MwgfDJU,3899
5
+ ophyd_async/core/_detector.py,sha256=7BFYhn3YbzOAMLGC0ePq40eHPeXSqa9q4Rtnb_tlWhQ,12736
6
+ ophyd_async/core/_device.py,sha256=uMiQ2u3PlbguLe43VFLZW9BrPY4DGmeE71OJR7tJ0Pw,7695
7
+ ophyd_async/core/_device_save_loader.py,sha256=o1BXzLZJA2a3NoHXrvYQ6jhaak4QB_CdH1hX1hFQZK8,8450
8
+ ophyd_async/core/_flyer.py,sha256=066rD34hx3cnlzeLXbn2wyfp1UJ2ItjcrWF5LS8Q7a0,2311
9
+ ophyd_async/core/_hdf_dataset.py,sha256=wW_OL8OYLGOsE01ny3hGaapOrxK7BzhWTxKgz8CIXK0,2492
10
+ ophyd_async/core/_log.py,sha256=UbL9AtnHVUg7r9LofzgmuKEtBESy03usCp7ejmDltG4,3679
11
+ ophyd_async/core/_mock_signal_backend.py,sha256=Ga3ajwnePjV9oN-ZJUkUh6U7um1suY4CbMVYNfCmGF0,2882
12
+ ophyd_async/core/_mock_signal_utils.py,sha256=HKAqQPqSUC9hbvXkrxKzrY-FlDbxj1FtbMB_zABOdog,4809
13
+ ophyd_async/core/_protocol.py,sha256=GNcnsFfHmvrsXJ9l25l6KXTaUWsAh7MGu0y2f6rsRdA,3413
14
+ ophyd_async/core/_providers.py,sha256=ff9ZT5-PZ6rhTTdE-q8w9l_k9DuZqLWLebsKZLeJ0Ds,7112
15
+ ophyd_async/core/_readable.py,sha256=mbKTlnjRa7ez7zRHiXvii7EGxmym8FeP5kcnB8luSo0,9097
16
+ ophyd_async/core/_signal.py,sha256=q4ttdHuzhS5Z2vmc9wwFnx2JrHG8ztYcjzhnbn2CFDM,19914
17
+ ophyd_async/core/_signal_backend.py,sha256=PNR7GrzWp9mTZaHSFRhPuNAEWeaYb919YJ3rV3l70sY,2851
18
+ ophyd_async/core/_soft_signal_backend.py,sha256=Z9WCMDbrTrHuFdab0fyHm5CVlVZHvkMXofT6yW-6rPE,7593
19
+ ophyd_async/core/_status.py,sha256=7jaxc2WkY8LCTwfEsjNMqxLKuWfiFWmEentmp7oSU5s,4594
20
+ ophyd_async/core/_table.py,sha256=HrAU7_t-ufjTrYbiOfOb6I06WhE9doehE6TmIx6bZS4,2041
21
+ ophyd_async/core/_utils.py,sha256=QYH4wMQFJWkE21eS_IX-7uwuvJ1VTeEpghe8trxyvvU,5949
22
+ ophyd_async/epics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ ophyd_async/epics/motor.py,sha256=mOrFiTt6WrXJM4d5Stksrxc_j9Vcd3L3w1QLCX_K0zM,8752
24
+ ophyd_async/epics/adaravis/__init__.py,sha256=u979_9nQTYB0TvDOTXFN4qMrbDP8-xQFfXYMGzLVBo4,207
25
+ ophyd_async/epics/adaravis/_aravis.py,sha256=XBuLQBZYj2tptY39bVzXjl6t-ZpPwqrUOwpR54l-hSo,1952
26
+ ophyd_async/epics/adaravis/_aravis_controller.py,sha256=SuC7xUG3YLAsWZGqOV92c7N-qS0sStCMkQMrJmKJta0,2796
27
+ ophyd_async/epics/adaravis/_aravis_io.py,sha256=c6esqJO_86NTv3Mo9BKmQD74kGYLpCXelxcEGZcbKa0,1583
28
+ ophyd_async/epics/adcore/__init__.py,sha256=3wMOyFGaq1X61LqK4iY4pq-m_BjhOgYZD2-mNCAjpzk,1086
29
+ ophyd_async/epics/adcore/_core_io.py,sha256=s0vqTOzQ94IZU0z2K3fgTYEaOtwWHgk--WViAgKqXVY,6086
30
+ ophyd_async/epics/adcore/_core_logic.py,sha256=MywQug1EEnvEIW0G_qKK8d5JXc7WsniBCv1w2ratWnk,3555
31
+ ophyd_async/epics/adcore/_hdf_writer.py,sha256=4ezsPHHt2OWj9H6t4yk-mV9jkwv5vmIRrq5zGsfpGRc,7225
32
+ ophyd_async/epics/adcore/_single_trigger.py,sha256=NaTOHKDD0nzAPPrva-4dR-h102khpJ3cPKqEmS3HzY8,1168
33
+ ophyd_async/epics/adcore/_utils.py,sha256=MRgLwfta-1Dl45aJP_yLScAcxVll0WWR7GGCv3qNqZY,3902
34
+ ophyd_async/epics/adkinetix/__init__.py,sha256=QEft12PURied6LRzjw-NhUmngjAm1XNA3k-5o5aMXDQ,216
35
+ ophyd_async/epics/adkinetix/_kinetix.py,sha256=JsQVc4d7lRCnVObJlM775hHLfp3rYRSRgOoIyRvrSek,1184
36
+ ophyd_async/epics/adkinetix/_kinetix_controller.py,sha256=FgeoinGXdEDnOGbYnH60TVzxYapgDEaJgUlUn2d7a1U,1730
37
+ ophyd_async/epics/adkinetix/_kinetix_io.py,sha256=AbCoYliAobU3I6z3NaswQnExwGTgV458zF3uwkBEQPc,893
38
+ ophyd_async/epics/adpilatus/__init__.py,sha256=daimScOCCMHR2eb8VbezHOcGOkd6uIRZQiyeTQsaAx4,308
39
+ ophyd_async/epics/adpilatus/_pilatus.py,sha256=AbWfxEds8ESB73kRXz56FzRPYqy67Ue0m11HRaNUqZY,1751
40
+ ophyd_async/epics/adpilatus/_pilatus_controller.py,sha256=9Nwkv0nIH_35D02qqiw9FoG_4fOWblL8F5CPTZ2lhy8,2668
41
+ ophyd_async/epics/adpilatus/_pilatus_io.py,sha256=WB_N2RRpcFCFI6i57PRqjIdpK6hzLpWxn71cWUHUZnc,722
42
+ ophyd_async/epics/adsimdetector/__init__.py,sha256=t3crUgTEvVJGI8o6FsfN42k0A-l4v9ZBwXIYtixoE-M,128
43
+ ophyd_async/epics/adsimdetector/_sim.py,sha256=3woN3s6zYLQaaoPHWUZOZP2ZMrDDni370OVQw6CGMwM,958
44
+ ophyd_async/epics/adsimdetector/_sim_controller.py,sha256=B0oHWaziKHAiRIrj_hggixHvPoLOGZ0YcC-ZBCtmriM,1719
45
+ ophyd_async/epics/advimba/__init__.py,sha256=GSnFWGPNJsCJZ-Tgyv-L38Smwzp2bWC64U_4uD2TLvs,198
46
+ ophyd_async/epics/advimba/_vimba.py,sha256=E_RJ0uJQt-RWAY7uFTNkHaOdGYS5sa7ZbRgAe6ngXTA,1125
47
+ ophyd_async/epics/advimba/_vimba_controller.py,sha256=qB4iSqkgBBgan17BWuoSC40ZJYjdof85V5DCTJcArMc,2255
48
+ ophyd_async/epics/advimba/_vimba_io.py,sha256=nf1BdIWey4RR7KuqyZhH6X5yB8Msg0oOtkVLOuwn6Uc,1843
49
+ ophyd_async/epics/demo/__init__.py,sha256=wCrgemEo-zR4TTvaqCKnQ-AIUHorotV5jhftbq1tXz0,1368
50
+ ophyd_async/epics/demo/_mover.py,sha256=2bNfaLZzP1MMzsaLgDEQLf9_uWeOR9fcYzKiGVM2Ze8,3531
51
+ ophyd_async/epics/demo/_sensor.py,sha256=8OyFAsB3EXMzrQreOIg_TGHrseUtI5rxXpfwwUaC76I,1165
52
+ ophyd_async/epics/demo/mover.db,sha256=RFz0rxZue689Wh1sWTZwWeFMUrH04ttPq2u5xJH_Fp4,998
53
+ ophyd_async/epics/demo/sensor.db,sha256=AstyG9E0R4KZBz2FZQSrV_QlrfLoU6M2cvYc15Lf548,553
54
+ ophyd_async/epics/eiger/__init__.py,sha256=b3Tt4pVLk23Giyj50R4e94d2MxWDDmNHWhWwNq2jlaw,221
55
+ ophyd_async/epics/eiger/_eiger.py,sha256=_t0E6s0IVcV1IQcnxclJM5ZNOP74N_bakFO_pItO1VA,1171
56
+ ophyd_async/epics/eiger/_eiger_controller.py,sha256=6Nm-khPRqkBh_s2l0z2QismX0jJvPT08yyEFP6zvnCA,2261
57
+ ophyd_async/epics/eiger/_eiger_io.py,sha256=MlvLWEZ-n-Lf7y9e_WVoPFdw5YoHVWw_8LxSLajnkk8,1818
58
+ ophyd_async/epics/eiger/_odin_io.py,sha256=8EQcnGLJFsgRFtwFIG3PV5vH6Fjg2xqjExZ6RqIb6ew,4170
59
+ ophyd_async/epics/pvi/__init__.py,sha256=ZvJO69ApL7N9rWT9-hD-JZMC_KsHxgeEqxe-01jNUVw,137
60
+ ophyd_async/epics/pvi/_pvi.py,sha256=lbgZRR_Wl1gZWEjmoTzVIOv_1il4ulLU7UCDDetoZ-0,12136
61
+ ophyd_async/epics/signal/__init__.py,sha256=cJGvTnJxHNzpWyWIYXU4UGMoz3uqZ88UVXNvG-TGngo,441
62
+ ophyd_async/epics/signal/_aioca.py,sha256=vmAAywEzLjbL40V7P5MmxhQhII6E70zdizNk9TGnoTI,12703
63
+ ophyd_async/epics/signal/_common.py,sha256=BFz1leFG5VLeDZc8Ndni4GBqFUzvYVs0iIYUiLHS5AE,1624
64
+ ophyd_async/epics/signal/_epics_transport.py,sha256=lMOOg8E1JQu1MDWtp6zFqSdhO5gNKcPn_uYXyWUxofw,824
65
+ ophyd_async/epics/signal/_p4p.py,sha256=l8BcU6fbxs4CN9Hio3VNN5n6WaCx9AP8TfQT-xnaevM,17631
66
+ ophyd_async/epics/signal/_signal.py,sha256=76a8V0qIjV6VKfh-3-SLcD3GZF3dd_2lQt_6mTKe_bA,3204
67
+ ophyd_async/fastcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ ophyd_async/fastcs/odin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ ophyd_async/fastcs/panda/__init__.py,sha256=4ct9vmLafK0fSWQ_HjxmT3jRhWz_8CAFpKStgah2RJY,1022
70
+ ophyd_async/fastcs/panda/_block.py,sha256=ElnwPg0HEx7gToB6l_0o-Pf2foIQaCdVi69VFYxr-RA,1614
71
+ ophyd_async/fastcs/panda/_control.py,sha256=cSvpiHw0vRSYpKw3FsXlWAqLhvDpev15Uq6af0GWw_k,1113
72
+ ophyd_async/fastcs/panda/_hdf_panda.py,sha256=nCGXOiVbvQnVRftEF5PNFeOoLO85F2leg0DVl4MDJFw,1526
73
+ ophyd_async/fastcs/panda/_table.py,sha256=IA9pRcx8N6korOMb7DBN30aFQufsMLIDifBEnTYuiJ8,4385
74
+ ophyd_async/fastcs/panda/_trigger.py,sha256=Zv_cnrpjnh1DYp_-j0utlxymYgmYiqUzeBxu9qGPETk,3023
75
+ ophyd_async/fastcs/panda/_utils.py,sha256=NdvzdKy0SOG1eCVMQo_nwRXpBo0wyi6lM5Xw3HvssOw,508
76
+ ophyd_async/fastcs/panda/_writer.py,sha256=FwQCwTJT90WoptVvbo_QS89-SnAnnqmL2JT_73Gh9dw,6130
77
+ ophyd_async/plan_stubs/__init__.py,sha256=wjpEj_BoBZJ9x2fhUPY6BzWMqyYH96JrBlJvV7frdN4,524
78
+ ophyd_async/plan_stubs/_ensure_connected.py,sha256=6Q7_UWQ-UQ0awe6mnN4PdNCAOGRm4GZR9X2M-ghQCeI,711
79
+ ophyd_async/plan_stubs/_fly.py,sha256=RRFXpyKf7wyNsj2Cs-p9IaAmVkQgWfH_ly7rqbfC63s,6263
80
+ ophyd_async/plan_stubs/_nd_attributes.py,sha256=w26G2k3FU1nv-s3Bytwuu_K3lBrbdRYlaJ2TMLgUu7w,2141
81
+ ophyd_async/sim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ ophyd_async/sim/demo/__init__.py,sha256=JKWFnHqmFuRRMvvU0aBuclke3OdF0iq89yvHEd4J7Bg,371
83
+ ophyd_async/sim/demo/_sim_motor.py,sha256=13mswR9ybIHD00BFlmrqR7c4v_3in5FBv33cVfu8Uyc,3623
84
+ ophyd_async/sim/demo/_pattern_detector/__init__.py,sha256=o_dSZDIl_CyS3YPSNKpGiQiR9UaC4cNzZ8_ByEN9dIk,402
85
+ ophyd_async/sim/demo/_pattern_detector/_pattern_detector.py,sha256=R-UbcxHLFfCK9tBryKZN5Dit0IjYeJGP-QKV2ssKFoQ,1275
86
+ ophyd_async/sim/demo/_pattern_detector/_pattern_detector_controller.py,sha256=y5su-iriRumY_rcvrwdD3lOqQzMF9YpzkT4ADakQoRw,1980
87
+ ophyd_async/sim/demo/_pattern_detector/_pattern_detector_writer.py,sha256=nQOks4EK1Ax0Ib1pkCrmJPF8Jqr7tPusMnby-HGUnP0,1370
88
+ ophyd_async/sim/demo/_pattern_detector/_pattern_generator.py,sha256=gP0Q1-1p_3KOH7mWZc5m-8OUEx_jb7SAdRXcpleRqX4,7096
89
+ ophyd_async/sim/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
+ ophyd_async/tango/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ ophyd_async-0.6.0.dist-info/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
92
+ ophyd_async-0.6.0.dist-info/METADATA,sha256=5_LkWfnIfbeN5hqj_yQ4wEFA_tHDbwjd_UfeiD_7tpc,6600
93
+ ophyd_async-0.6.0.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
94
+ ophyd_async-0.6.0.dist-info/entry_points.txt,sha256=O0YNJTEufO0w9BozXi-JurTy2U1_o0ypeCgJLQ727Jk,58
95
+ ophyd_async-0.6.0.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
96
+ ophyd_async-0.6.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.1)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,95 +0,0 @@
1
- ophyd_async/__init__.py,sha256=v-rRiDOgZ3sQSMQKq0vgUQZvpeOkoHFXissAx6Ktg84,61
2
- ophyd_async/__main__.py,sha256=G-Zcv_G9zK7Nhx6o5L5w-wyhMxdl_WgyMELu8IMFqAE,328
3
- ophyd_async/_version.py,sha256=9wH2PDsTkkxdqSU9YziEjDTHYLEcKPSYr6RofNSEaJk,411
4
- ophyd_async/core/__init__.py,sha256=Ci9J1fxdaUHT45gRQNxzNEqEdbI6xBseSUrFcOIhhlg,3793
5
- ophyd_async/core/_detector.py,sha256=n5MKTVAzTHVUWH5ZMxcSq7u4qP2nAGemaPyGrPAZQq4,11811
6
- ophyd_async/core/_device.py,sha256=DDdRujYLCDSuGDB0gqElkzI0qEGb3sMlFP6FgmH2u3A,7554
7
- ophyd_async/core/_device_save_loader.py,sha256=pTom5EOFa9_5Z3bV37zOnbGx2ujWIOl_D9PVYhpY1FY,8232
8
- ophyd_async/core/_flyer.py,sha256=8_N9u6s2P9qPZmNtHFfdmFv8FD7sKrKb9-IuvNUVHPw,2267
9
- ophyd_async/core/_hdf_dataset.py,sha256=H3fFzsnLc7BwPgmDP7P9emQ5u6f0GFQ16Myj6qWxQq0,2430
10
- ophyd_async/core/_log.py,sha256=Hsk2Iwx81n3HpxNR30xGTnLJh_lPGd_CGy2MI3OGpWs,3588
11
- ophyd_async/core/_mock_signal_backend.py,sha256=M_I2LxxJrJmBAbmILjVoAR6E2U8K2UswvHGiHluMqHc,2799
12
- ophyd_async/core/_mock_signal_utils.py,sha256=LTrmjQTqvP4yY2bsaOmfLNJAegD850_BNZ6Y8uY5XPQ,4717
13
- ophyd_async/core/_protocol.py,sha256=aRoqet0ThyVK_wrULh4k_StnpeHnNhXc0YffWdRJNZw,3391
14
- ophyd_async/core/_providers.py,sha256=unFdSAm5Hz4B6s3WSSGRCZo0l9FYMbJwI7DOBIAI_n4,7148
15
- ophyd_async/core/_readable.py,sha256=WayM35JOJj732-YgvGsjUSlCZwZ_zq1zbAmk-1U0uwU,8998
16
- ophyd_async/core/_signal.py,sha256=MzB2KGHogo2mKeSHRkqyAiELv22xnnkPuroXU-RuMWI,19609
17
- ophyd_async/core/_signal_backend.py,sha256=-Vze8-57W0jpcC4gq4P4rZpXXJvi2qrbu0A8AjqA594,2638
18
- ophyd_async/core/_soft_signal_backend.py,sha256=Z4LiADd9xKrxhhPOx8q5xq4yrJRdJbfuKeB0o2wBjCk,6653
19
- ophyd_async/core/_status.py,sha256=lnhy-gt2XV8ZE0EuzrDddHCEYuoquBI5ovTOJxwtSYk,4526
20
- ophyd_async/core/_utils.py,sha256=3oZcXNqAUHX4ZWMBH5gSuK6cFWEhSkZ9GSDYv0pf8jc,5783
21
- ophyd_async/epics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- ophyd_async/epics/motor.py,sha256=x9ysc5tLqJiVYYqyhEd5ornEYQ5aQamg7pB4e5ygwR4,8776
23
- ophyd_async/epics/adaravis/__init__.py,sha256=u979_9nQTYB0TvDOTXFN4qMrbDP8-xQFfXYMGzLVBo4,207
24
- ophyd_async/epics/adaravis/_aravis.py,sha256=XBuLQBZYj2tptY39bVzXjl6t-ZpPwqrUOwpR54l-hSo,1952
25
- ophyd_async/epics/adaravis/_aravis_controller.py,sha256=SzyajBNoqvBOUVtNE0t8ghffY2pYP8U99XgQ-4u2pVI,2635
26
- ophyd_async/epics/adaravis/_aravis_io.py,sha256=GY2thPUJ-6821GvfZTBLoX8g9d-U1YgyoXe3wYRVw-g,1554
27
- ophyd_async/epics/adcore/__init__.py,sha256=3wMOyFGaq1X61LqK4iY4pq-m_BjhOgYZD2-mNCAjpzk,1086
28
- ophyd_async/epics/adcore/_core_io.py,sha256=F4TlnWW0ntAekZlr8qxCpKhFyEThSgjYQCOoKOg4DN8,5918
29
- ophyd_async/epics/adcore/_core_logic.py,sha256=2iAF64HLRGxg_By-7feGP8eUtujsXYzOhysP0_SuMTM,3577
30
- ophyd_async/epics/adcore/_hdf_writer.py,sha256=fUvduWqw9aNNwroH5Wutq_8Q8c0Aqb0vMIs2r5ouYjM,6697
31
- ophyd_async/epics/adcore/_single_trigger.py,sha256=LGhAZV0GoRwRTNFQmgLpkfq73HsiMCu20JKYGOzxt0I,1159
32
- ophyd_async/epics/adcore/_utils.py,sha256=A5AUQIfdbzLgF7A4V-1TSoPD6Kvgs4sbZBGOV7zb8SY,3909
33
- ophyd_async/epics/adkinetix/__init__.py,sha256=QEft12PURied6LRzjw-NhUmngjAm1XNA3k-5o5aMXDQ,216
34
- ophyd_async/epics/adkinetix/_kinetix.py,sha256=JsQVc4d7lRCnVObJlM775hHLfp3rYRSRgOoIyRvrSek,1184
35
- ophyd_async/epics/adkinetix/_kinetix_controller.py,sha256=jHe6MSfqCOdzw0jQ5L6cYq55I0TD5Bso2ZGOZmv1j3Q,1504
36
- ophyd_async/epics/adkinetix/_kinetix_io.py,sha256=AbCoYliAobU3I6z3NaswQnExwGTgV458zF3uwkBEQPc,893
37
- ophyd_async/epics/adpilatus/__init__.py,sha256=daimScOCCMHR2eb8VbezHOcGOkd6uIRZQiyeTQsaAx4,308
38
- ophyd_async/epics/adpilatus/_pilatus.py,sha256=AbWfxEds8ESB73kRXz56FzRPYqy67Ue0m11HRaNUqZY,1751
39
- ophyd_async/epics/adpilatus/_pilatus_controller.py,sha256=1GfzcnhwLam8fAhf889lPz2rrn9mWDaGO3BIELP3R50,2450
40
- ophyd_async/epics/adpilatus/_pilatus_io.py,sha256=WB_N2RRpcFCFI6i57PRqjIdpK6hzLpWxn71cWUHUZnc,722
41
- ophyd_async/epics/adsimdetector/__init__.py,sha256=t3crUgTEvVJGI8o6FsfN42k0A-l4v9ZBwXIYtixoE-M,128
42
- ophyd_async/epics/adsimdetector/_sim.py,sha256=ijN7K-5prJuzFD3DoNtQ8JujnvCG8_UMwYxMCGSOHCE,866
43
- ophyd_async/epics/adsimdetector/_sim_controller.py,sha256=v0GrMXg7U1PUvLKW8zmx8zrunk_MfFt7GbckbVlnUys,1494
44
- ophyd_async/epics/advimba/__init__.py,sha256=GSnFWGPNJsCJZ-Tgyv-L38Smwzp2bWC64U_4uD2TLvs,198
45
- ophyd_async/epics/advimba/_vimba.py,sha256=E_RJ0uJQt-RWAY7uFTNkHaOdGYS5sa7ZbRgAe6ngXTA,1125
46
- ophyd_async/epics/advimba/_vimba_controller.py,sha256=JvQ4M2IdixDI6TXNHSqUs0sX3ncgosecuLmT8bYhU9w,2003
47
- ophyd_async/epics/advimba/_vimba_io.py,sha256=nf1BdIWey4RR7KuqyZhH6X5yB8Msg0oOtkVLOuwn6Uc,1843
48
- ophyd_async/epics/demo/__init__.py,sha256=wCrgemEo-zR4TTvaqCKnQ-AIUHorotV5jhftbq1tXz0,1368
49
- ophyd_async/epics/demo/_mover.py,sha256=7GEmF-mgN0qxiHUE3Tgboh0p9S5AuPBYR-pFeg5QFTk,3520
50
- ophyd_async/epics/demo/_sensor.py,sha256=8OyFAsB3EXMzrQreOIg_TGHrseUtI5rxXpfwwUaC76I,1165
51
- ophyd_async/epics/demo/mover.db,sha256=RFz0rxZue689Wh1sWTZwWeFMUrH04ttPq2u5xJH_Fp4,998
52
- ophyd_async/epics/demo/sensor.db,sha256=AVtiydrdtwAz2EFurO2Ult9SSRtre3r0akOBbL98LT0,554
53
- ophyd_async/epics/eiger/__init__.py,sha256=b3Tt4pVLk23Giyj50R4e94d2MxWDDmNHWhWwNq2jlaw,221
54
- ophyd_async/epics/eiger/_eiger.py,sha256=8sTPz_pBpDyJI_VUGxVb8WtfoTYvsAi3stofaPbcgt4,1155
55
- ophyd_async/epics/eiger/_eiger_controller.py,sha256=B4CpwWXde71C3BWcSBwlZbt3Fnk9yAT9BZj4J4DeDoU,2139
56
- ophyd_async/epics/eiger/_eiger_io.py,sha256=MlvLWEZ-n-Lf7y9e_WVoPFdw5YoHVWw_8LxSLajnkk8,1818
57
- ophyd_async/epics/eiger/_odin_io.py,sha256=NY1O38yIYU0M6hPt1yXqDHxvpnc7PKDpqZasjc7bM_s,4163
58
- ophyd_async/epics/pvi/__init__.py,sha256=ZvJO69ApL7N9rWT9-hD-JZMC_KsHxgeEqxe-01jNUVw,137
59
- ophyd_async/epics/pvi/_pvi.py,sha256=PUst4KhX8emkbRunLrJeqTruaOMF3mm1s7YJsBB7HpQ,12099
60
- ophyd_async/epics/signal/__init__.py,sha256=cJGvTnJxHNzpWyWIYXU4UGMoz3uqZ88UVXNvG-TGngo,441
61
- ophyd_async/epics/signal/_aioca.py,sha256=8I3CFNtHWsxDe1DC95VGAITR6hKaW03L_8pBnvdF4-A,11764
62
- ophyd_async/epics/signal/_common.py,sha256=v8nHeAZcdrAtqwzHDOia03HAhPL0zEP-4qhg4DwK8vY,1867
63
- ophyd_async/epics/signal/_epics_transport.py,sha256=MnkhnbpYSxrS7Wo8jDJ1YGnkrvjfYEt1oOe-uxjGCPU,839
64
- ophyd_async/epics/signal/_p4p.py,sha256=cvzj6VD3mK-tns1nH8ZukgpvHo1ULMbUc8Qg-B6drBQ,15981
65
- ophyd_async/epics/signal/_signal.py,sha256=i5q7zTv5y3HFQRI1JrwWT-gN6bViPWNuks14le2pTFI,3252
66
- ophyd_async/fastcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
- ophyd_async/fastcs/odin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- ophyd_async/fastcs/panda/__init__.py,sha256=IHVn0wHsCuvQLdgKTRyr1F8-Ol81ImuEx_JJZpfPUv0,1166
69
- ophyd_async/fastcs/panda/_block.py,sha256=ElnwPg0HEx7gToB6l_0o-Pf2foIQaCdVi69VFYxr-RA,1614
70
- ophyd_async/fastcs/panda/_control.py,sha256=Xwes9eRlR4WgTEtQy9LmnQjk596qxAdw33AFxMDF9Rg,1229
71
- ophyd_async/fastcs/panda/_hdf_panda.py,sha256=ty-mc5c8z-OcX0zXt5ymlCeqE1G5_UYAEhOmNUv0f_M,1309
72
- ophyd_async/fastcs/panda/_table.py,sha256=atd9wiam0XQH89doqzn0U6J42CFQBKDs9K1_q5GcJR8,6093
73
- ophyd_async/fastcs/panda/_trigger.py,sha256=f7VqYCdXYoT2JyPovXdeYUC0SdWFFcSnVVdUHRd0OO0,3054
74
- ophyd_async/fastcs/panda/_utils.py,sha256=VHW5kPVISyEkmse_qQcyisBkkEwMO6GG2Ago-CH1AFA,487
75
- ophyd_async/fastcs/panda/_writer.py,sha256=1WSoxUPfMIprcShccjZtsnSVLJwKOCcxsBw8FIemlBk,5326
76
- ophyd_async/plan_stubs/__init__.py,sha256=wjpEj_BoBZJ9x2fhUPY6BzWMqyYH96JrBlJvV7frdN4,524
77
- ophyd_async/plan_stubs/_ensure_connected.py,sha256=6Q7_UWQ-UQ0awe6mnN4PdNCAOGRm4GZR9X2M-ghQCeI,711
78
- ophyd_async/plan_stubs/_fly.py,sha256=PWT7cbnVUDBFtjKkMQ7Lr960M9d0JcUBseXFYhzBc8I,6299
79
- ophyd_async/plan_stubs/_nd_attributes.py,sha256=r7Ly2fPIklOJGIHw0uoWl4gOsIfP5Df6dg_tU__hUSE,1986
80
- ophyd_async/sim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- ophyd_async/sim/demo/__init__.py,sha256=JKWFnHqmFuRRMvvU0aBuclke3OdF0iq89yvHEd4J7Bg,371
82
- ophyd_async/sim/demo/_sim_motor.py,sha256=Dfc-1faeqbVLsCLuM2FFJ2F20Ib0UsS2vsHdqgVt2Zk,3601
83
- ophyd_async/sim/demo/_pattern_detector/__init__.py,sha256=o_dSZDIl_CyS3YPSNKpGiQiR9UaC4cNzZ8_ByEN9dIk,402
84
- ophyd_async/sim/demo/_pattern_detector/_pattern_detector.py,sha256=5PH9vZ0vLhhvzN1H-7HUcaNUOQ---9i0GEBKY_luRTI,1278
85
- ophyd_async/sim/demo/_pattern_detector/_pattern_detector_controller.py,sha256=JjgCiX1CO284ykwzutdp0whqehHPqi83akiAyL7CqmY,1800
86
- ophyd_async/sim/demo/_pattern_detector/_pattern_detector_writer.py,sha256=ayJJ2Y0rqM7gIEtxhH4-iRnYi0RQTaEWFIHUJd2W27Y,1280
87
- ophyd_async/sim/demo/_pattern_detector/_pattern_generator.py,sha256=KRB8y3rwoaemeQx4ewoFO7CCTHtvokWe4zTE0Rg3K0Q,7176
88
- ophyd_async/sim/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
- ophyd_async/tango/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- ophyd_async-0.5.2.dist-info/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
91
- ophyd_async-0.5.2.dist-info/METADATA,sha256=WT4LFUgG_L4M56zH19WNULHbqAdJg2_D9AAYGEXTWB8,6511
92
- ophyd_async-0.5.2.dist-info/WHEEL,sha256=uCRv0ZEik_232NlR4YDw4Pv3Ajt5bKvMH13NUU7hFuI,91
93
- ophyd_async-0.5.2.dist-info/entry_points.txt,sha256=O0YNJTEufO0w9BozXi-JurTy2U1_o0ypeCgJLQ727Jk,58
94
- ophyd_async-0.5.2.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
95
- ophyd_async-0.5.2.dist-info/RECORD,,