ophyd-async 0.7.0__tar.gz → 0.8.0a2__tar.gz

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 (253) hide show
  1. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.copier-answers.yml +1 -1
  2. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/CONTRIBUTING.md +1 -1
  3. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/_pypi.yml +2 -0
  4. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/Dockerfile +1 -1
  5. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/PKG-INFO +8 -12
  6. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/README.md +3 -3
  7. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/conf.py +2 -5
  8. ophyd_async-0.8.0a2/docs/explanations/decisions/0008-signal-types.md +159 -0
  9. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/how-to/make-a-simple-device.rst +4 -4
  10. ophyd_async-0.8.0a2/docs/images/ophyd-async-logo.svg +358 -0
  11. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/pyproject.toml +14 -16
  12. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/_version.py +2 -2
  13. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/__init__.py +23 -8
  14. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_detector.py +5 -10
  15. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_device.py +139 -66
  16. ophyd_async-0.8.0a2/src/ophyd_async/core/_device_filler.py +191 -0
  17. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_device_save_loader.py +6 -7
  18. ophyd_async-0.8.0a2/src/ophyd_async/core/_mock_signal_backend.py +76 -0
  19. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_mock_signal_utils.py +22 -16
  20. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_protocol.py +28 -8
  21. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_readable.py +5 -5
  22. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_signal.py +140 -152
  23. ophyd_async-0.8.0a2/src/ophyd_async/core/_signal_backend.py +164 -0
  24. ophyd_async-0.8.0a2/src/ophyd_async/core/_soft_signal_backend.py +175 -0
  25. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_status.py +22 -6
  26. ophyd_async-0.8.0a2/src/ophyd_async/core/_table.py +143 -0
  27. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_utils.py +71 -18
  28. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adaravis/_aravis_controller.py +2 -2
  29. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adaravis/_aravis_io.py +7 -5
  30. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adcore/_core_io.py +4 -6
  31. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adcore/_hdf_writer.py +2 -2
  32. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adcore/_utils.py +15 -10
  33. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adkinetix/__init__.py +2 -1
  34. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adkinetix/_kinetix_controller.py +6 -3
  35. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adkinetix/_kinetix_io.py +3 -4
  36. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adpilatus/_pilatus_controller.py +2 -2
  37. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adpilatus/_pilatus_io.py +2 -3
  38. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adsimdetector/_sim_controller.py +2 -2
  39. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/advimba/__init__.py +4 -1
  40. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/advimba/_vimba_controller.py +6 -3
  41. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/advimba/_vimba_io.py +7 -8
  42. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/demo/_sensor.py +8 -4
  43. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/eiger/_eiger.py +1 -2
  44. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/eiger/_eiger_controller.py +1 -1
  45. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/eiger/_eiger_io.py +2 -4
  46. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/eiger/_odin_io.py +4 -4
  47. ophyd_async-0.8.0a2/src/ophyd_async/epics/pvi/__init__.py +3 -0
  48. ophyd_async-0.8.0a2/src/ophyd_async/epics/pvi/_pvi.py +73 -0
  49. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/signal/__init__.py +3 -4
  50. ophyd_async-0.8.0a2/src/ophyd_async/epics/signal/_aioca.py +326 -0
  51. ophyd_async-0.8.0a2/src/ophyd_async/epics/signal/_common.py +43 -0
  52. ophyd_async-0.8.0a2/src/ophyd_async/epics/signal/_p4p.py +385 -0
  53. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/signal/_signal.py +63 -21
  54. ophyd_async-0.8.0a2/src/ophyd_async/fastcs/core.py +9 -0
  55. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/panda/__init__.py +4 -4
  56. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/panda/_block.py +18 -13
  57. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/panda/_control.py +3 -5
  58. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/panda/_hdf_panda.py +5 -19
  59. ophyd_async-0.8.0a2/src/ophyd_async/fastcs/panda/_table.py +87 -0
  60. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/panda/_trigger.py +8 -8
  61. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/panda/_writer.py +2 -5
  62. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/plan_stubs/_ensure_connected.py +3 -1
  63. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/plan_stubs/_fly.py +2 -2
  64. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/plan_stubs/_nd_attributes.py +5 -4
  65. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/sim/demo/_pattern_detector/_pattern_detector_controller.py +1 -2
  66. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/__init__.py +2 -4
  67. ophyd_async-0.8.0a2/src/ophyd_async/tango/base_devices/_base_device.py +158 -0
  68. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/demo/_counter.py +2 -2
  69. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/demo/_mover.py +2 -2
  70. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/signal/__init__.py +2 -4
  71. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/signal/_signal.py +29 -50
  72. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/signal/_tango_transport.py +38 -40
  73. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async.egg-info/PKG-INFO +8 -12
  74. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async.egg-info/SOURCES.txt +8 -5
  75. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async.egg-info/requires.txt +4 -8
  76. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_device.py +55 -91
  77. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_device_collector.py +6 -2
  78. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_device_save_loader.py +120 -93
  79. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_flyer.py +3 -3
  80. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_log.py +2 -2
  81. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_mock_signal_backend.py +66 -68
  82. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_readable.py +2 -10
  83. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_signal.py +21 -93
  84. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_soft_signal_backend.py +56 -59
  85. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_status.py +15 -6
  86. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_subset_enum.py +22 -30
  87. ophyd_async-0.8.0a2/tests/core/test_table.py +53 -0
  88. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_utils.py +6 -5
  89. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_watchable_async_status.py +19 -0
  90. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adaravis/test_aravis.py +2 -2
  91. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adcore/test_single_trigger.py +6 -10
  92. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adcore/test_writers.py +11 -8
  93. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adkinetix/test_kinetix.py +6 -5
  94. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adsimdetector/test_sim.py +6 -6
  95. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/advimba/test_vimba.py +4 -4
  96. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/conftest.py +6 -3
  97. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/demo/test_demo.py +44 -11
  98. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/eiger/test_eiger_controller.py +7 -8
  99. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/eiger/test_eiger_detector.py +1 -3
  100. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/eiger/test_odin_io.py +7 -19
  101. ophyd_async-0.8.0a2/tests/epics/pvi/test_pvi.py +144 -0
  102. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/signal/test_common.py +4 -15
  103. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/signal/test_records.db +1 -25
  104. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/signal/test_signals.py +204 -197
  105. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/test_motor.py +4 -6
  106. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/fastcs/panda/db/panda.db +37 -44
  107. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/fastcs/panda/test_hdf_panda.py +8 -23
  108. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/fastcs/panda/test_panda_connect.py +17 -26
  109. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/fastcs/panda/test_panda_control.py +4 -12
  110. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/fastcs/panda/test_panda_utils.py +4 -13
  111. ophyd_async-0.7.0/tests/fastcs/panda/test_table.py → ophyd_async-0.8.0a2/tests/fastcs/panda/test_seq_table.py +45 -73
  112. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/fastcs/panda/test_trigger.py +12 -18
  113. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/fastcs/panda/test_writer.py +19 -41
  114. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/plan_stubs/test_ensure_connected.py +2 -2
  115. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/plan_stubs/test_fly.py +3 -10
  116. ophyd_async-0.8.0a2/tests/sim/demo/__init__.py +0 -0
  117. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/tango/test_base_device.py +5 -13
  118. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/tango/test_tango_signals.py +21 -24
  119. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/tango/test_tango_transport.py +28 -28
  120. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/test_data/test_yaml_save.yml +31 -10
  121. ophyd_async-0.7.0/docs/images/bluesky_ophyd_epics_devices_logo.svg +0 -389
  122. ophyd_async-0.7.0/docs/images/bluesky_ophyd_logo.svg +0 -323
  123. ophyd_async-0.7.0/src/ophyd_async/core/_mock_signal_backend.py +0 -84
  124. ophyd_async-0.7.0/src/ophyd_async/core/_signal_backend.py +0 -97
  125. ophyd_async-0.7.0/src/ophyd_async/core/_soft_signal_backend.py +0 -244
  126. ophyd_async-0.7.0/src/ophyd_async/core/_table.py +0 -146
  127. ophyd_async-0.7.0/src/ophyd_async/epics/pvi/__init__.py +0 -3
  128. ophyd_async-0.7.0/src/ophyd_async/epics/pvi/_pvi.py +0 -338
  129. ophyd_async-0.7.0/src/ophyd_async/epics/signal/_aioca.py +0 -378
  130. ophyd_async-0.7.0/src/ophyd_async/epics/signal/_common.py +0 -57
  131. ophyd_async-0.7.0/src/ophyd_async/epics/signal/_epics_transport.py +0 -34
  132. ophyd_async-0.7.0/src/ophyd_async/epics/signal/_p4p.py +0 -518
  133. ophyd_async-0.7.0/src/ophyd_async/fastcs/panda/_table.py +0 -109
  134. ophyd_async-0.7.0/src/ophyd_async/tango/base_devices/_base_device.py +0 -225
  135. ophyd_async-0.7.0/tests/epics/pvi/test_pvi.py +0 -202
  136. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.codecov.yml +0 -0
  137. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.devcontainer/devcontainer.json +0 -0
  138. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.git-blame-ignore-revs +0 -0
  139. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  140. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  141. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  142. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/actions/install_requirements/action.yml +0 -0
  143. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/dependabot.yml +0 -0
  144. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/pages/index.html +0 -0
  145. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/pages/make_switcher.py +0 -0
  146. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/_check.yml +0 -0
  147. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/_dist.yml +0 -0
  148. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/_docs.yml +0 -0
  149. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/_release.yml +0 -0
  150. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/_test.yml +0 -0
  151. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/_tox.yml +0 -0
  152. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/ci.yml +0 -0
  153. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.github/workflows/periodic.yml +0 -0
  154. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.gitignore +0 -0
  155. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.mailmap +0 -0
  156. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/.pre-commit-config.yaml +0 -0
  157. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/LICENSE +0 -0
  158. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/_api.rst +0 -0
  159. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/_templates/custom-module-template.rst +0 -0
  160. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/examples/epics_demo.py +0 -0
  161. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/examples/foo_detector.py +0 -0
  162. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/examples/tango_demo.py +0 -0
  163. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  164. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  165. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/0003-ophyd-async-migration.rst +0 -0
  166. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/0004-repository-structure.rst +0 -0
  167. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/0005-respect-black-line-length.rst +0 -0
  168. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/0006-procedural-device-definitions.rst +0 -0
  169. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/0007-subpackage-structure.md +0 -0
  170. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions/COPYME +0 -0
  171. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/decisions.md +0 -0
  172. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/design-goals.rst +0 -0
  173. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/event-loop-choice.rst +0 -0
  174. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations/flyscanning.rst +0 -0
  175. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/explanations.md +0 -0
  176. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/genindex.rst +0 -0
  177. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/how-to/choose-interfaces-for-devices.md +0 -0
  178. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/how-to/compound-devices.rst +0 -0
  179. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/how-to/contribute.md +0 -0
  180. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/how-to/make-a-standard-detector.rst +0 -0
  181. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/how-to/write-tests-for-devices.rst +0 -0
  182. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/how-to.md +0 -0
  183. /ophyd_async-0.7.0/docs/images/ophyd_favicon.svg → /ophyd_async-0.8.0a2/docs/images/ophyd-favicon.svg +0 -0
  184. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/index.md +0 -0
  185. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/reference.md +0 -0
  186. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/tutorials/installation.md +0 -0
  187. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/tutorials/using-existing-devices.rst +0 -0
  188. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/docs/tutorials.md +0 -0
  189. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/setup.cfg +0 -0
  190. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/__init__.py +0 -0
  191. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/__main__.py +0 -0
  192. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_flyer.py +0 -0
  193. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_hdf_dataset.py +0 -0
  194. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_log.py +0 -0
  195. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/core/_providers.py +0 -0
  196. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/__init__.py +0 -0
  197. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adaravis/__init__.py +0 -0
  198. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adaravis/_aravis.py +0 -0
  199. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adcore/__init__.py +0 -0
  200. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adcore/_core_logic.py +0 -0
  201. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adcore/_single_trigger.py +0 -0
  202. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adkinetix/_kinetix.py +0 -0
  203. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adpilatus/__init__.py +0 -0
  204. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adpilatus/_pilatus.py +0 -0
  205. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adsimdetector/__init__.py +0 -0
  206. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/adsimdetector/_sim.py +0 -0
  207. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/advimba/_vimba.py +0 -0
  208. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/demo/__init__.py +0 -0
  209. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/demo/_mover.py +0 -0
  210. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/demo/mover.db +0 -0
  211. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/demo/sensor.db +0 -0
  212. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/eiger/__init__.py +0 -0
  213. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/epics/motor.py +0 -0
  214. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/__init__.py +0 -0
  215. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/odin/__init__.py +0 -0
  216. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/fastcs/panda/_utils.py +0 -0
  217. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/plan_stubs/__init__.py +0 -0
  218. /ophyd_async-0.7.0/src/ophyd_async/sim/__init__.py → /ophyd_async-0.8.0a2/src/ophyd_async/py.typed +0 -0
  219. {ophyd_async-0.7.0/src/ophyd_async/sim/testing → ophyd_async-0.8.0a2/src/ophyd_async/sim}/__init__.py +0 -0
  220. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/sim/demo/__init__.py +0 -0
  221. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/sim/demo/_pattern_detector/__init__.py +0 -0
  222. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/sim/demo/_pattern_detector/_pattern_detector.py +0 -0
  223. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/sim/demo/_pattern_detector/_pattern_detector_writer.py +0 -0
  224. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/sim/demo/_pattern_detector/_pattern_generator.py +0 -0
  225. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/sim/demo/_sim_motor.py +0 -0
  226. {ophyd_async-0.7.0/tests/sim → ophyd_async-0.8.0a2/src/ophyd_async/sim/testing}/__init__.py +0 -0
  227. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/base_devices/__init__.py +0 -0
  228. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/base_devices/_tango_readable.py +0 -0
  229. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/demo/__init__.py +0 -0
  230. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/demo/_detector.py +0 -0
  231. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/demo/_tango/__init__.py +0 -0
  232. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async/tango/demo/_tango/_servers.py +0 -0
  233. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async.egg-info/dependency_links.txt +0 -0
  234. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async.egg-info/entry_points.txt +0 -0
  235. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/src/ophyd_async.egg-info/top_level.txt +0 -0
  236. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/system_tests/epics/eiger/README.md +0 -0
  237. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/system_tests/epics/eiger/start_iocs_and_run_tests.sh +0 -0
  238. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/system_tests/epics/eiger/test_eiger_system.py +0 -0
  239. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/conftest.py +0 -0
  240. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_protocol.py +0 -0
  241. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/core/test_providers.py +0 -0
  242. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adcore/test_drivers.py +0 -0
  243. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adcore/test_scans.py +0 -0
  244. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/adpilatus/test_pilatus.py +0 -0
  245. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/epics/test_areadetector_subclass_naming.py +0 -0
  246. {ophyd_async-0.7.0/tests/sim/demo → ophyd_async-0.8.0a2/tests/sim}/__init__.py +0 -0
  247. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/sim/conftest.py +0 -0
  248. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/sim/demo/test_sim_motor.py +0 -0
  249. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/sim/test_pattern_generator.py +0 -0
  250. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/sim/test_sim_detector.py +0 -0
  251. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/sim/test_sim_writer.py +0 -0
  252. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/sim/test_streaming_plan.py +0 -0
  253. {ophyd_async-0.7.0 → ophyd_async-0.8.0a2}/tests/test_cli.py +0 -0
@@ -1,5 +1,5 @@
1
1
  # Changes here will be overwritten by Copier
2
- _commit: 2.3.0
2
+ _commit: 2.4.0
3
3
  _src_path: gh:DiamondLightSource/python-copier-template
4
4
  author_email: tom.cobb@diamond.ac.uk
5
5
  author_name: Tom Cobb
@@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
24
24
 
25
25
  This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
26
26
 
27
- For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/2.3.0/how-to.html).
27
+ For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/2.4.0/how-to.html).
@@ -15,3 +15,5 @@ jobs:
15
15
 
16
16
  - name: Publish to PyPI using trusted publishing
17
17
  uses: pypa/gh-action-pypi-publish@release/v1
18
+ with:
19
+ attestations: false
@@ -1,7 +1,7 @@
1
1
  # The devcontainer should use the developer target and run as root with podman
2
2
  # or docker with user namespaces.
3
3
  ARG PYTHON_VERSION=3.11
4
- FROM python:${PYTHON_VERSION} as developer
4
+ FROM python:${PYTHON_VERSION} AS developer
5
5
 
6
6
  # Allow Qt 6 (pyside6) UI to work in the container - also see apt-get below
7
7
  ENV MPLBACKEND=QtAgg
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ophyd-async
3
- Version: 0.7.0
3
+ Version: 0.8.0a2
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
@@ -41,12 +41,12 @@ Requires-Python: >=3.10
41
41
  Description-Content-Type: text/markdown
42
42
  License-File: LICENSE
43
43
  Requires-Dist: networkx>=2.0
44
- Requires-Dist: numpy<2.0.0
44
+ Requires-Dist: numpy
45
45
  Requires-Dist: packaging
46
46
  Requires-Dist: pint
47
- Requires-Dist: bluesky>=1.13.0a3
48
- Requires-Dist: event_model
49
- Requires-Dist: p4p
47
+ Requires-Dist: bluesky>=1.13
48
+ Requires-Dist: event-model>=1.22.1
49
+ Requires-Dist: p4p>=4.2.0a3
50
50
  Requires-Dist: pyyaml
51
51
  Requires-Dist: colorlog
52
52
  Requires-Dist: pydantic>=2.0
@@ -64,10 +64,6 @@ Requires-Dist: ophyd_async[pva]; extra == "dev"
64
64
  Requires-Dist: ophyd_async[sim]; extra == "dev"
65
65
  Requires-Dist: ophyd_async[ca]; extra == "dev"
66
66
  Requires-Dist: ophyd_async[tango]; extra == "dev"
67
- Requires-Dist: black; extra == "dev"
68
- Requires-Dist: flake8; extra == "dev"
69
- Requires-Dist: flake8-isort; extra == "dev"
70
- Requires-Dist: Flake8-pyproject; extra == "dev"
71
67
  Requires-Dist: inflection; extra == "dev"
72
68
  Requires-Dist: ipython; extra == "dev"
73
69
  Requires-Dist: ipywidgets; extra == "dev"
@@ -104,9 +100,9 @@ Requires-Dist: types-pyyaml; extra == "dev"
104
100
  [![CI](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml/badge.svg)](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml)
105
101
  [![Coverage](https://codecov.io/gh/bluesky/ophyd-async/branch/main/graph/badge.svg)](https://codecov.io/gh/bluesky/ophyd-async)
106
102
  [![PyPI](https://img.shields.io/pypi/v/ophyd-async.svg)](https://pypi.org/project/ophyd-async)
107
- [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
103
+ [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://choosealicense.com/licenses/bsd-3-clause)
108
104
 
109
- # ophyd-async
105
+ # ![ophyd-async](https://raw.githubusercontent.com/bluesky/ophyd-async/main/docs/images/ophyd-async-logo.svg)
110
106
 
111
107
  Asynchronous Bluesky hardware abstraction code, compatible with control systems like EPICS and Tango.
112
108
 
@@ -116,7 +112,7 @@ Asynchronous Bluesky hardware abstraction code, compatible with control systems
116
112
  | Documentation | <https://bluesky.github.io/ophyd-async> |
117
113
  | Releases | <https://github.com/bluesky/ophyd-async/releases> |
118
114
 
119
- Ophyd-async is a Python library for asynchronously interfacing with hardware, intended to
115
+ Ophyd-async is a Python library for asynchronously interfacing with hardware, intended to
120
116
  be used as an abstraction layer that enables experiment orchestration and data acquisition code to operate above the specifics of particular devices and control
121
117
  systems.
122
118
 
@@ -1,9 +1,9 @@
1
1
  [![CI](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml/badge.svg)](https://github.com/bluesky/ophyd-async/actions/workflows/ci.yml)
2
2
  [![Coverage](https://codecov.io/gh/bluesky/ophyd-async/branch/main/graph/badge.svg)](https://codecov.io/gh/bluesky/ophyd-async)
3
3
  [![PyPI](https://img.shields.io/pypi/v/ophyd-async.svg)](https://pypi.org/project/ophyd-async)
4
- [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
4
+ [![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://choosealicense.com/licenses/bsd-3-clause)
5
5
 
6
- # ophyd-async
6
+ # ![ophyd-async](https://raw.githubusercontent.com/bluesky/ophyd-async/main/docs/images/ophyd-async-logo.svg)
7
7
 
8
8
  Asynchronous Bluesky hardware abstraction code, compatible with control systems like EPICS and Tango.
9
9
 
@@ -13,7 +13,7 @@ Asynchronous Bluesky hardware abstraction code, compatible with control systems
13
13
  | Documentation | <https://bluesky.github.io/ophyd-async> |
14
14
  | Releases | <https://github.com/bluesky/ophyd-async/releases> |
15
15
 
16
- Ophyd-async is a Python library for asynchronously interfacing with hardware, intended to
16
+ Ophyd-async is a Python library for asynchronously interfacing with hardware, intended to
17
17
  be used as an abstraction layer that enables experiment orchestration and data acquisition code to operate above the specifics of particular devices and control
18
18
  systems.
19
19
 
@@ -188,9 +188,6 @@ if not switcher_exists:
188
188
  # will fix the switcher at the end of the docs workflow, but never gets a chance
189
189
  # to complete as the docs build warns and fails.
190
190
  html_theme_options = {
191
- "logo": {
192
- "text": project,
193
- },
194
191
  "use_edit_page_button": True,
195
192
  "github_url": f"https://github.com/{github_user}/{github_repo}",
196
193
  "icon_links": [
@@ -230,8 +227,8 @@ html_show_sphinx = False
230
227
  html_show_copyright = False
231
228
 
232
229
  # Logo
233
- html_logo = "images/bluesky_ophyd_logo.svg"
234
- html_favicon = "images/ophyd_favicon.svg"
230
+ html_logo = "images/ophyd-async-logo.svg"
231
+ html_favicon = "images/ophyd-favicon.svg"
235
232
 
236
233
  # If False and a module has the __all__ attribute set, autosummary documents
237
234
  # every member listed in __all__ and no others. Default is True
@@ -0,0 +1,159 @@
1
+ # 8. Settle on Signal Types
2
+ Date: 2024-10-18
3
+
4
+ ## Status
5
+
6
+ Accepted
7
+
8
+ ## Context
9
+
10
+ At present, soft Signals allow any sort of datatype, while CA, PVA, Tango restrict these to what the control system allows. This means that some soft signals when `describe()` is called on them will give `dtype=object` which is not understood by downstream tools. It also means that load/save will not necessarily understand how to serialize results. Finally we now require `dtype_numpy` for tiled, so arbitrary object types are not suitable even if they are serializable. We should restrict the datatypes allowed in Signals to objects that are serializable and are sensible to add support for in downstream tools.
11
+
12
+ ## Decision
13
+
14
+ We will allow the following:
15
+ - Primitives:
16
+ - `bool`
17
+ - `int`
18
+ - `float`
19
+ - `str`
20
+ - Enums:
21
+ - `StrictEnum` subclass which will be checked to have the same members as the CS
22
+ - `SubsetEnum` subclass which will be checked to be a subset of the CS members
23
+ - 1D arrays:
24
+ - `Array1D[np.bool_]`
25
+ - `Array1D[np.int8]`
26
+ - `Array1D[np.uint8]`
27
+ - `Array1D[np.int16]`
28
+ - `Array1D[np.uint16]`
29
+ - `Array1D[np.int32]`
30
+ - `Array1D[np.uint32]`
31
+ - `Array1D[np.int64]`
32
+ - `Array1D[np.uint64]`
33
+ - `Array1D[np.float32]`
34
+ - `Array1D[np.float64]`
35
+ - `Sequence[str]`
36
+ - `Sequence[MyEnum]` where `MyEnum` is a subclass of `StrictEnum` or `SubsetEnum`
37
+ - Specific structures:
38
+ - `np.ndarray` to represent arrays where dimensionality and dtype can change and must be read from CS
39
+ - `Table` subclass (which is a pydantic `BaseModel`) where all members are 1D arrays
40
+
41
+ ## Consequences
42
+
43
+ Clients will be expected to understand:
44
+ - Python primitives (with Enums serializing as strings)
45
+ - Numpy arrays
46
+ - Pydantic BaseModels
47
+
48
+ All of the above have sensible `dtype_numpy` fields, but `Table` will give a structured row-wise `dtype_numpy`, while the data will be serialized in a column-wise fashion.
49
+
50
+ The following breaking changes will be made to ophyd-async:
51
+
52
+ ## pvi structure changes
53
+ Structure now read from `.value` rather than `.pvi`. Supported in FastCS. Requires at least PandABlocks-ioc 0.10.0
54
+ ## `StrictEnum` is now requried for all strictly checked `Enums`
55
+ ```python
56
+ # old
57
+ from enum import Enum
58
+ class MyEnum(str, Enum):
59
+ ONE = "one"
60
+ TWO = "two"
61
+ # new
62
+ from ophyd_async.core import StrictEnum
63
+ class MyEnum(StrictEnum):
64
+ ONE = "one"
65
+ TWO = "two"
66
+ ```
67
+ ## `SubsetEnum` is now an `Enum` subclass:
68
+ ```python
69
+ from ophyd_async.core import SubsetEnum
70
+ # old
71
+ MySubsetEnum = SubsetEnum["one", "two"]
72
+ # new
73
+ class MySubsetEnum(SubsetEnum):
74
+ ONE = "one"
75
+ TWO = "two"
76
+ ```
77
+ ## Use python primitives for scalar types instead of numpy types
78
+ ```python
79
+ # old
80
+ import numpy as np
81
+ x = epics_signal_rw(np.int32, "PV")
82
+ # new
83
+ x = epics_signal_rw(int, "PV")
84
+ ```
85
+ ## Use `Array1D` for 1D arrays instead of `npt.NDArray`
86
+ ```python
87
+ import numpy as np
88
+ # old
89
+ import numpy.typing as npt
90
+ x = epics_signal_rw(npt.NDArray[np.int32], "PV")
91
+ # new
92
+ from ophyd_async.core import Array1D
93
+ x = epics_signal_rw(Array1D[np.int32], "PV")
94
+ ```
95
+ ## Use `Sequence[str]` for arrays of strings instead of `npt.NDArray[np.str_]`
96
+ ```python
97
+ import numpy as np
98
+ # old
99
+ import numpy.typing as npt
100
+ x = epics_signal_rw(npt.NDArray[np.str_], "PV")
101
+ # new
102
+ from collections.abc import Sequence
103
+ x = epics_signal_rw(Sequence[str], "PV")
104
+ ```
105
+ ## `MockSignalBackend` requires a real backend
106
+ ```python
107
+ # old
108
+ fake_set_signal = SignalRW(MockSignalBackend(float))
109
+ # new
110
+ fake_set_signal = soft_signal_rw(float)
111
+ await fake_set_signal.connect(mock=True)
112
+ ```
113
+ ## `get_mock_put` is no longer passed timeout as it is handled in `Signal`
114
+ ```python
115
+ # old
116
+ get_mock_put(driver.capture).assert_called_once_with(Writing.ON, wait=ANY, timeout=ANY)
117
+ # new
118
+ get_mock_put(driver.capture).assert_called_once_with(Writing.ON, wait=ANY)
119
+ ```
120
+ ## `super().__init__` required for `Device` subclasses
121
+ ```python
122
+ # old
123
+ class MyDevice(Device):
124
+ def __init__(self, name: str = ""):
125
+ self.signal, self.backend_put = soft_signal_r_and_setter(int)
126
+ # new
127
+ class MyDevice(Device):
128
+ def __init__(self, name: str = ""):
129
+ self.signal, self.backend_put = soft_signal_r_and_setter(int)
130
+ super().__init__(name=name)
131
+ ```
132
+ ## Arbitrary `BaseModel`s not supported, pending use cases for them
133
+ The `Table` type has been suitable for everything we have seen so far, if you need an arbitrary `BaseModel` subclass then please make an issue
134
+ ## Child `Device`s set parent on attach, and can't be public children of more than one parent
135
+ ```python
136
+ class SourceDevice(Device):
137
+ def __init__(self, name: str = ""):
138
+ self.signal = soft_signal_rw(int)
139
+ super().__init__(name=name)
140
+
141
+ # old
142
+ class ReferenceDevice(Device):
143
+ def __init__(self, signal: SignalRW[int], name: str = ""):
144
+ self.signal = signal
145
+ super().__init__(name=name)
146
+
147
+ def set(self, value) -> AsyncStatus:
148
+ return self.signal.set(value + 1)
149
+ # new
150
+ from ophyd_async.core import Reference
151
+
152
+ class ReferenceDevice(Device):
153
+ def __init__(self, signal: SignalRW[int], name: str = ""):
154
+ self._signal_ref = Reference(signal)
155
+ super().__init__(name=name)
156
+
157
+ def set(self, value) -> AsyncStatus:
158
+ return self._signal_ref().set(value + 1)
159
+ ```
@@ -1,6 +1,6 @@
1
1
  .. note::
2
2
 
3
- Ophyd async is included on a provisional basis until the v1.0 release and
3
+ Ophyd async is included on a provisional basis until the v1.0 release and
4
4
  may change API on minor release numbers before then
5
5
 
6
6
  Make a Simple Device
@@ -31,7 +31,7 @@ its Python type, which could be:
31
31
  - A primitive (`str`, `int`, `float`)
32
32
  - An array (`numpy.typing.NDArray` ie. ``numpy.typing.NDArray[numpy.uint16]`` or ``Sequence[str]``)
33
33
  - An enum (`enum.Enum`) which **must** also extend `str`
34
- - `str` and ``EnumClass(str, Enum)`` are the only valid ``datatype`` for an enumerated signal.
34
+ - `str` and ``EnumClass(StrictEnum)`` are the only valid ``datatype`` for an enumerated signal.
35
35
 
36
36
  The rest of the arguments are PV connection information, in this case the PV suffix.
37
37
 
@@ -45,7 +45,7 @@ Finally `super().__init__() <StandardReadable>` is called with:
45
45
  without renaming
46
46
 
47
47
  All signals passed into this init method will be monitored between ``stage()``
48
- and ``unstage()`` and their cached values returned on ``read()`` and
48
+ and ``unstage()`` and their cached values returned on ``read()`` and
49
49
  ``read_configuration()`` for perfomance.
50
50
 
51
51
  Movable
@@ -64,7 +64,7 @@ informing watchers of the progress. When it gets to the requested value it
64
64
  completes. This co-routine is wrapped in a timeout handler, and passed to an
65
65
  `AsyncStatus` which will start executing it as soon as the Run Engine adds a
66
66
  callback to it. The ``stop()`` method then pokes a PV if the move needs to be
67
- interrupted.
67
+ interrupted.
68
68
 
69
69
  Assembly
70
70
  --------