ophyd-async 0.9.0a1__py3-none-any.whl → 0.9.0a2__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 (97) hide show
  1. ophyd_async/_version.py +1 -1
  2. ophyd_async/core/__init__.py +13 -20
  3. ophyd_async/core/_detector.py +61 -37
  4. ophyd_async/core/_device.py +102 -80
  5. ophyd_async/core/_device_filler.py +17 -8
  6. ophyd_async/core/_flyer.py +2 -2
  7. ophyd_async/core/_readable.py +30 -23
  8. ophyd_async/core/_settings.py +104 -0
  9. ophyd_async/core/_signal.py +55 -17
  10. ophyd_async/core/_signal_backend.py +4 -1
  11. ophyd_async/core/_soft_signal_backend.py +2 -1
  12. ophyd_async/core/_table.py +18 -10
  13. ophyd_async/core/_utils.py +5 -3
  14. ophyd_async/core/_yaml_settings.py +64 -0
  15. ophyd_async/epics/adandor/__init__.py +9 -0
  16. ophyd_async/epics/adandor/_andor.py +45 -0
  17. ophyd_async/epics/adandor/_andor_controller.py +49 -0
  18. ophyd_async/epics/adandor/_andor_io.py +36 -0
  19. ophyd_async/epics/adaravis/__init__.py +3 -1
  20. ophyd_async/epics/adaravis/_aravis.py +23 -37
  21. ophyd_async/epics/adaravis/_aravis_controller.py +13 -22
  22. ophyd_async/epics/adcore/__init__.py +15 -8
  23. ophyd_async/epics/adcore/_core_detector.py +41 -0
  24. ophyd_async/epics/adcore/_core_io.py +35 -10
  25. ophyd_async/epics/adcore/_core_logic.py +98 -86
  26. ophyd_async/epics/adcore/_core_writer.py +219 -0
  27. ophyd_async/epics/adcore/_hdf_writer.py +38 -62
  28. ophyd_async/epics/adcore/_jpeg_writer.py +26 -0
  29. ophyd_async/epics/adcore/_single_trigger.py +4 -3
  30. ophyd_async/epics/adcore/_tiff_writer.py +26 -0
  31. ophyd_async/epics/adcore/_utils.py +2 -1
  32. ophyd_async/epics/adkinetix/_kinetix.py +29 -24
  33. ophyd_async/epics/adkinetix/_kinetix_controller.py +9 -21
  34. ophyd_async/epics/adpilatus/__init__.py +2 -2
  35. ophyd_async/epics/adpilatus/_pilatus.py +27 -39
  36. ophyd_async/epics/adpilatus/_pilatus_controller.py +44 -22
  37. ophyd_async/epics/adsimdetector/__init__.py +3 -3
  38. ophyd_async/epics/adsimdetector/_sim.py +33 -17
  39. ophyd_async/epics/advimba/_vimba.py +23 -23
  40. ophyd_async/epics/advimba/_vimba_controller.py +10 -24
  41. ophyd_async/epics/core/_aioca.py +31 -14
  42. ophyd_async/epics/core/_p4p.py +40 -16
  43. ophyd_async/epics/core/_util.py +1 -1
  44. ophyd_async/epics/motor.py +18 -10
  45. ophyd_async/epics/sim/_ioc.py +29 -0
  46. ophyd_async/epics/{demo → sim}/_mover.py +10 -4
  47. ophyd_async/epics/testing/__init__.py +14 -14
  48. ophyd_async/epics/testing/_example_ioc.py +48 -65
  49. ophyd_async/epics/testing/_utils.py +17 -45
  50. ophyd_async/epics/testing/test_records.db +8 -0
  51. ophyd_async/fastcs/panda/__init__.py +0 -2
  52. ophyd_async/fastcs/panda/_control.py +7 -2
  53. ophyd_async/fastcs/panda/_hdf_panda.py +3 -1
  54. ophyd_async/fastcs/panda/_table.py +4 -1
  55. ophyd_async/plan_stubs/__init__.py +14 -0
  56. ophyd_async/plan_stubs/_ensure_connected.py +11 -17
  57. ophyd_async/plan_stubs/_fly.py +1 -1
  58. ophyd_async/plan_stubs/_nd_attributes.py +7 -5
  59. ophyd_async/plan_stubs/_panda.py +13 -0
  60. ophyd_async/plan_stubs/_settings.py +125 -0
  61. ophyd_async/plan_stubs/_wait_for_awaitable.py +13 -0
  62. ophyd_async/sim/__init__.py +19 -0
  63. ophyd_async/sim/{demo/_pattern_detector → _pattern_detector}/_pattern_detector_controller.py +9 -2
  64. ophyd_async/sim/{demo/_pattern_detector → _pattern_detector}/_pattern_generator.py +13 -6
  65. ophyd_async/tango/core/_signal.py +3 -1
  66. ophyd_async/tango/core/_tango_transport.py +12 -14
  67. ophyd_async/tango/{demo → sim}/_mover.py +5 -2
  68. ophyd_async/testing/__init__.py +19 -0
  69. ophyd_async/testing/__pytest_assert_rewrite.py +4 -0
  70. ophyd_async/testing/_assert.py +88 -40
  71. ophyd_async/testing/_mock_signal_utils.py +3 -3
  72. ophyd_async/testing/_one_of_everything.py +126 -0
  73. {ophyd_async-0.9.0a1.dist-info → ophyd_async-0.9.0a2.dist-info}/METADATA +2 -2
  74. ophyd_async-0.9.0a2.dist-info/RECORD +129 -0
  75. {ophyd_async-0.9.0a1.dist-info → ophyd_async-0.9.0a2.dist-info}/WHEEL +1 -1
  76. ophyd_async/core/_device_save_loader.py +0 -274
  77. ophyd_async/epics/adsimdetector/_sim_controller.py +0 -51
  78. ophyd_async/fastcs/panda/_utils.py +0 -16
  79. ophyd_async/sim/demo/__init__.py +0 -19
  80. ophyd_async/sim/testing/__init__.py +0 -0
  81. ophyd_async-0.9.0a1.dist-info/RECORD +0 -119
  82. ophyd_async-0.9.0a1.dist-info/entry_points.txt +0 -2
  83. /ophyd_async/epics/{demo → sim}/__init__.py +0 -0
  84. /ophyd_async/epics/{demo → sim}/_sensor.py +0 -0
  85. /ophyd_async/epics/{demo → sim}/mover.db +0 -0
  86. /ophyd_async/epics/{demo → sim}/sensor.db +0 -0
  87. /ophyd_async/sim/{demo/_pattern_detector → _pattern_detector}/__init__.py +0 -0
  88. /ophyd_async/sim/{demo/_pattern_detector → _pattern_detector}/_pattern_detector.py +0 -0
  89. /ophyd_async/sim/{demo/_pattern_detector → _pattern_detector}/_pattern_detector_writer.py +0 -0
  90. /ophyd_async/sim/{demo/_sim_motor.py → _sim_motor.py} +0 -0
  91. /ophyd_async/tango/{demo → sim}/__init__.py +0 -0
  92. /ophyd_async/tango/{demo → sim}/_counter.py +0 -0
  93. /ophyd_async/tango/{demo → sim}/_detector.py +0 -0
  94. /ophyd_async/tango/{demo → sim}/_tango/__init__.py +0 -0
  95. /ophyd_async/tango/{demo → sim}/_tango/_servers.py +0 -0
  96. {ophyd_async-0.9.0a1.dist-info → ophyd_async-0.9.0a2.dist-info}/LICENSE +0 -0
  97. {ophyd_async-0.9.0a1.dist-info → ophyd_async-0.9.0a2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: ophyd-async
3
- Version: 0.9.0a1
3
+ Version: 0.9.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
@@ -0,0 +1,129 @@
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=WoGvWoWzvgTP0yQKepGyKWmDn7k5WHXOtFan55CTGSc,413
4
+ ophyd_async/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ ophyd_async/core/__init__.py,sha256=jNna-9AJLt9ZLpkjnNpE1im8Kv_IT5t4ftjsRMrVcgI,3739
6
+ ophyd_async/core/_detector.py,sha256=ZpoBmTmPqrOQZ8Y8zyMmsHz78VJVeAcZU7AHrdQf8lM,15241
7
+ ophyd_async/core/_device.py,sha256=OZlz4xeVvqM3l85OBXYpcv47TTe6HiahDLu4LNKaw9o,13731
8
+ ophyd_async/core/_device_filler.py,sha256=8pxE-TjWM4fyidE_GAZNw9tEaZKYV-sFTBuQUzJ_sfk,11796
9
+ ophyd_async/core/_flyer.py,sha256=PmVikIGaw_HcU9_M6rfQOclgNt7GQ7qNaZX_AoI9WFg,1713
10
+ ophyd_async/core/_hdf_dataset.py,sha256=wW_OL8OYLGOsE01ny3hGaapOrxK7BzhWTxKgz8CIXK0,2492
11
+ ophyd_async/core/_log.py,sha256=UbL9AtnHVUg7r9LofzgmuKEtBESy03usCp7ejmDltG4,3679
12
+ ophyd_async/core/_mock_signal_backend.py,sha256=8Upnz6QrSigeDXemjZ-jB4sV2yIPUzid-6GOfTZ-7Io,2805
13
+ ophyd_async/core/_protocol.py,sha256=0pwF_EUu7LZjr-Hg6LKy6B1-5y4gpsU81JsPiNI5g_s,3317
14
+ ophyd_async/core/_providers.py,sha256=ff9ZT5-PZ6rhTTdE-q8w9l_k9DuZqLWLebsKZLeJ0Ds,7112
15
+ ophyd_async/core/_readable.py,sha256=DNst8B6Yai2A4TLjn3TMUzhBz6cS7MqT6-hPZG1IXns,10938
16
+ ophyd_async/core/_settings.py,sha256=RGr9MqiF9ifKBBVIAXPLvkHzrJ5qGqFW5Hr_GL1WzdY,3707
17
+ ophyd_async/core/_signal.py,sha256=uPv4kKD_SOggRTdHNrQusGU2nJdWTJenRuLsPdEgE-4,21856
18
+ ophyd_async/core/_signal_backend.py,sha256=LweJnF3n5cucpBX8XV20Pbh0k5pBnXhMg3GQeTwK9Ns,5252
19
+ ophyd_async/core/_soft_signal_backend.py,sha256=IJp2Teu8WGRG9To6PBmkp_sVOlxh_vfLbJYkKop9zZg,5959
20
+ ophyd_async/core/_status.py,sha256=OUKhblRQ4KU5PDsWbpvYduM7G60JMk1NqeV4eqyPtKc,5131
21
+ ophyd_async/core/_table.py,sha256=BSlLrgYA2rAeJl5J1bdZvGDB-YFqXUIUMiAtCWcy0xw,5897
22
+ ophyd_async/core/_utils.py,sha256=EIgbR5weOSBoRd75mxGZqWHx2qj8uPbIl5NuE9_mKSo,9925
23
+ ophyd_async/core/_yaml_settings.py,sha256=nfnebGXrnLKJgzd5D9In3ZPi2hATsgrehjrR0XRHTsk,2022
24
+ ophyd_async/epics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ ophyd_async/epics/motor.py,sha256=Sz3bxIKxxlCd8r-25eZgF81QvoetKPY0At8d4h0yi7Q,9352
26
+ ophyd_async/epics/signal.py,sha256=hJCGIIWjRVhjEHkeL1I_oPEaaN7dDFKmm7G7ZmgoTYQ,219
27
+ ophyd_async/epics/adandor/__init__.py,sha256=qsBoZdljSaqM-kJSvTf0uq5TNwXAih9lP3yOZpKxOFQ,204
28
+ ophyd_async/epics/adandor/_andor.py,sha256=lrTyYTBjs_4f4K_Te0Wwt9je2OMofShpeZt52xtM2ho,1285
29
+ ophyd_async/epics/adandor/_andor_controller.py,sha256=MYnpi1-yGIW1SG9oOEL08o8dbr2PiZilHcGgEVYHfzM,1712
30
+ ophyd_async/epics/adandor/_andor_io.py,sha256=taRJXTISVG_yzFxKr78Cfxv-wOdGxp-pjP15xM2Pu04,1029
31
+ ophyd_async/epics/adaravis/__init__.py,sha256=B7xOTKud0TIZRQ-gI_BpX1piRW2jCdAspMqAgBUXKVc,299
32
+ ophyd_async/epics/adaravis/_aravis.py,sha256=WUCS5JMe-eSBSmw_LyLtz3x8FYgKkipJ0pVjRF5OF5w,1449
33
+ ophyd_async/epics/adaravis/_aravis_controller.py,sha256=8yMnZtvcfEIoq6iv4jrdPxuLPyjHbijIzjoYri0qj6o,2579
34
+ ophyd_async/epics/adaravis/_aravis_io.py,sha256=_RViDrTDaTutitRbHlJ5VV23X70lvfhyY3DTzgXy6yI,1603
35
+ ophyd_async/epics/adcore/__init__.py,sha256=bB7V1pdNpFH1pkCsym6jYtHchvqMYXWisbRrcmHH7Ks,1217
36
+ ophyd_async/epics/adcore/_core_detector.py,sha256=-c5FDeMTJWniogtiyA9-8Yu67e7UgZjC7QBj8iwbU5U,1258
37
+ ophyd_async/epics/adcore/_core_io.py,sha256=VNlpOL7cN8hExk_cIeushgDrUwDz33gm0K4iSpNB15w,6956
38
+ ophyd_async/epics/adcore/_core_logic.py,sha256=wevdDKYcoXiwAxchb__KjAPNtJe2g8Z6k9OzzGzP9p8,4356
39
+ ophyd_async/epics/adcore/_core_writer.py,sha256=JuEe4INxHW5SC37orhh8Q0sbI3RUdX1kaa0f2536Gr4,8010
40
+ ophyd_async/epics/adcore/_hdf_writer.py,sha256=tWOgbY4a9afD5QhyhR4lfzdJm1qCPFU2UpJ-OYNRPRg,6000
41
+ ophyd_async/epics/adcore/_jpeg_writer.py,sha256=DFv3YdqKjNq0QCb-bLBlxTaGzmHSvdU_rLB29beI46w,748
42
+ ophyd_async/epics/adcore/_single_trigger.py,sha256=OGgZCQnicHr6IZ69nHCwzlA4YLUo3O-Zkgl6fQTZ0eg,1271
43
+ ophyd_async/epics/adcore/_tiff_writer.py,sha256=5WXdW0thL9nv2jSMSqF-bMGQjztQZEnx3enY-nGsLiY,749
44
+ ophyd_async/epics/adcore/_utils.py,sha256=EDHbtldcae701sovFmhBPr_uKo7Hh34-AHq2sk7aL_U,3948
45
+ ophyd_async/epics/adkinetix/__init__.py,sha256=cvnwOqbvEENf70eFp6bPGwayP0u14UTIhs3WiZEcF_Q,262
46
+ ophyd_async/epics/adkinetix/_kinetix.py,sha256=uTbkeDyveCayrtrLNw2ENmCZ7XQ8wwLLeUSdu76AmSE,1305
47
+ ophyd_async/epics/adkinetix/_kinetix_controller.py,sha256=PjZ6fWvzGdh0zBa8re55vmHElI-d3LTjKldYpCkMYyY,1438
48
+ ophyd_async/epics/adkinetix/_kinetix_io.py,sha256=3zqfmoTCTkhd7kiqD4wiYrnu5EADzzegaCRJFBaZuVk,910
49
+ ophyd_async/epics/adpilatus/__init__.py,sha256=UKpd8qRRbFFhCo8fgUwPHqIobNVA-i_3fyvZoac_Ms0,308
50
+ ophyd_async/epics/adpilatus/_pilatus.py,sha256=0iA9Yrm-qJ73CC0W_y8F7tpVaaJL-1KHVlU-4kU59a8,1510
51
+ ophyd_async/epics/adpilatus/_pilatus_controller.py,sha256=Udq3Z8Gom4HgKUFXBMvWFTFoc4JLyp89YfvlA9N9q-8,3701
52
+ ophyd_async/epics/adpilatus/_pilatus_io.py,sha256=Jznmhwidmr_YaUdWXazWFYNQq4wn_sI1dXeo9Zhyf0M,738
53
+ ophyd_async/epics/adsimdetector/__init__.py,sha256=2TLBnXxEb1Ik1rFA3voROgbmnPPn_6q_8xLxwykdZPs,132
54
+ ophyd_async/epics/adsimdetector/_sim.py,sha256=-aPpU7xlT4ykgHzpFVN_LKgBbU6ptAdaMX1TCJd__h0,1425
55
+ ophyd_async/epics/advimba/__init__.py,sha256=l0ElP3Zyff_pzrTRdj9oUO9xigCfmzo3pMVjstlVsJY,320
56
+ ophyd_async/epics/advimba/_vimba.py,sha256=1ccSakYY4J-5dSw8Ttzvf4HzRk0hSrpOjAgkMfHGHOU,1201
57
+ ophyd_async/epics/advimba/_vimba_controller.py,sha256=NW_QNxTTWjiGmZNZY_nNcdZlOCfgOhZ3U0GcQzAZw8g,1937
58
+ ophyd_async/epics/advimba/_vimba_io.py,sha256=il-SZSiApx5OUQCYHUGoa0Ywu9pY01DSDvOttU15khQ,1864
59
+ ophyd_async/epics/core/__init__.py,sha256=8NoQxEEc2Ny_L9nrD2fnGSf_2gJr1wCR1LwUeLNcIJo,588
60
+ ophyd_async/epics/core/_aioca.py,sha256=Fg2g9OUWcS2ebFt3TtLET7Yr44RRLbhpRk0t6WENyiI,12046
61
+ ophyd_async/epics/core/_epics_connector.py,sha256=n1FlQYui8HdobPxaX3VAflrzi2UT7QCe3cFasssmVLw,1789
62
+ ophyd_async/epics/core/_epics_device.py,sha256=kshNiKQhevsL2OZXa-r093L_sQGvGK_0J4PWVLg3Eqw,437
63
+ ophyd_async/epics/core/_p4p.py,sha256=axxV8iKpFJl9fNEW54IkXz32ki6_IOcilwnxQFnb0Vo,16169
64
+ ophyd_async/epics/core/_pvi_connector.py,sha256=wi9PiiWtWWE8mlHAfgDd6zKHvXn35E5DaqDvk4k5KD0,3755
65
+ ophyd_async/epics/core/_signal.py,sha256=0_g2dd60tUl1inEY9hUQvWrEka4uvNW8hylrhnB76Q8,4842
66
+ ophyd_async/epics/core/_util.py,sha256=kSTjrVZQA1mb2RbTaiVgBKleDMJtRdC2vRcQMgHwoRg,2062
67
+ ophyd_async/epics/eiger/__init__.py,sha256=b3Tt4pVLk23Giyj50R4e94d2MxWDDmNHWhWwNq2jlaw,221
68
+ ophyd_async/epics/eiger/_eiger.py,sha256=hkMsjVwrzDcE1u5BRIQtn8RSR2e0b1JMpDvuIONoNaI,1133
69
+ ophyd_async/epics/eiger/_eiger_controller.py,sha256=ZJGTwSjQam15mtgG4GQ9nPNv_cA-lSLMFgTMkTK79Gg,2343
70
+ ophyd_async/epics/eiger/_eiger_io.py,sha256=qTBT0SebqzlcNXtLQywSoTmAbVC2wl4i0Wn2fbcEISM,1806
71
+ ophyd_async/epics/eiger/_odin_io.py,sha256=3E33ysvMlf8t0bbSVPnzUrvPgUwA7491uoViWpivpf8,4153
72
+ ophyd_async/epics/sim/__init__.py,sha256=wCrgemEo-zR4TTvaqCKnQ-AIUHorotV5jhftbq1tXz0,1368
73
+ ophyd_async/epics/sim/_ioc.py,sha256=izVXHEpsk2bRF67EdUoghsGL-PxGuKtSuaJJSS-ySpo,926
74
+ ophyd_async/epics/sim/_mover.py,sha256=LEemFN_S07c9aeTSschA5k3fFXLXBOOIbpOJn9HRiQY,3831
75
+ ophyd_async/epics/sim/_sensor.py,sha256=VMxsjLV_V3LeLqnSqIsDHVJgpu5SmASV-rlzok_lLws,1040
76
+ ophyd_async/epics/sim/mover.db,sha256=RFz0rxZue689Wh1sWTZwWeFMUrH04ttPq2u5xJH_Fp4,998
77
+ ophyd_async/epics/sim/sensor.db,sha256=AstyG9E0R4KZBz2FZQSrV_QlrfLoU6M2cvYc15Lf548,553
78
+ ophyd_async/epics/testing/__init__.py,sha256=aTIv4D2DYrpnGco5RQF8QuLG1SfFkIlTyM2uYEKXltA,522
79
+ ophyd_async/epics/testing/_example_ioc.py,sha256=_crB_NVSVAwQTptU-upl3MVm0i8UsfA0QDBi9NPemoc,3505
80
+ ophyd_async/epics/testing/_utils.py,sha256=Y5aokH545rJfu-0JDZCha91Y8p08KYiIfxDc2wnq9CQ,1599
81
+ ophyd_async/epics/testing/test_records.db,sha256=zQ8QZ5OVMVFfLj7kSsjL7HTMcm74dzqypL0F4_6JkN8,3342
82
+ ophyd_async/epics/testing/test_records_pva.db,sha256=NyceNGaCZXNYaXjH2VLhvKl8Z-L6dwfE_kYZKqdIcTU,4054
83
+ ophyd_async/fastcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
+ ophyd_async/fastcs/core.py,sha256=MpbRLaPJwmaAuunnIV34oq1AUjT1nfv5ggtgw4I42vY,376
85
+ ophyd_async/fastcs/odin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ ophyd_async/fastcs/panda/__init__.py,sha256=YwmF5yjfa7TxfIqjNfajIHYbxcfdfpR04eFcDCM8RmA,927
87
+ ophyd_async/fastcs/panda/_block.py,sha256=UZBWos3g4yhxGhX9oB3g_GU7jGGelgoQ2Yt2sm1MPJM,1709
88
+ ophyd_async/fastcs/panda/_control.py,sha256=b2BWhjKDHgUV1ggalvwBEbAELWsrDWK3EsMozog_a6w,1124
89
+ ophyd_async/fastcs/panda/_hdf_panda.py,sha256=7uGEFw5Jvjk4IxzSQx9LBSOfqtG_7HCcRuzxLvxclKI,1215
90
+ ophyd_async/fastcs/panda/_table.py,sha256=Ct4Ur4F_kEvBeUURrGKVpSxp_pnyRK-xv6uqzrJ39Ho,2368
91
+ ophyd_async/fastcs/panda/_trigger.py,sha256=z9VGb4XPaw3xrOsvTbgpLHbduDbQJB0M4HP3w5YPB_E,3056
92
+ ophyd_async/fastcs/panda/_writer.py,sha256=wDN6uWX1ENofmI3JBXJ7_CGooI7WsZP-JJQrRiSc6sM,6000
93
+ ophyd_async/plan_stubs/__init__.py,sha256=qW9xqnzKyR7W1-oQH34sLPV9aEAesIS5of9oq3IWGdk,874
94
+ ophyd_async/plan_stubs/_ensure_connected.py,sha256=yUFDqmTauoI-1A4QT0be8m1Ta-A-jyadOd0jZn2FVq0,820
95
+ ophyd_async/plan_stubs/_fly.py,sha256=sJf-JQk57-WSwU-iH8Ab-l3kB2j-vDGslRJej2OBwkw,6225
96
+ ophyd_async/plan_stubs/_nd_attributes.py,sha256=RBooW9E-UgqwKqe3INmfdZH9dGy-PyWKSLfEWJINv5I,2260
97
+ ophyd_async/plan_stubs/_panda.py,sha256=2DoJK26K68MOFPN2bqdbhKE6XNCTnXOvEJoOeAhfKfU,413
98
+ ophyd_async/plan_stubs/_settings.py,sha256=edAgaGqPaBxfHkplakWqB0_OFt-yUNxK910LMoJ9JWU,4397
99
+ ophyd_async/plan_stubs/_wait_for_awaitable.py,sha256=QttArcYwi9TPF8r0r_5VoHdsNexV8O-1a4up0jU9Jkg,373
100
+ ophyd_async/sim/__init__.py,sha256=JKWFnHqmFuRRMvvU0aBuclke3OdF0iq89yvHEd4J7Bg,371
101
+ ophyd_async/sim/_sim_motor.py,sha256=gfvhW9TSgolAf5iAk30GviuHh680pT_RcxxTviZCzvk,3997
102
+ ophyd_async/sim/_pattern_detector/__init__.py,sha256=o_dSZDIl_CyS3YPSNKpGiQiR9UaC4cNzZ8_ByEN9dIk,402
103
+ ophyd_async/sim/_pattern_detector/_pattern_detector.py,sha256=R-UbcxHLFfCK9tBryKZN5Dit0IjYeJGP-QKV2ssKFoQ,1275
104
+ ophyd_async/sim/_pattern_detector/_pattern_detector_controller.py,sha256=BLBFMri5IQiQfddpoYFelgj_FEZ2AMcTiz8MHKaUEaU,2341
105
+ ophyd_async/sim/_pattern_detector/_pattern_detector_writer.py,sha256=nQOks4EK1Ax0Ib1pkCrmJPF8Jqr7tPusMnby-HGUnP0,1370
106
+ ophyd_async/sim/_pattern_detector/_pattern_generator.py,sha256=gYBjE0tl_4oTb1qn5dGMS7nLS_a3vY6e5Z-OvpPbFXY,7330
107
+ ophyd_async/tango/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
+ ophyd_async/tango/core/__init__.py,sha256=pBslTNkIt22-g-CDbG9N7pKLQVJqFe6DYXHFFYJZIo8,905
109
+ ophyd_async/tango/core/_base_device.py,sha256=IN1HF1DOf9W9_FhVlzWyuU58gBFu86rYOD1vDZ_a7Wc,4717
110
+ ophyd_async/tango/core/_signal.py,sha256=Shuyjt31dnTGzkzGa0CthisSwnLJ0pNI9ABEx5GuFus,6463
111
+ ophyd_async/tango/core/_tango_readable.py,sha256=c6xVH56oBp5o3C3y3PuHA5MftvmjKm20BBvrgsTO260,913
112
+ ophyd_async/tango/core/_tango_transport.py,sha256=5m_4TPya3Mn4WviLA9fUh2zd_PTxEzkPguFRKgOluhs,28922
113
+ ophyd_async/tango/sim/__init__.py,sha256=_j-UicTnckuIBp8PnieFMOMnLFGivnaKdmo9o0hYtzc,256
114
+ ophyd_async/tango/sim/_counter.py,sha256=efBqrFj6ejzDh1aggtPXpn1iub1zB4XocRvHqBEiwcs,1105
115
+ ophyd_async/tango/sim/_detector.py,sha256=0wwk7Y-Dl9QF1YsCIU_BxqI6-PQ40qN_0gknrYBkxsY,1292
116
+ ophyd_async/tango/sim/_mover.py,sha256=8MCorX6e5AaIXP00kwLOwu2smE4Y5RhbeMA_4mGbcFQ,2957
117
+ ophyd_async/tango/sim/_tango/__init__.py,sha256=FfONT7vM49nNo3a1Lv-LcMZO9EHv6bv91yY-RnxIib4,85
118
+ ophyd_async/tango/sim/_tango/_servers.py,sha256=MwkkoZWJQm_cgafCBBXeQfwyAiOgU8cE90_uNfcdcGA,2916
119
+ ophyd_async/testing/__init__.py,sha256=UqU_3GH0th3s4jwgDRqxJn8mqq9My8jzk55Q-69OeeQ,1156
120
+ ophyd_async/testing/__pytest_assert_rewrite.py,sha256=_SU2UfChPgEf7CFY7aYH2B7MLp-07_qYnVLyu6QtDL8,129
121
+ ophyd_async/testing/_assert.py,sha256=FvGhGVoYPul2-2ByM5U0AAdrIKc1y6gqLRK_CfYut-Y,4941
122
+ ophyd_async/testing/_mock_signal_utils.py,sha256=PABE_2Hexx5mtINuaVLASHKJEYulO-nUqiI20vE9j6s,5212
123
+ ophyd_async/testing/_one_of_everything.py,sha256=pzj4-yM3buOKQJyUNfpMCKlg57cdALFY6hr0NDHQYZU,4160
124
+ ophyd_async/testing/_wait_for_pending.py,sha256=YZAR48n-CW0GsPey3zFRzMJ4byDAr3HvMIoawjmTrHw,732
125
+ ophyd_async-0.9.0a2.dist-info/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
126
+ ophyd_async-0.9.0a2.dist-info/METADATA,sha256=xleA5naK9np7q1T2ZXQgc3MiDFrVccBt_XTL-ReHprM,6753
127
+ ophyd_async-0.9.0a2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
128
+ ophyd_async-0.9.0a2.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
129
+ ophyd_async-0.9.0a2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,274 +0,0 @@
1
- from collections.abc import Callable, Generator, Sequence
2
- from enum import Enum
3
- from pathlib import Path
4
- from typing import Any
5
-
6
- import numpy as np
7
- import numpy.typing as npt
8
- import yaml
9
- from bluesky.plan_stubs import abs_set, wait
10
- from bluesky.protocols import Location
11
- from bluesky.utils import Msg
12
- from pydantic import BaseModel
13
-
14
- from ._device import Device
15
- from ._signal import SignalRW
16
-
17
-
18
- def ndarray_representer(dumper: yaml.Dumper, array: npt.NDArray[Any]) -> yaml.Node:
19
- return dumper.represent_sequence(
20
- "tag:yaml.org,2002:seq", array.tolist(), flow_style=True
21
- )
22
-
23
-
24
- def pydantic_model_abstraction_representer(
25
- dumper: yaml.Dumper, model: BaseModel
26
- ) -> yaml.Node:
27
- return dumper.represent_data(model.model_dump(mode="python"))
28
-
29
-
30
- def enum_representer(dumper: yaml.Dumper, enum: Enum) -> yaml.Node:
31
- return dumper.represent_data(enum.value)
32
-
33
-
34
- def get_signal_values(
35
- signals: dict[str, SignalRW[Any]], ignore: list[str] | None = None
36
- ) -> Generator[Msg, Sequence[Location[Any]], dict[str, Any]]:
37
- """Get signal values in bulk.
38
-
39
- Used as part of saving the signals of a device to a yaml file.
40
-
41
- Parameters
42
- ----------
43
- signals : Dict[str, SignalRW]
44
- Dictionary with pv names and matching SignalRW values. Often the direct result
45
- of :func:`walk_rw_signals`.
46
-
47
- ignore : Optional[List[str]]
48
- Optional list of PVs that should be ignored.
49
-
50
- Returns
51
- -------
52
- Dict[str, Any]
53
- A dictionary containing pv names and their associated values. Ignored pvs are
54
- set to None.
55
-
56
- See Also
57
- --------
58
- :func:`ophyd_async.core.walk_rw_signals`
59
- :func:`ophyd_async.core.save_to_yaml`
60
- """
61
-
62
- ignore = ignore or []
63
- selected_signals = {
64
- key: signal for key, signal in signals.items() if key not in ignore
65
- }
66
- selected_values = yield Msg("locate", *selected_signals.values())
67
-
68
- assert selected_values is not None, "No signalRW's were able to be located"
69
- named_values = {
70
- key: value["setpoint"]
71
- for key, value in zip(selected_signals, selected_values, strict=False)
72
- }
73
- # Ignored values place in with value None so we know which ones were ignored
74
- named_values.update(dict.fromkeys(ignore))
75
- return named_values
76
-
77
-
78
- def walk_rw_signals(
79
- device: Device, path_prefix: str | None = ""
80
- ) -> dict[str, SignalRW[Any]]:
81
- """Retrieve all SignalRWs from a device.
82
-
83
- Stores retrieved signals with their dotted attribute paths in a dictionary. Used as
84
- part of saving and loading a device.
85
-
86
- Parameters
87
- ----------
88
- device : Device
89
- Ophyd device to retrieve read-write signals from.
90
-
91
- path_prefix : str
92
- For internal use, leave blank when calling the method.
93
-
94
- Returns
95
- -------
96
- SignalRWs : dict
97
- A dictionary matching the string attribute path of a SignalRW with the
98
- signal itself.
99
-
100
- See Also
101
- --------
102
- :func:`ophyd_async.core.get_signal_values`
103
- :func:`ophyd_async.core.save_to_yaml`
104
-
105
- """
106
-
107
- if not path_prefix:
108
- path_prefix = ""
109
-
110
- signals: dict[str, SignalRW[Any]] = {}
111
-
112
- for attr_name, attr in device.children():
113
- dot_path = f"{path_prefix}{attr_name}"
114
- if type(attr) is SignalRW:
115
- signals[dot_path] = attr
116
- attr_signals = walk_rw_signals(attr, path_prefix=dot_path + ".")
117
- signals.update(attr_signals)
118
- return signals
119
-
120
-
121
- def save_to_yaml(phases: Sequence[dict[str, Any]], save_path: str | Path) -> None:
122
- """Plan which serialises a phase or set of phases of SignalRWs to a yaml file.
123
-
124
- Parameters
125
- ----------
126
- phases : dict or list of dicts
127
- The values to save. Each item in the list is a seperate phase used when loading
128
- a device. In general this variable be the return value of `get_signal_values`.
129
-
130
- save_path : str
131
- Path of the yaml file to write to
132
-
133
- See Also
134
- --------
135
- :func:`ophyd_async.core.walk_rw_signals`
136
- :func:`ophyd_async.core.get_signal_values`
137
- :func:`ophyd_async.core.load_from_yaml`
138
- """
139
-
140
- yaml.add_representer(np.ndarray, ndarray_representer, Dumper=yaml.Dumper)
141
- yaml.add_multi_representer(
142
- BaseModel,
143
- pydantic_model_abstraction_representer,
144
- Dumper=yaml.Dumper,
145
- )
146
- yaml.add_multi_representer(Enum, enum_representer, Dumper=yaml.Dumper)
147
-
148
- with open(save_path, "w") as file:
149
- yaml.dump(phases, file)
150
-
151
-
152
- def load_from_yaml(save_path: str) -> Sequence[dict[str, Any]]:
153
- """Plan that returns a list of dicts with saved signal values from a yaml file.
154
-
155
- Parameters
156
- ----------
157
- save_path : str
158
- Path of the yaml file to load from
159
-
160
- See Also
161
- --------
162
- :func:`ophyd_async.core.save_to_yaml`
163
- :func:`ophyd_async.core.set_signal_values`
164
- """
165
- with open(save_path) as file:
166
- return yaml.full_load(file)
167
-
168
-
169
- def set_signal_values(
170
- signals: dict[str, SignalRW[Any]], values: Sequence[dict[str, Any]]
171
- ) -> Generator[Msg, None, None]:
172
- """Maps signals from a yaml file into device signals.
173
-
174
- ``values`` contains signal values in phases, which are loaded in sequentially
175
- into the provided signals, to ensure signals are set in the correct order.
176
-
177
- Parameters
178
- ----------
179
- signals : Dict[str, SignalRW[Any]]
180
- Dictionary of named signals to be updated if value found in values argument.
181
- Can be the output of :func:`walk_rw_signals()` for a device.
182
-
183
- values : Sequence[Dict[str, Any]]
184
- List of dictionaries of signal name and value pairs, if a signal matches
185
- the name of one in the signals argument, sets the signal to that value.
186
- The groups of signals are loaded in their list order.
187
- Can be the output of :func:`load_from_yaml()` for a yaml file.
188
-
189
- See Also
190
- --------
191
- :func:`ophyd_async.core.load_from_yaml`
192
- :func:`ophyd_async.core.walk_rw_signals`
193
- """
194
- # For each phase, set all the signals,
195
- # load them to the correct value and wait for the load to complete
196
- for phase_number, phase in enumerate(values):
197
- # Key is signal name
198
- for key, value in phase.items():
199
- # Skip ignored values
200
- if value is None:
201
- continue
202
-
203
- if key in signals:
204
- yield from abs_set(
205
- signals[key], value, group=f"load-phase{phase_number}"
206
- )
207
-
208
- yield from wait(f"load-phase{phase_number}")
209
-
210
-
211
- def load_device(device: Device, path: str):
212
- """Plan which loads PVs from a yaml file into a device.
213
-
214
- Parameters
215
- ----------
216
- device: Device
217
- The device to load PVs into
218
- path: str
219
- Path of the yaml file to load
220
-
221
- See Also
222
- --------
223
- :func:`ophyd_async.core.save_device`
224
- """
225
- values = load_from_yaml(path)
226
- signals_to_set = walk_rw_signals(device)
227
- yield from set_signal_values(signals_to_set, values)
228
-
229
-
230
- def all_at_once(values: dict[str, Any]) -> Sequence[dict[str, Any]]:
231
- """Sort all the values into a single phase so they are set all at once"""
232
- return [values]
233
-
234
-
235
- def save_device(
236
- device: Device,
237
- path: str,
238
- sorter: Callable[[dict[str, Any]], Sequence[dict[str, Any]]] = all_at_once,
239
- ignore: list[str] | None = None,
240
- ):
241
- """Plan that saves the state of all PV's on a device using a sorter.
242
-
243
- The default sorter assumes all saved PVs can be loaded at once, and therefore
244
- can be saved at one time, i.e. all PVs will appear on one list in the
245
- resulting yaml file.
246
-
247
- This can be a problem, because when the yaml is ingested with
248
- :func:`ophyd_async.core.load_device`, it will set all of those PVs at once.
249
- However, some PV's need to be set before others - this is device specific.
250
-
251
- Therefore, users should consider the order of device loading and write their
252
- own sorter algorithms accordingly.
253
-
254
- See :func:`ophyd_async.fastcs.panda.phase_sorter` for a valid implementation of the
255
- sorter.
256
-
257
- Parameters
258
- ----------
259
- device : Device
260
- The device whose PVs should be saved.
261
-
262
- path : str
263
- The path where the resulting yaml should be saved to
264
-
265
- sorter : Callable[[Dict[str, Any]], Sequence[Dict[str, Any]]]
266
-
267
- ignore : Optional[List[str]]
268
-
269
- See Also
270
- --------
271
- :func:`ophyd_async.core.load_device`
272
- """
273
- values = yield from get_signal_values(walk_rw_signals(device), ignore=ignore)
274
- save_to_yaml(sorter(values), path)
@@ -1,51 +0,0 @@
1
- import asyncio
2
-
3
- from ophyd_async.core import (
4
- DEFAULT_TIMEOUT,
5
- AsyncStatus,
6
- DetectorController,
7
- DetectorTrigger,
8
- TriggerInfo,
9
- )
10
- from ophyd_async.epics import adcore
11
-
12
-
13
- class SimController(DetectorController):
14
- def __init__(
15
- self,
16
- driver: adcore.ADBaseIO,
17
- good_states: frozenset[adcore.DetectorState] = adcore.DEFAULT_GOOD_STATES,
18
- ) -> None:
19
- self.driver = driver
20
- self.good_states = good_states
21
- self.frame_timeout: float
22
- self._arm_status: AsyncStatus | None = None
23
-
24
- def get_deadtime(self, exposure: float | None) -> float:
25
- return 0.002
26
-
27
- async def prepare(self, trigger_info: TriggerInfo):
28
- assert (
29
- trigger_info.trigger == DetectorTrigger.INTERNAL
30
- ), "fly scanning (i.e. external triggering) is not supported for this device"
31
- self.frame_timeout = (
32
- DEFAULT_TIMEOUT + await self.driver.acquire_time.get_value()
33
- )
34
- await asyncio.gather(
35
- self.driver.num_images.set(trigger_info.total_number_of_triggers),
36
- self.driver.image_mode.set(adcore.ImageMode.MULTIPLE),
37
- )
38
-
39
- async def arm(self):
40
- self._arm_status = await adcore.start_acquiring_driver_and_ensure_status(
41
- self.driver, good_states=self.good_states, timeout=self.frame_timeout
42
- )
43
-
44
- async def wait_for_idle(self):
45
- if self._arm_status:
46
- await self._arm_status
47
-
48
- async def disarm(self):
49
- # We can't use caput callback as we already used it in arm() and we can't have
50
- # 2 or they will deadlock
51
- await adcore.stop_busy_record(self.driver.acquire, False, timeout=1)
@@ -1,16 +0,0 @@
1
- from collections.abc import Sequence
2
- from typing import Any
3
-
4
-
5
- def phase_sorter(panda_signal_values: dict[str, Any]) -> Sequence[dict[str, Any]]:
6
- # Panda has two load phases. If the signal name ends in the string "UNITS",
7
- # it needs to be loaded first so put in first phase
8
- phase_1, phase_2 = {}, {}
9
-
10
- for key, value in panda_signal_values.items():
11
- if key.endswith("units"):
12
- phase_1[key] = value
13
- else:
14
- phase_2[key] = value
15
-
16
- return [phase_1, phase_2]
@@ -1,19 +0,0 @@
1
- from ._pattern_detector import (
2
- DATA_PATH,
3
- SUM_PATH,
4
- PatternDetector,
5
- PatternDetectorController,
6
- PatternDetectorWriter,
7
- PatternGenerator,
8
- )
9
- from ._sim_motor import SimMotor
10
-
11
- __all__ = [
12
- "DATA_PATH",
13
- "SUM_PATH",
14
- "PatternGenerator",
15
- "PatternDetector",
16
- "PatternDetectorController",
17
- "PatternDetectorWriter",
18
- "SimMotor",
19
- ]
File without changes
@@ -1,119 +0,0 @@
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=fqly1zb7P_f9515NUzRb7AMheEwRLpJkaVG_Pep_nis,413
4
- ophyd_async/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- ophyd_async/core/__init__.py,sha256=GQCfHqV_nypbNkzzycqq_JxCnIIP1rwBiSB9gBq1EE0,3805
6
- ophyd_async/core/_detector.py,sha256=Zyrc5dMSmOM4bC_tOXHFfWtXnTtEQGkrAN6kydvUIFw,14307
7
- ophyd_async/core/_device.py,sha256=oIC-P6Lu6MDAdB_bHPzuT-ox8gTBAcjRNRNEh89IABk,13000
8
- ophyd_async/core/_device_filler.py,sha256=Nw-DUyuXYpvt4mmCAQaNVA0LFBBaPK84ubZo3bR39Ak,11407
9
- ophyd_async/core/_device_save_loader.py,sha256=OViN9_LWNOLuajzrHDKYEqd5I47u5npQACdGceKcIGY,8375
10
- ophyd_async/core/_flyer.py,sha256=us5z6MNGCvIfgPDTmFTxNERSP37g0WVRkRD0Z2JiMgM,1701
11
- ophyd_async/core/_hdf_dataset.py,sha256=wW_OL8OYLGOsE01ny3hGaapOrxK7BzhWTxKgz8CIXK0,2492
12
- ophyd_async/core/_log.py,sha256=UbL9AtnHVUg7r9LofzgmuKEtBESy03usCp7ejmDltG4,3679
13
- ophyd_async/core/_mock_signal_backend.py,sha256=8Upnz6QrSigeDXemjZ-jB4sV2yIPUzid-6GOfTZ-7Io,2805
14
- ophyd_async/core/_protocol.py,sha256=0pwF_EUu7LZjr-Hg6LKy6B1-5y4gpsU81JsPiNI5g_s,3317
15
- ophyd_async/core/_providers.py,sha256=ff9ZT5-PZ6rhTTdE-q8w9l_k9DuZqLWLebsKZLeJ0Ds,7112
16
- ophyd_async/core/_readable.py,sha256=7FxqxhAT1wBQqOEivgnY731zA9QoK1Tt-ZGcH7GBOXM,10623
17
- ophyd_async/core/_signal.py,sha256=KCIJongFllgRBRJxN1EjsmYR17qTu_wBm-b1OrdhT2w,20558
18
- ophyd_async/core/_signal_backend.py,sha256=YWPgLSPbfPnWIUDHvP1ArCVK8zKXJxzzbloqQe_ucCI,5040
19
- ophyd_async/core/_soft_signal_backend.py,sha256=w9zzD4eoD9SsJpORXNSaFOLJrD6biYBbCSVAybLa_7k,5926
20
- ophyd_async/core/_status.py,sha256=OUKhblRQ4KU5PDsWbpvYduM7G60JMk1NqeV4eqyPtKc,5131
21
- ophyd_async/core/_table.py,sha256=tNu396gDGjpX1xUBQXgKI7aiDugaBl2McH_kVZPn_kQ,5535
22
- ophyd_async/core/_utils.py,sha256=bzgxs1KdB35mkONzpDOg3eH6bVMIbJt49qRY0PrFqi4,9870
23
- ophyd_async/epics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- ophyd_async/epics/motor.py,sha256=d5EwfpTmblxuO1H37rzIOTDgNy1OlZmp10FWXOVUQ4o,9076
25
- ophyd_async/epics/signal.py,sha256=hJCGIIWjRVhjEHkeL1I_oPEaaN7dDFKmm7G7ZmgoTYQ,219
26
- ophyd_async/epics/adaravis/__init__.py,sha256=u979_9nQTYB0TvDOTXFN4qMrbDP8-xQFfXYMGzLVBo4,207
27
- ophyd_async/epics/adaravis/_aravis.py,sha256=XBuLQBZYj2tptY39bVzXjl6t-ZpPwqrUOwpR54l-hSo,1952
28
- ophyd_async/epics/adaravis/_aravis_controller.py,sha256=3zt-BWr-UnM1nguphHhJBNHXgBD6ntzifYXYL2o9VCM,2831
29
- ophyd_async/epics/adaravis/_aravis_io.py,sha256=_RViDrTDaTutitRbHlJ5VV23X70lvfhyY3DTzgXy6yI,1603
30
- ophyd_async/epics/adcore/__init__.py,sha256=3wMOyFGaq1X61LqK4iY4pq-m_BjhOgYZD2-mNCAjpzk,1086
31
- ophyd_async/epics/adcore/_core_io.py,sha256=4yGdsV-uivrJYas07fDFbjNwnqJukB654YneBHGsZJU,6076
32
- ophyd_async/epics/adcore/_core_logic.py,sha256=2QUWoHc6wJDwFVV81CN0rAOxhgb0SFJNLCeBxKv1Fi4,3632
33
- ophyd_async/epics/adcore/_hdf_writer.py,sha256=y0K-u3E27a8vJTklvyKrWlzRPNBp1G7DHipUtvUtOWc,7338
34
- ophyd_async/epics/adcore/_single_trigger.py,sha256=5-s0kgqqrPeNv9gjAB2pNXuxa9oEgwt9KBq58JRta6Y,1208
35
- ophyd_async/epics/adcore/_utils.py,sha256=qXOT79_CNwtO8BdpHybi4meG3Xq4pqEvWYW-Jjt_elA,3932
36
- ophyd_async/epics/adkinetix/__init__.py,sha256=cvnwOqbvEENf70eFp6bPGwayP0u14UTIhs3WiZEcF_Q,262
37
- ophyd_async/epics/adkinetix/_kinetix.py,sha256=JsQVc4d7lRCnVObJlM775hHLfp3rYRSRgOoIyRvrSek,1184
38
- ophyd_async/epics/adkinetix/_kinetix_controller.py,sha256=R5l7TaPlibeGPY67o18-Ra3i65IVIxRQ_1Zbn8kmi5s,1701
39
- ophyd_async/epics/adkinetix/_kinetix_io.py,sha256=3zqfmoTCTkhd7kiqD4wiYrnu5EADzzegaCRJFBaZuVk,910
40
- ophyd_async/epics/adpilatus/__init__.py,sha256=daimScOCCMHR2eb8VbezHOcGOkd6uIRZQiyeTQsaAx4,308
41
- ophyd_async/epics/adpilatus/_pilatus.py,sha256=hsHYeMbYJiePn3uci-YSUivQRhAaYAgicr3K145HbBA,1751
42
- ophyd_async/epics/adpilatus/_pilatus_controller.py,sha256=Bef_-2uJe8hTM-VO_xScMCnEB172n7jSmhdUevPtdJY,2676
43
- ophyd_async/epics/adpilatus/_pilatus_io.py,sha256=Jznmhwidmr_YaUdWXazWFYNQq4wn_sI1dXeo9Zhyf0M,738
44
- ophyd_async/epics/adsimdetector/__init__.py,sha256=t3crUgTEvVJGI8o6FsfN42k0A-l4v9ZBwXIYtixoE-M,128
45
- ophyd_async/epics/adsimdetector/_sim.py,sha256=jzsPJdcwdciR2mVPbvg9KhGHWWGNDQwK5TwPcS7_tco,1009
46
- ophyd_async/epics/adsimdetector/_sim_controller.py,sha256=WXKj5SclfLJ0IywCk81GmFj0ZGMkDnX7jRfatXe1EYo,1677
47
- ophyd_async/epics/advimba/__init__.py,sha256=l0ElP3Zyff_pzrTRdj9oUO9xigCfmzo3pMVjstlVsJY,320
48
- ophyd_async/epics/advimba/_vimba.py,sha256=E_RJ0uJQt-RWAY7uFTNkHaOdGYS5sa7ZbRgAe6ngXTA,1125
49
- ophyd_async/epics/advimba/_vimba_controller.py,sha256=DZNNtYeii1ogFuoW4IV8YYDdNyyt4TwcktMEr4TlJoI,2226
50
- ophyd_async/epics/advimba/_vimba_io.py,sha256=il-SZSiApx5OUQCYHUGoa0Ywu9pY01DSDvOttU15khQ,1864
51
- ophyd_async/epics/core/__init__.py,sha256=8NoQxEEc2Ny_L9nrD2fnGSf_2gJr1wCR1LwUeLNcIJo,588
52
- ophyd_async/epics/core/_aioca.py,sha256=iQWiHWYbMJLa7qeBrCz4_e16Y8A-NYYi6oYNi8oOFVY,11617
53
- ophyd_async/epics/core/_epics_connector.py,sha256=n1FlQYui8HdobPxaX3VAflrzi2UT7QCe3cFasssmVLw,1789
54
- ophyd_async/epics/core/_epics_device.py,sha256=kshNiKQhevsL2OZXa-r093L_sQGvGK_0J4PWVLg3Eqw,437
55
- ophyd_async/epics/core/_p4p.py,sha256=xtN45sJovj_5bo_e6ZUf0A_uIAeMUVgTcYJi-AtzMmw,15518
56
- ophyd_async/epics/core/_pvi_connector.py,sha256=wi9PiiWtWWE8mlHAfgDd6zKHvXn35E5DaqDvk4k5KD0,3755
57
- ophyd_async/epics/core/_signal.py,sha256=0_g2dd60tUl1inEY9hUQvWrEka4uvNW8hylrhnB76Q8,4842
58
- ophyd_async/epics/core/_util.py,sha256=wdwFd6sJoFQo3eGElPzhPaJi3KqLf5Zq_03Hoya7YsE,2079
59
- ophyd_async/epics/demo/__init__.py,sha256=wCrgemEo-zR4TTvaqCKnQ-AIUHorotV5jhftbq1tXz0,1368
60
- ophyd_async/epics/demo/_mover.py,sha256=tuAvP8TuyJtHhdSloNol7pBpiBQMcqUtGil52VjpGsE,3666
61
- ophyd_async/epics/demo/_sensor.py,sha256=VMxsjLV_V3LeLqnSqIsDHVJgpu5SmASV-rlzok_lLws,1040
62
- ophyd_async/epics/demo/mover.db,sha256=RFz0rxZue689Wh1sWTZwWeFMUrH04ttPq2u5xJH_Fp4,998
63
- ophyd_async/epics/demo/sensor.db,sha256=AstyG9E0R4KZBz2FZQSrV_QlrfLoU6M2cvYc15Lf548,553
64
- ophyd_async/epics/eiger/__init__.py,sha256=b3Tt4pVLk23Giyj50R4e94d2MxWDDmNHWhWwNq2jlaw,221
65
- ophyd_async/epics/eiger/_eiger.py,sha256=hkMsjVwrzDcE1u5BRIQtn8RSR2e0b1JMpDvuIONoNaI,1133
66
- ophyd_async/epics/eiger/_eiger_controller.py,sha256=ZJGTwSjQam15mtgG4GQ9nPNv_cA-lSLMFgTMkTK79Gg,2343
67
- ophyd_async/epics/eiger/_eiger_io.py,sha256=qTBT0SebqzlcNXtLQywSoTmAbVC2wl4i0Wn2fbcEISM,1806
68
- ophyd_async/epics/eiger/_odin_io.py,sha256=3E33ysvMlf8t0bbSVPnzUrvPgUwA7491uoViWpivpf8,4153
69
- ophyd_async/epics/testing/__init__.py,sha256=terWt7TtNaxk4dCdAGQs-7HM2Z7Vcy34eX6kcngDbi8,498
70
- ophyd_async/epics/testing/_example_ioc.py,sha256=-GC4mYacZcbLSZMmOj7Kdz08ZrGv9fsYJ4STs3n6ddQ,3481
71
- ophyd_async/epics/testing/_utils.py,sha256=-D6aKJydhM-n6290DyyKlnwCHFkbQ-j4tu5AD2JjWZ0,2443
72
- ophyd_async/epics/testing/test_records.db,sha256=25aW0vPe7ScFXI7zE83DfG6StgdrBwCEwDbfK9_hwVw,3198
73
- ophyd_async/epics/testing/test_records_pva.db,sha256=NyceNGaCZXNYaXjH2VLhvKl8Z-L6dwfE_kYZKqdIcTU,4054
74
- ophyd_async/fastcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- ophyd_async/fastcs/core.py,sha256=MpbRLaPJwmaAuunnIV34oq1AUjT1nfv5ggtgw4I42vY,376
76
- ophyd_async/fastcs/odin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- ophyd_async/fastcs/panda/__init__.py,sha256=_o7n7ckoTM6hTRHpLphpL7r_9sADE59MRNM0gq_ut2o,980
78
- ophyd_async/fastcs/panda/_block.py,sha256=UZBWos3g4yhxGhX9oB3g_GU7jGGelgoQ2Yt2sm1MPJM,1709
79
- ophyd_async/fastcs/panda/_control.py,sha256=QIfF5y4nmjhnATeIuBTNTwXfKkNR6D9E7X0RQub0j1k,1021
80
- ophyd_async/fastcs/panda/_hdf_panda.py,sha256=UnKG8TJugDJGBm8_Grx9EtR07RtEafx1lin-JClujaQ,1172
81
- ophyd_async/fastcs/panda/_table.py,sha256=5YyAfsl3H7kxH3bDjUKHuH9DyrWQmAn9dv-v0NYzFNo,2289
82
- ophyd_async/fastcs/panda/_trigger.py,sha256=z9VGb4XPaw3xrOsvTbgpLHbduDbQJB0M4HP3w5YPB_E,3056
83
- ophyd_async/fastcs/panda/_utils.py,sha256=NdvzdKy0SOG1eCVMQo_nwRXpBo0wyi6lM5Xw3HvssOw,508
84
- ophyd_async/fastcs/panda/_writer.py,sha256=wDN6uWX1ENofmI3JBXJ7_CGooI7WsZP-JJQrRiSc6sM,6000
85
- ophyd_async/plan_stubs/__init__.py,sha256=wjpEj_BoBZJ9x2fhUPY6BzWMqyYH96JrBlJvV7frdN4,524
86
- ophyd_async/plan_stubs/_ensure_connected.py,sha256=uoqfAzghjifdfD_JM860TvMvj9T2Y12nKPvtI5l6zZc,1021
87
- ophyd_async/plan_stubs/_fly.py,sha256=ZR3oivJuMIQYXTm_QjZaCtnXY21_T8BB3dVqAnp6EHo,6208
88
- ophyd_async/plan_stubs/_nd_attributes.py,sha256=TVfy3bhnrLFBXZ6b2bREBj0LzEviEGzuGvgWK3I7tII,2198
89
- ophyd_async/sim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- ophyd_async/sim/demo/__init__.py,sha256=JKWFnHqmFuRRMvvU0aBuclke3OdF0iq89yvHEd4J7Bg,371
91
- ophyd_async/sim/demo/_sim_motor.py,sha256=gfvhW9TSgolAf5iAk30GviuHh680pT_RcxxTviZCzvk,3997
92
- ophyd_async/sim/demo/_pattern_detector/__init__.py,sha256=o_dSZDIl_CyS3YPSNKpGiQiR9UaC4cNzZ8_ByEN9dIk,402
93
- ophyd_async/sim/demo/_pattern_detector/_pattern_detector.py,sha256=R-UbcxHLFfCK9tBryKZN5Dit0IjYeJGP-QKV2ssKFoQ,1275
94
- ophyd_async/sim/demo/_pattern_detector/_pattern_detector_controller.py,sha256=HqlKNgjd_9pjy6pc74xdJ7JtV1Iko6cNxB2aZReJozw,1999
95
- ophyd_async/sim/demo/_pattern_detector/_pattern_detector_writer.py,sha256=nQOks4EK1Ax0Ib1pkCrmJPF8Jqr7tPusMnby-HGUnP0,1370
96
- ophyd_async/sim/demo/_pattern_detector/_pattern_generator.py,sha256=gP0Q1-1p_3KOH7mWZc5m-8OUEx_jb7SAdRXcpleRqX4,7096
97
- ophyd_async/sim/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
- ophyd_async/tango/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- ophyd_async/tango/core/__init__.py,sha256=pBslTNkIt22-g-CDbG9N7pKLQVJqFe6DYXHFFYJZIo8,905
100
- ophyd_async/tango/core/_base_device.py,sha256=IN1HF1DOf9W9_FhVlzWyuU58gBFu86rYOD1vDZ_a7Wc,4717
101
- ophyd_async/tango/core/_signal.py,sha256=5ks0dyzCX66cV9R_CnmM949H1RzNQH3Q1XIUhHQCOaI,6421
102
- ophyd_async/tango/core/_tango_readable.py,sha256=c6xVH56oBp5o3C3y3PuHA5MftvmjKm20BBvrgsTO260,913
103
- ophyd_async/tango/core/_tango_transport.py,sha256=6yT-UqE7YyH6OxSisUPvwcEqf29i18jHfse6Ag4JtY0,28986
104
- ophyd_async/tango/demo/__init__.py,sha256=_j-UicTnckuIBp8PnieFMOMnLFGivnaKdmo9o0hYtzc,256
105
- ophyd_async/tango/demo/_counter.py,sha256=efBqrFj6ejzDh1aggtPXpn1iub1zB4XocRvHqBEiwcs,1105
106
- ophyd_async/tango/demo/_detector.py,sha256=0wwk7Y-Dl9QF1YsCIU_BxqI6-PQ40qN_0gknrYBkxsY,1292
107
- ophyd_async/tango/demo/_mover.py,sha256=c5whb380th1eCThs35ftW1bfNRyYRmcofg7xUp6zvV8,2837
108
- ophyd_async/tango/demo/_tango/__init__.py,sha256=FfONT7vM49nNo3a1Lv-LcMZO9EHv6bv91yY-RnxIib4,85
109
- ophyd_async/tango/demo/_tango/_servers.py,sha256=MwkkoZWJQm_cgafCBBXeQfwyAiOgU8cE90_uNfcdcGA,2916
110
- ophyd_async/testing/__init__.py,sha256=O7PFrKkVoPzhyn6f5xv6Jx6-ZahP6iBUAiqdTpalXng,706
111
- ophyd_async/testing/_assert.py,sha256=dFiy3GC_pJOTbpxvHZ3Mh357j1XtKZcuW74DlkrpJLE,3372
112
- ophyd_async/testing/_mock_signal_utils.py,sha256=VbnUQhp0QwBK4nTWirwIWRCl9pVudDj9y_qH2LhkCMc,5210
113
- ophyd_async/testing/_wait_for_pending.py,sha256=YZAR48n-CW0GsPey3zFRzMJ4byDAr3HvMIoawjmTrHw,732
114
- ophyd_async-0.9.0a1.dist-info/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
115
- ophyd_async-0.9.0a1.dist-info/METADATA,sha256=94_s1cZumUz1BuiXeodSWxW4AhoIf7Wo4tli2ddQDY0,6753
116
- ophyd_async-0.9.0a1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
117
- ophyd_async-0.9.0a1.dist-info/entry_points.txt,sha256=O0YNJTEufO0w9BozXi-JurTy2U1_o0ypeCgJLQ727Jk,58
118
- ophyd_async-0.9.0a1.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
119
- ophyd_async-0.9.0a1.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- ophyd-async = ophyd_async.__main__:main
File without changes
File without changes
File without changes
File without changes