.dockerignore
.gitattributes
.gitignore
.gitlab-ci.yml
.gitremotes
.pre-commit-config.yaml
CHANGELOG.rst
Dockerfile
LICENSE
README.rst
codecov.yml
pyproject.toml
.devcontainer/devcontainer.json
.github/CONTRIBUTING.rst
.github/dependabot.yml
.github/actions/install_requirements/action.yml
.github/pages/index.html
.github/pages/make_switcher.py
.github/workflows/code.yml
.github/workflows/docs.yml
.github/workflows/docs_clean.yml
.github/workflows/linkcheck.yml
.vscode/extensions.json
.vscode/launch.json
.vscode/settings.json
.vscode/tasks.json
docs/conf.py
docs/genindex.rst
docs/index.rst
docs/_static/theme_overrides.css
docs/developer/index.rst
docs/developer/explanations/decisions.rst
docs/developer/explanations/decisions/0001-record-architecture-decisions.rst
docs/developer/how-to/build-docs.rst
docs/developer/how-to/contribute.rst
docs/developer/how-to/lint.rst
docs/developer/how-to/make-release.rst
docs/developer/how-to/pin-requirements.rst
docs/developer/how-to/run-tests.rst
docs/developer/how-to/static-analysis.rst
docs/developer/how-to/test-container.rst
docs/developer/how-to/update-tools.rst
docs/developer/reference/standards.rst
docs/developer/tutorials/dev-install.rst
docs/images/example-systems.drawio.svg
docs/images/tickit-logo.ico
docs/images/tickit-logo.svg
docs/user/index.rst
docs/user/explanations/glossary.rst
docs/user/explanations/how-component-updates-are-ordered.rst
docs/user/how-to/accomplish-a-task.rst
docs/user/reference/api.rst
docs/user/tutorials/creating-a-device.rst
docs/user/tutorials/creating-a-simulation.rst
docs/user/tutorials/creating-an-adapter.rst
docs/user/tutorials/installation.rst
docs/user/tutorials/running-a-simulation.rst
examples/configs/attns.yaml
examples/configs/counter.yaml
examples/configs/cryo-tcp.yaml
examples/configs/current-monitor.yaml
examples/configs/eiger-shutter.yaml
examples/configs/eiger.yaml
examples/configs/http-device.yaml
examples/configs/iobox.yaml
examples/configs/multi-ioc.yaml
examples/configs/nested.yaml
examples/configs/shutter.yaml
examples/configs/sunk-tcp.yaml
examples/configs/sunk-trampoline.yaml
examples/devices/__init__.py
examples/devices/counter.py
examples/devices/http_device.py
examples/devices/iobox.py
examples/devices/remote_controlled.py
examples/devices/shutter.py
examples/devices/trampoline.py
src/tickit/__init__.py
src/tickit/__main__.py
src/tickit/_version.py
src/tickit/cli.py
src/tickit.egg-info/PKG-INFO
src/tickit.egg-info/SOURCES.txt
src/tickit.egg-info/dependency_links.txt
src/tickit.egg-info/entry_points.txt
src/tickit.egg-info/requires.txt
src/tickit.egg-info/top_level.txt
src/tickit/adapters/__init__.py
src/tickit/adapters/composed.py
src/tickit/adapters/httpadapter.py
src/tickit/adapters/zmqadapter.py
src/tickit/adapters/epicsadapter/__init__.py
src/tickit/adapters/epicsadapter/adapter.py
src/tickit/adapters/epicsadapter/ioc_manager.py
src/tickit/adapters/interpreters/__init__.py
src/tickit/adapters/interpreters/utils.py
src/tickit/adapters/interpreters/command/__init__.py
src/tickit/adapters/interpreters/command/command_interpreter.py
src/tickit/adapters/interpreters/command/regex_command.py
src/tickit/adapters/interpreters/endpoints/__init__.py
src/tickit/adapters/interpreters/endpoints/http_endpoint.py
src/tickit/adapters/interpreters/wrappers/__init__.py
src/tickit/adapters/interpreters/wrappers/beheading_interpreter.py
src/tickit/adapters/interpreters/wrappers/joining_interpreter.py
src/tickit/adapters/interpreters/wrappers/splitting_interpreter.py
src/tickit/adapters/servers/__init__.py
src/tickit/adapters/servers/tcp.py
src/tickit/core/__init__.py
src/tickit/core/adapter.py
src/tickit/core/device.py
src/tickit/core/runner.py
src/tickit/core/typedefs.py
src/tickit/core/components/__init__.py
src/tickit/core/components/component.py
src/tickit/core/components/device_simulation.py
src/tickit/core/components/system_simulation.py
src/tickit/core/management/__init__.py
src/tickit/core/management/event_router.py
src/tickit/core/management/ticker.py
src/tickit/core/management/schedulers/__init__.py
src/tickit/core/management/schedulers/base.py
src/tickit/core/management/schedulers/master.py
src/tickit/core/management/schedulers/slave.py
src/tickit/core/state_interfaces/__init__.py
src/tickit/core/state_interfaces/internal.py
src/tickit/core/state_interfaces/kafka.py
src/tickit/core/state_interfaces/state_interface.py
src/tickit/devices/__init__.py
src/tickit/devices/sink.py
src/tickit/devices/source.py
src/tickit/devices/cryostream/__init__.py
src/tickit/devices/cryostream/base.py
src/tickit/devices/cryostream/cryostream.py
src/tickit/devices/cryostream/states.py
src/tickit/devices/cryostream/status.py
src/tickit/devices/eiger/__init__.py
src/tickit/devices/eiger/eiger.py
src/tickit/devices/eiger/eiger_adapters.py
src/tickit/devices/eiger/eiger_schema.py
src/tickit/devices/eiger/eiger_settings.py
src/tickit/devices/eiger/eiger_status.py
src/tickit/devices/eiger/data/__init__.py
src/tickit/devices/eiger/data/dummy_image.py
src/tickit/devices/eiger/filewriter/__init__.py
src/tickit/devices/eiger/filewriter/eiger_filewriter.py
src/tickit/devices/eiger/filewriter/filewriter_config.py
src/tickit/devices/eiger/filewriter/filewriter_status.py
src/tickit/devices/eiger/monitor/__init__.py
src/tickit/devices/eiger/monitor/eiger_monitor.py
src/tickit/devices/eiger/monitor/monitor_config.py
src/tickit/devices/eiger/monitor/monitor_status.py
src/tickit/devices/eiger/resources/__init__.py
src/tickit/devices/eiger/resources/frame_sample
src/tickit/devices/eiger/stream/__init__.py
src/tickit/devices/eiger/stream/eiger_stream.py
src/tickit/devices/eiger/stream/stream_config.py
src/tickit/devices/eiger/stream/stream_status.py
src/tickit/devices/femto/__init__.py
src/tickit/devices/femto/current.py
src/tickit/devices/femto/femto.py
src/tickit/devices/femto/record.db
src/tickit/devices/pneumatic/__init__.py
src/tickit/devices/pneumatic/pneumatic.py
src/tickit/devices/pneumatic/db_files/__init__.py
src/tickit/devices/pneumatic/db_files/filter1.db
src/tickit/utils/__init__.py
src/tickit/utils/byte_format.py
src/tickit/utils/singleton.py
src/tickit/utils/topic_naming.py
src/tickit/utils/compat/__init__.py
src/tickit/utils/compat/functools_compat.py
src/tickit/utils/compat/typing_compat.py
src/tickit/utils/configuration/__init__.py
src/tickit/utils/configuration/configurable.py
src/tickit/utils/configuration/loading.py
tests/conftest.py
tests/test_cli.py
tests/adapters/test_httpadapter.py
tests/adapters/test_zmqadapter.py
tests/adapters/interpreters/test_utils.py
tests/adapters/interpreters/command/test_command_interpreter.py
tests/adapters/interpreters/command/test_regex_command.py
tests/adapters/interpreters/endpoints/test_http_endpoint.py
tests/adapters/interpreters/wrappers/test_beheading_interpreter.py
tests/adapters/interpreters/wrappers/test_joining_interpreter.py
tests/adapters/interpreters/wrappers/test_splitting_interpreter.py
tests/adapters/servers/test_tcp.py
tests/adapters/test_epicsadapter/__init__.py
tests/adapters/test_epicsadapter/test_epics_adapter.py
tests/core/test_device.py
tests/core/test_device_simulation.py
tests/core/test_runner.py
tests/core/test_typedefs.py
tests/core/components/test_component.py
tests/core/components/test_system_simulation.py
tests/core/management/test_event_router.py
tests/core/management/test_ticker.py
tests/core/management/schedulers/test_base_scheduler.py
tests/core/management/schedulers/test_master_scheduler.py
tests/core/management/schedulers/test_slave_scheduler.py
tests/core/state_interfaces/test_internal.py
tests/core/state_interfaces/test_kafka.py
tests/core/state_interfaces/test_state_interface.py
tests/devices/test_sink.py
tests/devices/test_source.py
tests/devices/cryostream/test_base.py
tests/devices/cryostream/test_cryostream.py
tests/devices/eiger/test_eiger.py
tests/devices/eiger/test_eiger_adapters.py
tests/devices/eiger/test_eiger_filewriter.py
tests/devices/eiger/test_eiger_filewriter_config.py
tests/devices/eiger/test_eiger_filewriter_status.py
tests/devices/eiger/test_eiger_monitor.py
tests/devices/eiger/test_eiger_monitor_config.py
tests/devices/eiger/test_eiger_monitor_status.py
tests/devices/eiger/test_eiger_settings.py
tests/devices/eiger/test_eiger_status.py
tests/devices/eiger/test_eiger_stream.py
tests/devices/eiger/test_eiger_stream_config.py
tests/devices/eiger/test_eiger_stream_status.py
tests/devices/femto/test_femto.py
tests/devices/multi/test_multi_device.py
tests/devices/pneumatic/test_pneumatic.py
tests/utils/test_byte_format.py
tests/utils/test_configurable.py
tests/utils/test_singleton.py
tests/utils/test_topic_naming.py
tests/utils/configuration/test_loading.py