.codecov.yml
.copier-answers.yml
.git-blame-ignore-revs
.gitignore
.gitleaks.toml
.gitmodules
.pre-commit-config.yaml
.python-version
Dockerfile
LICENSE
README.md
pyproject.toml
renovate.json
uv.lock
.devcontainer/devcontainer.json
.github/CONTRIBUTING.md
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/issue.md
.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
.github/pages/index.html
.github/pages/make_switcher.py
.github/workflows/_dist.yml
.github/workflows/_docs.yml
.github/workflows/_pypi.yml
.github/workflows/_release.yml
.github/workflows/_test.yml
.github/workflows/_tox.yml
.github/workflows/ci.yml
.github/workflows/claude.yml
.github/workflows/periodic.yml
docs/conf.py
docs/explanations.md
docs/genindex.rst
docs/how-to.md
docs/index.md
docs/reference.md
docs/tutorials.md
docs/_static/custom.css
docs/explanations/decisions.md
docs/explanations/declarative-vs-procedural.md
docs/explanations/design-goals.md
docs/explanations/device-connection-strategies.md
docs/explanations/devices-signals-backends.md
docs/explanations/fly-scanning.md
docs/explanations/plan-stubs.md
docs/explanations/when-to-extend-movable.md
docs/explanations/where-device-logic.md
docs/explanations/decisions/0001-record-architecture-decisions.md
docs/explanations/decisions/0002-switched-to-python-copier-template.md
docs/explanations/decisions/0003-ophyd-async-migration.rst
docs/explanations/decisions/0004-repository-structure.rst
docs/explanations/decisions/0005-respect-black-line-length.rst
docs/explanations/decisions/0006-procedural-device-definitions.rst
docs/explanations/decisions/0007-subpackage-structure.md
docs/explanations/decisions/0008-signal-types.md
docs/explanations/decisions/0009-procedural-vs-declarative-devices.md
docs/explanations/decisions/0010-docstring-format.md
docs/explanations/decisions/0011-buffer-updates-camonitor.md
docs/explanations/decisions/0012-detector-rewrite.md
docs/explanations/decisions/0013-preserve-hardware-state-in-step-scan.md
docs/explanations/decisions/0014-disarm-on-unstage-flag.md
docs/explanations/decisions/COPYME
docs/how-to/choose-right-baseclass.md
docs/how-to/contribute.md
docs/how-to/derive-one-signal-from-others.md
docs/how-to/implement-ad-detector.md
docs/how-to/interact-with-signals.md
docs/how-to/put-device-back.md
docs/how-to/store-and-retrieve.md
docs/images/fly_scan_collection_windows_and_frames.svg
docs/images/ophyd-async-logo.svg
docs/images/ophyd-favicon.svg
docs/images/set_and_wait_for_other_value.excalidraw.svg
docs/reference/environment-variables.md
docs/tutorials/implementing-detectors.md
docs/tutorials/implementing-devices.md
docs/tutorials/installation.md
docs/tutorials/using-devices.md
docs/tutorials/writing-tests-for-devices.md
src/ophyd_async/__init__.py
src/ophyd_async/__main__.py
src/ophyd_async/_docs_parser.py
src/ophyd_async/_version.py
src/ophyd_async/py.typed
src/ophyd_async.egg-info/PKG-INFO
src/ophyd_async.egg-info/SOURCES.txt
src/ophyd_async.egg-info/dependency_links.txt
src/ophyd_async.egg-info/requires.txt
src/ophyd_async.egg-info/top_level.txt
src/ophyd_async/core/__init__.py
src/ophyd_async/core/_data_providers.py
src/ophyd_async/core/_datatypes.py
src/ophyd_async/core/_derived_signal.py
src/ophyd_async/core/_derived_signal_backend.py
src/ophyd_async/core/_detector.py
src/ophyd_async/core/_device.py
src/ophyd_async/core/_device_filler.py
src/ophyd_async/core/_enums.py
src/ophyd_async/core/_flyer.py
src/ophyd_async/core/_log.py
src/ophyd_async/core/_mock_signal_backend.py
src/ophyd_async/core/_mock_signal_utils.py
src/ophyd_async/core/_path_providers.py
src/ophyd_async/core/_protocol.py
src/ophyd_async/core/_readable.py
src/ophyd_async/core/_settings.py
src/ophyd_async/core/_signal.py
src/ophyd_async/core/_signal_backend.py
src/ophyd_async/core/_soft_signal_backend.py
src/ophyd_async/core/_status.py
src/ophyd_async/core/_typing.py
src/ophyd_async/core/_utils.py
src/ophyd_async/core/_yaml_settings.py
src/ophyd_async/epics/__init__.py
src/ophyd_async/epics/adandor.py
src/ophyd_async/epics/adaravis.py
src/ophyd_async/epics/adgenicam.py
src/ophyd_async/epics/adkinetix.py
src/ophyd_async/epics/admerlin.py
src/ophyd_async/epics/adpilatus.py
src/ophyd_async/epics/adsimdetector.py
src/ophyd_async/epics/advimba.py
src/ophyd_async/epics/motor.py
src/ophyd_async/epics/signal.py
src/ophyd_async/epics/adcore/__init__.py
src/ophyd_async/epics/adcore/_arm_logic.py
src/ophyd_async/epics/adcore/_data_logic.py
src/ophyd_async/epics/adcore/_detector.py
src/ophyd_async/epics/adcore/_io.py
src/ophyd_async/epics/adcore/_ndattribute.py
src/ophyd_async/epics/adcore/_plan_stubs.py
src/ophyd_async/epics/adcore/_trigger_logic.py
src/ophyd_async/epics/core/__init__.py
src/ophyd_async/epics/core/_aioca.py
src/ophyd_async/epics/core/_epics_connector.py
src/ophyd_async/epics/core/_epics_device.py
src/ophyd_async/epics/core/_p4p.py
src/ophyd_async/epics/core/_pvi_connector.py
src/ophyd_async/epics/core/_signal.py
src/ophyd_async/epics/core/_util.py
src/ophyd_async/epics/demo/__init__.py
src/ophyd_async/epics/demo/__main__.py
src/ophyd_async/epics/demo/_ioc.py
src/ophyd_async/epics/demo/_motor.py
src/ophyd_async/epics/demo/_point_detector.py
src/ophyd_async/epics/demo/_point_detector_channel.py
src/ophyd_async/epics/demo/_stage.py
src/ophyd_async/epics/demo/motor.db
src/ophyd_async/epics/demo/point_detector.db
src/ophyd_async/epics/demo/point_detector_channel.db
src/ophyd_async/epics/pmac/__init__.py
src/ophyd_async/epics/pmac/_pmac_io.py
src/ophyd_async/epics/pmac/_pmac_trajectory.py
src/ophyd_async/epics/pmac/_pmac_trajectory_generation.py
src/ophyd_async/epics/pmac/_utils.py
src/ophyd_async/epics/testing/__init__.py
src/ophyd_async/epics/testing/_example_ioc.py
src/ophyd_async/epics/testing/_utils.py
src/ophyd_async/epics/testing/test_records.db
src/ophyd_async/epics/testing/test_records_pva.db
src/ophyd_async/fastcs/__init__.py
src/ophyd_async/fastcs/core.py
src/ophyd_async/fastcs/eiger/__init__.py
src/ophyd_async/fastcs/eiger/_arm_logic.py
src/ophyd_async/fastcs/eiger/_detector.py
src/ophyd_async/fastcs/eiger/_io.py
src/ophyd_async/fastcs/eiger/_trigger_logic.py
src/ophyd_async/fastcs/jungfrau/__init__.py
src/ophyd_async/fastcs/jungfrau/_arm_logic.py
src/ophyd_async/fastcs/jungfrau/_detector.py
src/ophyd_async/fastcs/jungfrau/_io.py
src/ophyd_async/fastcs/jungfrau/_trigger_logic.py
src/ophyd_async/fastcs/jungfrau/_utils.py
src/ophyd_async/fastcs/odin/__init__.py
src/ophyd_async/fastcs/odin/_data_logic.py
src/ophyd_async/fastcs/odin/_io.py
src/ophyd_async/fastcs/panda/__init__.py
src/ophyd_async/fastcs/panda/_arm_logic.py
src/ophyd_async/fastcs/panda/_block.py
src/ophyd_async/fastcs/panda/_data_logic.py
src/ophyd_async/fastcs/panda/_detector.py
src/ophyd_async/fastcs/panda/_fly_logic.py
src/ophyd_async/fastcs/panda/_plan_stubs.py
src/ophyd_async/fastcs/panda/_table.py
src/ophyd_async/fastcs/panda/_trigger_logic.py
src/ophyd_async/plan_stubs/__init__.py
src/ophyd_async/plan_stubs/_ensure_connected.py
src/ophyd_async/plan_stubs/_fly.py
src/ophyd_async/plan_stubs/_settings.py
src/ophyd_async/plan_stubs/_utils.py
src/ophyd_async/plan_stubs/_wait_for_awaitable.py
src/ophyd_async/sim/__init__.py
src/ophyd_async/sim/__main__.py
src/ophyd_async/sim/_blob_arm_logic.py
src/ophyd_async/sim/_blob_data_logic.py
src/ophyd_async/sim/_blob_detector.py
src/ophyd_async/sim/_blob_trigger_logic.py
src/ophyd_async/sim/_mirror_horizontal.py
src/ophyd_async/sim/_mirror_vertical.py
src/ophyd_async/sim/_motor.py
src/ophyd_async/sim/_pattern_generator.py
src/ophyd_async/sim/_point_detector.py
src/ophyd_async/sim/_stage.py
src/ophyd_async/tango/__init__.py
src/ophyd_async/tango/core/__init__.py
src/ophyd_async/tango/core/_base_device.py
src/ophyd_async/tango/core/_converters.py
src/ophyd_async/tango/core/_signal.py
src/ophyd_async/tango/core/_tango_transport.py
src/ophyd_async/tango/core/_utils.py
src/ophyd_async/tango/demo/__init__.py
src/ophyd_async/tango/demo/_counter.py
src/ophyd_async/tango/demo/_detector.py
src/ophyd_async/tango/demo/_mover.py
src/ophyd_async/tango/demo/_tango/__init__.py
src/ophyd_async/tango/demo/_tango/_servers.py
src/ophyd_async/tango/testing/__init__.py
src/ophyd_async/tango/testing/_one_of_everything.py
src/ophyd_async/tango/testing/_test_config.py
src/ophyd_async/testing/__init__.py
src/ophyd_async/testing/__pytest_assert_rewrite.py
src/ophyd_async/testing/_assert.py
src/ophyd_async/testing/_one_of_everything.py
src/ophyd_async/testing/_single_derived.py
src/ophyd_async/testing/_utils.py
src/ophyd_async/testing/_wait_for_pending.py
tests/README.md
tests/conftest.py
tests/system_tests/__init__.py
tests/system_tests/conftest.py
tests/system_tests/test_tutorials.py
tests/system_tests/epics/no_transport_helper.py
tests/system_tests/epics/test_no_transport.py
tests/system_tests/epics/adsim/baseline.yaml
tests/system_tests/epics/adsim/external_dependencies.sh
tests/system_tests/epics/adsim/test_adsim_system.py
tests/system_tests/epics/eiger/README.md
tests/system_tests/epics/eiger/start_iocs_and_run_tests.sh
tests/system_tests/epics/eiger/test_eiger_system.py
tests/system_tests/epics/signal/test_signals.py
tests/system_tests/epics/signal/test_yaml_save_ca.yaml
tests/system_tests/epics/signal/test_yaml_save_pva.yaml
tests/system_tests/fastcs/panda/test_panda_connect.py
tests/system_tests_tango/conftest.py
tests/system_tests_tango/context_subprocess.py
tests/system_tests_tango/test_base_device.py
tests/system_tests_tango/test_tango_signals.py
tests/system_tests_tango/test_tango_transport.py
tests/unit_tests/__init__.py
tests/unit_tests/test_branching.py
tests/unit_tests/test_cli.py
tests/unit_tests/core/test_auto_init_devices.py
tests/unit_tests/core/test_device.py
tests/unit_tests/core/test_log.py
tests/unit_tests/core/test_mock_signal_backend.py
tests/unit_tests/core/test_multi_derived_signal.py
tests/unit_tests/core/test_observe.py
tests/unit_tests/core/test_protocol.py
tests/unit_tests/core/test_providers.py
tests/unit_tests/core/test_readable.py
tests/unit_tests/core/test_signal.py
tests/unit_tests/core/test_single_derived_signal.py
tests/unit_tests/core/test_soft_signal_backend.py
tests/unit_tests/core/test_standard_detector.py
tests/unit_tests/core/test_status.py
tests/unit_tests/core/test_subset_enum.py
tests/unit_tests/core/test_table.py
tests/unit_tests/core/test_trigger_info.py
tests/unit_tests/core/test_utils.py
tests/unit_tests/core/test_watchable_async_status.py
tests/unit_tests/epics/test_adandor.py
tests/unit_tests/epics/test_adaravis.py
tests/unit_tests/epics/test_adkinetix.py
tests/unit_tests/epics/test_admerlin.py
tests/unit_tests/epics/test_adpilatus.py
tests/unit_tests/epics/test_adsimdetector.py
tests/unit_tests/epics/test_advimba.py
tests/unit_tests/epics/test_areadetector_subclass_naming.py
tests/unit_tests/epics/test_motor.py
tests/unit_tests/epics/adcore/test_arm_logic.py
tests/unit_tests/epics/adcore/test_cont_acq_detector.py
tests/unit_tests/epics/adcore/test_data_logic.py
tests/unit_tests/epics/adcore/test_detector.py
tests/unit_tests/epics/adcore/test_ios.py
tests/unit_tests/epics/adcore/test_prepare_exposures.py
tests/unit_tests/epics/adcore/test_use_cases.py
tests/unit_tests/epics/demo/test_epics_demo.py
tests/unit_tests/epics/pmac/conftest.py
tests/unit_tests/epics/pmac/test_pmac_io.py
tests/unit_tests/epics/pmac/test_pmac_trajectory.py
tests/unit_tests/epics/pmac/test_pmac_trajectory_generation.py
tests/unit_tests/epics/pmac/test_pmac_utils.py
tests/unit_tests/epics/pvi/test_pvi.py
tests/unit_tests/epics/signal/test_common.py
tests/unit_tests/fastcs/eiger/test_eiger_detector.py
tests/unit_tests/fastcs/jungfrau/__init__.py
tests/unit_tests/fastcs/jungfrau/test_controller.py
tests/unit_tests/fastcs/jungfrau/test_utils.py
tests/unit_tests/fastcs/odin/test_odin_io.py
tests/unit_tests/fastcs/panda/test_hdf_panda.py
tests/unit_tests/fastcs/panda/test_panda_connect_mock.py
tests/unit_tests/fastcs/panda/test_panda_utils.py
tests/unit_tests/fastcs/panda/test_seq_table.py
tests/unit_tests/fastcs/panda/test_trigger.py
tests/unit_tests/fastcs/panda/db/panda.db
tests/unit_tests/plan_stubs/test_ensure_connected.py
tests/unit_tests/plan_stubs/test_fly.py
tests/unit_tests/plan_stubs/test_ndattributes.py
tests/unit_tests/plan_stubs/test_settings.py
tests/unit_tests/sim/__init__.py
tests/unit_tests/sim/test_sim_blob_detector.py
tests/unit_tests/sim/test_sim_motor.py
tests/unit_tests/test_data/test_yaml_config_save.yaml
tests/unit_tests/test_data/test_yaml_save.yaml