ophyd-async 0.10.0a1__tar.gz → 0.10.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 (294) hide show
  1. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/PKG-INFO +1 -1
  2. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/_version.py +1 -1
  3. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_derived_signal.py +1 -1
  4. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_table.py +4 -3
  5. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/_assert.py +21 -15
  6. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/_single_derived.py +2 -0
  7. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async.egg-info/PKG-INFO +1 -1
  8. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_signal.py +14 -0
  9. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.codecov.yml +0 -0
  10. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.copier-answers.yml +0 -0
  11. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.devcontainer/devcontainer.json +0 -0
  12. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.git-blame-ignore-revs +0 -0
  13. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/CONTRIBUTING.md +0 -0
  14. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  15. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/ISSUE_TEMPLATE/issue.md +0 -0
  16. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  17. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/actions/install_requirements/action.yml +0 -0
  18. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/codeql/codeql-config.yml +0 -0
  19. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/dependabot.yml +0 -0
  20. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/pages/index.html +0 -0
  21. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/pages/make_switcher.py +0 -0
  22. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_check.yml +0 -0
  23. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_codeql.yml +0 -0
  24. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_dist.yml +0 -0
  25. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_docs.yml +0 -0
  26. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_import_with_no_extras.yml +0 -0
  27. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_pypi.yml +0 -0
  28. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_release.yml +0 -0
  29. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_test.yml +0 -0
  30. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/_tox.yml +0 -0
  31. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/ci.yml +0 -0
  32. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.github/workflows/periodic.yml +0 -0
  33. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.gitignore +0 -0
  34. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/.pre-commit-config.yaml +0 -0
  35. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/Dockerfile +0 -0
  36. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/LICENSE +0 -0
  37. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/README.md +0 -0
  38. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/_static/custom.css +0 -0
  39. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/conf.py +0 -0
  40. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
  41. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
  42. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0003-ophyd-async-migration.rst +0 -0
  43. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0004-repository-structure.rst +0 -0
  44. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0005-respect-black-line-length.rst +0 -0
  45. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0006-procedural-device-definitions.rst +0 -0
  46. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0007-subpackage-structure.md +0 -0
  47. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0008-signal-types.md +0 -0
  48. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0009-procedural-vs-declarative-devices.md +0 -0
  49. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/0010-docstring-format.md +0 -0
  50. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions/COPYME +0 -0
  51. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/decisions.md +0 -0
  52. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/declarative-vs-procedural.md +0 -0
  53. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/design-goals.md +0 -0
  54. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/device-connection-strategies.md +0 -0
  55. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/devices-signals-backends.md +0 -0
  56. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/flyscanning.md +0 -0
  57. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations/where-device-logic.md +0 -0
  58. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/explanations.md +0 -0
  59. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/genindex.rst +0 -0
  60. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to/choose-right-baseclass.md +0 -0
  61. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to/contribute.md +0 -0
  62. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to/derive-one-signal-from-others.md +0 -0
  63. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to/implement-ad-detector.md +0 -0
  64. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to/interact-with-signals.md +0 -0
  65. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to/put-device-back.md +0 -0
  66. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to/store-and-retrieve.md +0 -0
  67. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/how-to.md +0 -0
  68. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/images/flyscan_collection_windows_and_frames.svg +0 -0
  69. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/images/ophyd-async-logo.svg +0 -0
  70. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/images/ophyd-favicon.svg +0 -0
  71. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/images/set_and_wait_for_other_value.excalidraw.svg +0 -0
  72. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/index.md +0 -0
  73. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/reference.md +0 -0
  74. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/tutorials/implementing-detectors.md +0 -0
  75. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/tutorials/implementing-devices.md +0 -0
  76. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/tutorials/installation.md +0 -0
  77. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/tutorials/using-devices.md +0 -0
  78. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/tutorials/writing-tests-for-devices.md +0 -0
  79. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/docs/tutorials.md +0 -0
  80. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/pyproject.toml +0 -0
  81. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/setup.cfg +0 -0
  82. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/__init__.py +0 -0
  83. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/__main__.py +0 -0
  84. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/_docs_parser.py +0 -0
  85. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/__init__.py +0 -0
  86. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_derived_signal_backend.py +0 -0
  87. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_detector.py +0 -0
  88. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_device.py +0 -0
  89. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_device_filler.py +0 -0
  90. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_flyer.py +0 -0
  91. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_hdf_dataset.py +0 -0
  92. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_log.py +0 -0
  93. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_mock_signal_backend.py +0 -0
  94. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_protocol.py +0 -0
  95. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_providers.py +0 -0
  96. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_readable.py +0 -0
  97. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_settings.py +0 -0
  98. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_signal.py +0 -0
  99. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_signal_backend.py +0 -0
  100. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_soft_signal_backend.py +0 -0
  101. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_status.py +0 -0
  102. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_utils.py +0 -0
  103. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/core/_yaml_settings.py +0 -0
  104. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/__init__.py +0 -0
  105. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adandor/__init__.py +0 -0
  106. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adandor/_andor.py +0 -0
  107. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adandor/_andor_controller.py +0 -0
  108. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adandor/_andor_io.py +0 -0
  109. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adaravis/__init__.py +0 -0
  110. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adaravis/_aravis.py +0 -0
  111. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adaravis/_aravis_controller.py +0 -0
  112. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adaravis/_aravis_io.py +0 -0
  113. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/__init__.py +0 -0
  114. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_core_detector.py +0 -0
  115. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_core_io.py +0 -0
  116. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_core_logic.py +0 -0
  117. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_core_writer.py +0 -0
  118. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_hdf_writer.py +0 -0
  119. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_jpeg_writer.py +0 -0
  120. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_single_trigger.py +0 -0
  121. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_tiff_writer.py +0 -0
  122. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adcore/_utils.py +0 -0
  123. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adkinetix/__init__.py +0 -0
  124. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adkinetix/_kinetix.py +0 -0
  125. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adkinetix/_kinetix_controller.py +0 -0
  126. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adkinetix/_kinetix_io.py +0 -0
  127. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adpilatus/__init__.py +0 -0
  128. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adpilatus/_pilatus.py +0 -0
  129. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adpilatus/_pilatus_controller.py +0 -0
  130. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adpilatus/_pilatus_io.py +0 -0
  131. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adsimdetector/__init__.py +0 -0
  132. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adsimdetector/_sim.py +0 -0
  133. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adsimdetector/_sim_controller.py +0 -0
  134. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/adsimdetector/_sim_io.py +0 -0
  135. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/advimba/__init__.py +0 -0
  136. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/advimba/_vimba.py +0 -0
  137. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/advimba/_vimba_controller.py +0 -0
  138. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/advimba/_vimba_io.py +0 -0
  139. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/__init__.py +0 -0
  140. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/_aioca.py +0 -0
  141. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/_epics_connector.py +0 -0
  142. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/_epics_device.py +0 -0
  143. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/_p4p.py +0 -0
  144. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/_pvi_connector.py +0 -0
  145. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/_signal.py +0 -0
  146. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/core/_util.py +0 -0
  147. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/__init__.py +0 -0
  148. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/__main__.py +0 -0
  149. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/_ioc.py +0 -0
  150. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/_motor.py +0 -0
  151. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/_point_detector.py +0 -0
  152. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/_point_detector_channel.py +0 -0
  153. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/_stage.py +0 -0
  154. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/motor.db +0 -0
  155. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/point_detector.db +0 -0
  156. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/demo/point_detector_channel.db +0 -0
  157. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/eiger/__init__.py +0 -0
  158. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/eiger/_eiger.py +0 -0
  159. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/eiger/_eiger_controller.py +0 -0
  160. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/eiger/_eiger_io.py +0 -0
  161. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/eiger/_odin_io.py +0 -0
  162. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/motor.py +0 -0
  163. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/signal.py +0 -0
  164. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/testing/__init__.py +0 -0
  165. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/testing/_example_ioc.py +0 -0
  166. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/testing/_utils.py +0 -0
  167. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/testing/test_records.db +0 -0
  168. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/epics/testing/test_records_pva.db +0 -0
  169. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/__init__.py +0 -0
  170. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/core.py +0 -0
  171. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/odin/__init__.py +0 -0
  172. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/panda/__init__.py +0 -0
  173. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/panda/_block.py +0 -0
  174. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/panda/_control.py +0 -0
  175. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/panda/_hdf_panda.py +0 -0
  176. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/panda/_table.py +0 -0
  177. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/panda/_trigger.py +0 -0
  178. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/fastcs/panda/_writer.py +0 -0
  179. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/__init__.py +0 -0
  180. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/_ensure_connected.py +0 -0
  181. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/_fly.py +0 -0
  182. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/_nd_attributes.py +0 -0
  183. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/_panda.py +0 -0
  184. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/_settings.py +0 -0
  185. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/_utils.py +0 -0
  186. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/plan_stubs/_wait_for_awaitable.py +0 -0
  187. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/py.typed +0 -0
  188. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/__init__.py +0 -0
  189. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/__main__.py +0 -0
  190. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_blob_detector.py +0 -0
  191. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_blob_detector_controller.py +0 -0
  192. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_blob_detector_writer.py +0 -0
  193. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_mirror_horizontal.py +0 -0
  194. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_mirror_vertical.py +0 -0
  195. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_motor.py +0 -0
  196. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_pattern_generator.py +0 -0
  197. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_point_detector.py +0 -0
  198. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/sim/_stage.py +0 -0
  199. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/__init__.py +0 -0
  200. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/core/__init__.py +0 -0
  201. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/core/_base_device.py +0 -0
  202. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/core/_converters.py +0 -0
  203. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/core/_signal.py +0 -0
  204. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/core/_tango_readable.py +0 -0
  205. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/core/_tango_transport.py +0 -0
  206. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/core/_utils.py +0 -0
  207. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/demo/__init__.py +0 -0
  208. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/demo/_counter.py +0 -0
  209. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/demo/_detector.py +0 -0
  210. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/demo/_mover.py +0 -0
  211. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/demo/_tango/__init__.py +0 -0
  212. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/demo/_tango/_servers.py +0 -0
  213. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/testing/__init__.py +0 -0
  214. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/tango/testing/_one_of_everything.py +0 -0
  215. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/__init__.py +0 -0
  216. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/__pytest_assert_rewrite.py +0 -0
  217. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/_mock_signal_utils.py +0 -0
  218. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/_one_of_everything.py +0 -0
  219. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/_utils.py +0 -0
  220. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async/testing/_wait_for_pending.py +0 -0
  221. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async.egg-info/SOURCES.txt +0 -0
  222. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async.egg-info/dependency_links.txt +0 -0
  223. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async.egg-info/requires.txt +0 -0
  224. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/src/ophyd_async.egg-info/top_level.txt +0 -0
  225. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/system_tests/epics/eiger/README.md +0 -0
  226. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/system_tests/epics/eiger/start_iocs_and_run_tests.sh +0 -0
  227. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/system_tests/epics/eiger/test_eiger_system.py +0 -0
  228. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/conftest.py +0 -0
  229. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_auto_init_devices.py +0 -0
  230. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_detector.py +0 -0
  231. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_device.py +0 -0
  232. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_flyer.py +0 -0
  233. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_log.py +0 -0
  234. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_mock_signal_backend.py +0 -0
  235. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_multi_derived_signal.py +0 -0
  236. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_observe.py +0 -0
  237. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_protocol.py +0 -0
  238. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_providers.py +0 -0
  239. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_readable.py +0 -0
  240. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_single_derived_signal.py +0 -0
  241. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_soft_signal_backend.py +0 -0
  242. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_status.py +0 -0
  243. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_subset_enum.py +0 -0
  244. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_table.py +0 -0
  245. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_utils.py +0 -0
  246. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/core/test_watchable_async_status.py +0 -0
  247. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adandor/test_andor.py +0 -0
  248. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adaravis/test_aravis.py +0 -0
  249. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adcore/test_cont_acq_detector.py +0 -0
  250. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adcore/test_detectors.py +0 -0
  251. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adcore/test_drivers.py +0 -0
  252. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adcore/test_scans.py +0 -0
  253. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adcore/test_single_trigger.py +0 -0
  254. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adcore/test_writers.py +0 -0
  255. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adkinetix/test_kinetix.py +0 -0
  256. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adpilatus/test_pilatus.py +0 -0
  257. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/adsimdetector/test_sim.py +0 -0
  258. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/advimba/test_vimba.py +0 -0
  259. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/conftest.py +0 -0
  260. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/demo/test_epics_demo.py +0 -0
  261. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/eiger/test_eiger_controller.py +0 -0
  262. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/eiger/test_eiger_detector.py +0 -0
  263. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/eiger/test_odin_io.py +0 -0
  264. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/pvi/test_pvi.py +0 -0
  265. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/signal/test_common.py +0 -0
  266. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/signal/test_signals.py +0 -0
  267. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/signal/test_yaml_save_ca.yaml +0 -0
  268. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/signal/test_yaml_save_pva.yaml +0 -0
  269. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/test_areadetector_subclass_naming.py +0 -0
  270. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/epics/test_motor.py +0 -0
  271. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/db/panda.db +0 -0
  272. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/test_hdf_panda.py +0 -0
  273. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/test_panda_connect.py +0 -0
  274. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/test_panda_control.py +0 -0
  275. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/test_panda_utils.py +0 -0
  276. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/test_seq_table.py +0 -0
  277. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/test_trigger.py +0 -0
  278. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/fastcs/panda/test_writer.py +0 -0
  279. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/plan_stubs/test_ensure_connected.py +0 -0
  280. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/plan_stubs/test_fly.py +0 -0
  281. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/plan_stubs/test_settings.py +0 -0
  282. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/plan_stubs/test_setup.py +0 -0
  283. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/sim/__init__.py +0 -0
  284. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/sim/test_sim_blob_detector.py +0 -0
  285. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/sim/test_sim_motor.py +0 -0
  286. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/tango/conftest.py +0 -0
  287. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/tango/context_subprocess.py +0 -0
  288. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/tango/test_base_device.py +0 -0
  289. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/tango/test_tango_signals.py +0 -0
  290. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/tango/test_tango_transport.py +0 -0
  291. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/test_cli.py +0 -0
  292. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/test_data/test_yaml_config_save.yaml +0 -0
  293. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/test_data/test_yaml_save.yaml +0 -0
  294. {ophyd_async-0.10.0a1 → ophyd_async-0.10.0a2}/tests/test_tutorials.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ophyd-async
3
- Version: 0.10.0a1
3
+ Version: 0.10.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
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.10.0a1'
20
+ __version__ = version = '0.10.0a2'
21
21
  __version_tuple__ = version_tuple = (0, 10, 0)
@@ -173,7 +173,7 @@ def _make_factory(
173
173
 
174
174
  # Update the signature for raw_to_derived to match what we are passed as this
175
175
  # will be checked in DerivedSignalFactory
176
- DerivedTransform.raw_to_derived.__annotations__ = raw_to_derived.__annotations__
176
+ DerivedTransform.raw_to_derived.__annotations__ = get_type_hints(raw_to_derived)
177
177
 
178
178
  return DerivedSignalFactory(
179
179
  DerivedTransform, set_derived=set_derived, **(raw_devices or {})
@@ -93,18 +93,19 @@ class Table(BaseModel):
93
93
 
94
94
  def __add__(self, right: TableSubclass) -> TableSubclass:
95
95
  """Concatenate the arrays in field values."""
96
- if type(right) is not type(self):
96
+ cls = type(right)
97
+ if type(self) is not cls:
97
98
  raise RuntimeError(
98
99
  f"{right} is not a `Table`, or is not the same "
99
100
  f"type of `Table` as {self}."
100
101
  )
101
102
 
102
- return type(right)(
103
+ return cls(
103
104
  **{
104
105
  field_name: _concat(
105
106
  getattr(self, field_name), getattr(right, field_name)
106
107
  )
107
- for field_name in self.model_fields
108
+ for field_name in cls.model_fields
108
109
  }
109
110
  )
110
111
 
@@ -1,6 +1,7 @@
1
1
  import asyncio
2
+ from collections.abc import Mapping
2
3
  from contextlib import AbstractContextManager
3
- from typing import Any
4
+ from typing import Any, cast
4
5
  from unittest.mock import Mock, call
5
6
 
6
7
  import pytest
@@ -43,7 +44,7 @@ async def assert_value(signal: SignalR[SignalDatatypeT], value: Any) -> None:
43
44
 
44
45
  async def assert_reading(
45
46
  readable: AsyncReadable,
46
- expected_reading: dict[str, dict[str, Any]],
47
+ expected_reading: Mapping[str, Mapping[str, Any]],
47
48
  ) -> None:
48
49
  """Assert that a readable Device has the given reading.
49
50
 
@@ -54,20 +55,25 @@ async def assert_reading(
54
55
  _assert_readings_approx_equal(expected_reading, actual_reading)
55
56
 
56
57
 
57
- def _assert_readings_approx_equal(expected, actual):
58
- assert expected.keys() == actual.keys()
59
- approx_expected_reading = {
60
- k: dict(
61
- v,
62
- value=approx_value(v["value"]),
63
- timestamp=pytest.approx(v["timestamp"], rel=0.1)
64
- if "timestamp" in v
65
- else actual[k]["timestamp"],
66
- alarm_severity=v.get("alarm_severity", actual[k]["alarm_severity"]),
67
- )
68
- for k, v in expected.items()
58
+ def _approx_reading(expected: Mapping[str, Any], actual: Reading) -> Reading:
59
+ ret = dict(
60
+ expected,
61
+ value=approx_value(expected["value"]),
62
+ timestamp=pytest.approx(expected["timestamp"], rel=0.1)
63
+ if "timestamp" in expected
64
+ else actual["timestamp"],
65
+ )
66
+ if "alarm_severity" in actual and "alarm_severity" not in expected:
67
+ ret["alarm_severity"] = actual["alarm_severity"]
68
+ return cast(Reading, ret)
69
+
70
+
71
+ def _assert_readings_approx_equal(
72
+ expected: Mapping[str, Mapping[str, Any]], actual: Mapping[str, Reading]
73
+ ):
74
+ assert actual == {
75
+ k: _approx_reading(v, actual[k]) for k, v in expected.items() if k in actual
69
76
  }
70
- assert actual == approx_expected_reading
71
77
 
72
78
 
73
79
  async def assert_configuration(
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import asyncio
2
4
 
3
5
  from ophyd_async.core import (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ophyd-async
3
- Version: 0.10.0a1
3
+ Version: 0.10.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
@@ -10,9 +10,12 @@ import numpy as np
10
10
  import numpy.typing as npt
11
11
  import pytest
12
12
  from bluesky.protocols import Reading
13
+ from event_model import DataKey
13
14
 
14
15
  from ophyd_async.core import (
15
16
  Array1D,
17
+ AsyncReadable,
18
+ Device,
16
19
  SignalR,
17
20
  SignalRW,
18
21
  SoftSignalBackend,
@@ -801,6 +804,17 @@ async def test_failed_assert_reading(
801
804
  await assert_reading(mock_readable, dummy_reading)
802
805
 
803
806
 
807
+ async def test_assert_reading_without_severity():
808
+ class Thing(Device, AsyncReadable):
809
+ async def describe(self) -> dict[str, DataKey]:
810
+ return {}
811
+
812
+ async def read(self) -> dict[str, Reading]:
813
+ return {"foo": {"value": 42, "timestamp": 0.1}}
814
+
815
+ await assert_reading(Thing(), {"foo": {"value": 42}})
816
+
817
+
804
818
  async def test_assert_configuration(mock_readable: DummyReadableArray):
805
819
  set_mock_value(mock_readable.str_value, "haha")
806
820
  set_mock_value(mock_readable.strictEnum_value, MockEnum.GOOD)
File without changes
File without changes
File without changes