mpf 0.81.0.dev1__tar.gz → 0.81.0.dev3__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.
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.github/workflows/build_wheels.yml +3 -3
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.github/workflows/prospector.yml +2 -2
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.github/workflows/run_tests.yml +10 -4
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/PKG-INFO +2 -2
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/README.md +1 -1
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/Send variables via self.machine.events.post.rst +2 -2
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/overview/installation.rst +3 -3
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/testing/running_mpf_tests.rst +2 -2
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/_version.py +1 -1
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_spec.yaml +3 -3
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/device_manager.py +14 -1
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/events.py +9 -6
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/placeholder_manager.py +21 -1
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/utility_functions.py +11 -6
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/light_group.py +45 -13
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/magnet.py +1 -1
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/match/code/match.py +15 -5
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/parsers/event_reference_parser.py +10 -6
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast.py +7 -4
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_led.py +17 -7
- mpf-0.81.0.dev3/mpf/platforms/pinproc/windows/pinproc.cp313-win32.pyd +0 -0
- mpf-0.81.0.dev3/mpf/platforms/pinproc/windows/pinproc.cp313-win_amd64.pyd +0 -0
- mpf-0.81.0.dev3/mpf/platforms/pinproc/windows/pinproc.cp314-win32.pyd +0 -0
- mpf-0.81.0.dev3/mpf/platforms/pinproc/windows/pinproc.cp314-win_amd64.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/virtual_pinball/virtual_pinball.py +22 -1
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/auditor/config/config.yaml +1 -1
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/custom_code/code/test_code.py +4 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/event_manager/config/test_event_manager.yaml +6 -0
- mpf-0.81.0.dev3/mpf/tests/machine_files/event_manager/modes/game_mode/config/game_mode.yaml +14 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light/config/light_groups.yaml +12 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/service_mode/config/config.yaml +1 -1
- mpf-0.81.0.dev3/mpf/tests/machine_files/settings/config/config.yaml +48 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_CustomCode.py +7 -0
- mpf-0.81.0.dev3/mpf/tests/test_DeviceManager.py +102 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_EventManager.py +45 -0
- mpf-0.81.0.dev3/mpf/tests/test_Fast_Led.py +61 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_LightGroups.py +48 -16
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_LightNumbering.py +2 -3
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_MatchMode.py +16 -4
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_RandomEventPlayer.py +4 -4
- mpf-0.81.0.dev3/mpf/tests/test_Settings.py +42 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Utility_Functions.py +54 -7
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_VPX.py +71 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf.egg-info/PKG-INFO +2 -2
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf.egg-info/SOURCES.txt +5 -4
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/tools/smart_matrix_dmd_teensy_code/smart_matrix_dmd_teensy_code.ino +2 -2
- mpf-0.81.0.dev1/mpf/platforms/pinproc/windows/pinproc.cp38-win32.pyd +0 -0
- mpf-0.81.0.dev1/mpf/platforms/pinproc/windows/pinproc.cp38-win_amd64.pyd +0 -0
- mpf-0.81.0.dev1/mpf/platforms/pinproc/windows/pinproc.cp39-win32.pyd +0 -0
- mpf-0.81.0.dev1/mpf/platforms/pinproc/windows/pinproc.cp39-win_amd64.pyd +0 -0
- mpf-0.81.0.dev1/mpf/tests/machine_files/event_manager/modes/game_mode/config/game_mode.yaml +0 -9
- mpf-0.81.0.dev1/mpf/tests/machine_files/settings/config/config.yaml +0 -21
- mpf-0.81.0.dev1/mpf/tests/test_DeviceManager.py +0 -39
- mpf-0.81.0.dev1/mpf/tests/test_Settings.py +0 -26
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.bandit +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.coveragerc +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.github/dependabot.yml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.gitignore +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/.prospector.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/AUTHORS.md +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/CONTRIBUTING.md +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/LICENSE.md +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/Makefile +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/RELEASE.md +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/Makefile +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-114x114.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-120x120.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-144x144.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-152x152.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-57x57.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-60x60.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-72x72.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/apple-touch-icon-76x76.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/favicon-128.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/favicon-16x16.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/favicon-196x196.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/favicon-32x32.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/favicon-96x96.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/favicon.ico +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/mstile-144x144.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/mstile-150x150.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/mstile-310x150.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/mstile-310x310.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/icons/mstile-70x70.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/mpf-logo-200.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/mpf-logo-tiny.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/images/mpf-logo-tiny@2x.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_static/mpf.css +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/config_players.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/config_players_overview.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/devices.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/devices_overview.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/machine.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/machine_overview.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/misc.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/misc_overview.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/modes.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/modes_overview.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/platforms.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/platforms_overview.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/self.machine.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/tests.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/_templates/tests_overview.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/ball_end.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/ball_start.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/device.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/error.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/goodbye.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/hello.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/machine_variable.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/mode_start.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/mode_stop.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/monitor_start.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/monitor_stop.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/player_added.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/player_turn_start.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/player_variable.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/register_trigger.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/remove_trigger.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/reset.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/reset_complete.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/switch.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/bcp/trigger.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/code/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/code/machine_code.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/code/mode_code.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/conf.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/dev_environment.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/event_annotations.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/hardware.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/mc.widget_player.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/plugins.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/functions/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/functions/machine_variables.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/functions/player_variables.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/genindex.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/images/custom_mode_code.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/images/scriptlet.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/images/test_classes.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/make.bat +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/overview/boot_process.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/overview/files.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/overview/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/overview/yaml.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/requirements.txt +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/testing/fuzz_testing.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/testing/index.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/testing/tutorial/1.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/testing/tutorial/2.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/testing/writing_machine_tests.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/testing/writing_mpf_tests.rst +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/get_version.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/__main__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/assets/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/assets/show.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/machine_files/events/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/machine_files/shows/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/machine_files/shows/shows/minimal_light_show.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/machine_files/shows/shows/minimal_light_show_token.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/machine_files/shows/shows/multi_step_tags.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/machine_files/shows/shows/single_step_tag.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/machine_files/switch_hits/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/test_benchmark_events.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/test_benchmark_light_shows.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/benchmarks/test_benchmark_switch_hits.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/both.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/build.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/core.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/create_config.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/diagnosis.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/game.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/hardware.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/init.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/logging_formatters.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/service.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/templates/attract.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/templates/base.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/templates/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/test.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/commands/wire.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/bcp_plugin_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/blinkenlight_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/block_event_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/bus_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/coil_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/device_config_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/event_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/flasher_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/flat_config_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/hardware_sound_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/light_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/plugin_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/queue_event_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/queue_relay_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/random_event_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/score_queue_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/segment_display_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/show_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/slide_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/sound_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/variable_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/config_players/widget_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/assets.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/async_mode.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/ball_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/ball_search.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/bcp.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/bcp_client.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/bcp_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/bcp_pickle_client.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/bcp_server.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/bcp_socket_client.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/bcp/bcp_transport.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/case_insensitive_dict.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/clock.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/config_loader.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/config_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/config_processor.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/config_spec_loader.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/config_validator.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/crash_reporter.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/custom_code.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/data_manager.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/delays.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/device.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/device_monitor.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/enable_disable_mixin.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/file_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/file_manager.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/light_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/logging.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/machine.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/machine_vars.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/mode.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/mode_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/mode_device.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/mpf_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/platform.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/platform_batch_light_system.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/platform_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/plugin.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/randomizer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/rgb_color.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/rgba_color.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/segment_mappings.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/service_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/settings_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/show_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/switch_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/system_wide_device.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/core/text_ui.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/accelerometer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/achievement.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/achievement_group.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/autofire.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/ball_count_handler.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/ball_device.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/ball_device_ejector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/ball_device_state_handler.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/default_ball_search.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/enable_coil_ejector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/entrance_switch_counter.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/event_ejector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/hold_coil_ejector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/incoming_balls_handler.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/outgoing_balls_handler.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/physical_ball_counter.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/pulse_coil_ejector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_device/switch_counter.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_hold.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_routing.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/ball_save.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/blinkenlight.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/combo_switch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/device_mixins.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/digital_output.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/digital_score_reel.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/diverter.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/driver.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/drop_target.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/dual_wound_coil.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/extra_ball.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/extra_ball_group.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/flipper.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/hardware_sound_system.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/kickback.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/light.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/logic_blocks.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/motor.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/multiball.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/multiball_lock.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/playfield.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/playfield_transfer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/power_supply_unit.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/rgb_dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/score_queue.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/score_reel.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/score_reel_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/score_reel_group.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/segment_display/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/segment_display/segment_display.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/segment_display/segment_display_text.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/segment_display/text_stack_entry.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/segment_display/transition_manager.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/segment_display/transitions.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/sequence_shot.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/servo.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/shaker.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/shot.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/shot_group.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/shot_profile.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/show_queue.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/speedometer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/spinner.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/state_machine.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/stepper.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/switch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/timed_switch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/devices/timer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/exceptions/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/exceptions/base_error.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/exceptions/config_file_error.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/exceptions/driver_limits_error.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/exceptions/runtime_error.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/file_interfaces/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/file_interfaces/pickle_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/file_interfaces/yaml_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/attract/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/attract/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/attract/code/attract.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/attract/config/attract.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/bonus/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/bonus/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/bonus/code/bonus.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/bonus/config/bonus.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/carousel/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/carousel/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/carousel/code/carousel.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/credits/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/credits/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/credits/code/credits.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/credits/config/credits.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/game/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/game/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/game/code/game.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/game/config/game.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/code/high_score.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/config/high_score.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/images/back_arrow_7x7.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/images/back_arrow_7x7_selected.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/images/end_11x7.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/high_score/images/end_11x7_selected.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/match/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/match/config/match.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service/code/service.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service/config/service.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service/sounds/power_off.ogg +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service/sounds/switch_hit.ogg +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service_dmd/config/service_dmd.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/service_segment_display/config/service_segment_display.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/tilt/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/tilt/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/tilt/code/tilt.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/modes/tilt/config/tilt.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/mpfconfig.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/parsers/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/parsers/special_events.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/base_serial_communicator.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/driver_light_platform.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fadecandy.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/TODO.md +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/aud.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/base.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/emu.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/exp.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/net_nano.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/net_neuron.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/net_retro.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/rgb.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/communicators/seg.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_audio.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_defines.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_driver.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_exp_board.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_gi.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_io_board.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_light.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_port_detector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_segment_display.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_servo.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_shaker.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_stepper.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/fast/fast_switch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/i2c_servo_controller.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/accelerometer_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/dmd_platform.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/driver_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/hardware_sound_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/i2c_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/light_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/segment_display_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/servo_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/shaker_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/stepper_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/interfaces/switch_platform_interface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/light_segment_displays.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/lisy/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/lisy/defines.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/lisy/lisy.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/mma8451.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/mypinballs/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/mypinballs/mypinballs.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/openpixel.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp_coil.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp_incand.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp_modern_lights.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp_rs232_intf.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp_serial_communicator.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp_servo.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/opp/opp_switch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/osc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/p3_roc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/p_roc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/p_roc_common.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/p_roc_devices.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pin2dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pinproc/osx/pinproc.so +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pinproc/windows/pinproc.cp310-win32.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pinproc/windows/pinproc.cp310-win_amd64.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pinproc/windows/pinproc.cp311-win32.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pinproc/windows/pinproc.cp311-win_amd64.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pinproc/windows/pinproc.cp312-win32.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pinproc/windows/pinproc.cp312-win_amd64.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone_coil.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone_extension.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone_lights.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone_lightshow.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone_serial_communicator.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone_servo.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pkone/pkone_switch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pololu/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pololu/pololu_tic.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pololu/pololu_ticcmd_wrapper.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/pololu_maestro.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/rpi/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/rpi/rpi.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/rpi_dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/smart_virtual.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/smartmatrix.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/smbus2.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/snux.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/spi_bit_bang.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/spike/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/spike/spike.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/spike/spike_defines.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/step_stick.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/system11.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/trinamics/README +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/trinamics/TMCL.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/trinamics/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/trinamics_steprocker.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/virtual.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/virtual_pinball/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/generate.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/platform_pb2.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/protobuf/platform.proto +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/service.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/test_client.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/test_server.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/visual_pinball_engine/visual_pinball_engine.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_arm64/extending.so +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_arm64/libserialport.so.0 +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_arm64/libsockpp.so.1 +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_arm64/libzedmd.so +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_x64/extending.so +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_x64/libserialport.so.0 +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_x64/libsockpp.so.1 +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/linux_x64/libzedmd.so +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_arm64/extending.so +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_arm64/libserialport.dylib +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_arm64/libsockpp.dylib +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_arm64/libzedmd.dylib +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_x64/extending.so +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_x64/libserialport.dylib +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_x64/libsockpp.dylib +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/macos_x64/libzedmd.dylib +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/win_x64/extending.pyd +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/win_x64/libserialport64.dll +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/win_x64/sockpp64.dll +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/platforms/zedmd_lib/win_x64/zedmd64.dll +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/auditor.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/info_lights.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/platform_integration_test_runner.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/switch_player.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/twitch/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/twitch/twitch_client.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/twitch_bot.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/plugins/virtual_segment_display_connector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfBcpTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfDocTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfFakeGameTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfGameTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfIntegrationDocTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfMachineTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfPlatformIntegrationTest.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/MpfTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/README.md +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/TestDataManager.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/loop.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/accelerometer/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/achievement/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/achievement/modes/auto_select/config/auto_select.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/achievement/modes/base/config/base.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/achievement/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/apc/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/config/test_asset_loading.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/custom1/show8.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/mode_start/show9.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/on_demand/show10.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/preload/show7.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/modes/mode1/shows/show6.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/custom1/show11.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/custom1/show13.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/on_demand/show5.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/preload/show4.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/preload/subfolder/show4b.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/show1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/show12.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/show2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/asset_manager/shows/show3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/auditor/modes/base/config/base.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/autofire/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_controller/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_controller/config/regression.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_auto_manual_plunger.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_event_confirmation.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_event_ejector.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_jam_switch.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_jam_switch_initial.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_manual_with_target.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_no_plunger_switch.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_routing.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_switch_confirmation.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_ball_device_trigger_events.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_enable_coil.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_enable_coil_multiple.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_gottlieb_trough.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_gottlieb_trough_with_initial_balls.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_hold_coil.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_jam_and_ball_left.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_modern_trough_plunger_setup.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_player_controlled_eject.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_playfield_lock.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_pulse_eject.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_single_device.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_system_11_trough.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_system_11_trough_startup.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/test_too_long_exit_count_delay.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/trough_entrance_switch.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_device/config/trough_entrance_switch_initial_balls.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_holds/config/test_ball_holds.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_holds/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_routing/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_routing/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_save/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_save/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_save/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_search/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_search/config/config_ball_device.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_search/config/config_with_balls.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_search/config/mechanical_eject.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_search/config/missing_initial.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/ball_search/config/no_eject.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bcp/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bcp/config/multiple_connections_config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bcp/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bcp/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/blinkenlight/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/blinkenlight/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/blinkenlight/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/blocking_events/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/blocking_events/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/blocking_events/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/blocking_events/modes/mode3/config/mode3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus/modes/bonus/config/bonus.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_additional_events/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_additional_events/modes/bonus/config/bonus.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_additional_events/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_dynamic_keep_multiplier/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_dynamic_keep_multiplier/modes/bonus/config/bonus.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_dynamic_keep_multiplier/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_no_keep_multiplier/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_no_keep_multiplier/modes/bonus/config/bonus.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/bonus_no_keep_multiplier/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/carousel/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/carousel/modes/blocking_carousel/config/blocking_carousel.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/carousel/modes/carousel/config/carousel.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/carousel/modes/conditional_carousel/config/conditional_carousel.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/carousel/modes/nowrap_carousel/config/nowrap_carousel.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/carousel/modes/second_carousel/config/second_carousel.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/coil_player/config/coil_player.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/coil_player/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/combo_switches/config/combo_switches.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/combo_switches/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_errors/broken_show/config/show.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_errors/broken_show/shows/broken_show.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_interface/config/test_config_interface.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_interface/config/test_config_interface_missing_version.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_interface/config/test_config_interface_old_version.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_loader/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_loader/modes/game/config/game.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_loader/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_loader/modes/mode1/shows/mode1_show.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_loader/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_loader/shows/show1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_players/config/test_config_players.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_players/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_players/modes/mode1/shows/mode1_show.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_players/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_players/shows/show1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_processor/typo.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_processor/working.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/config_processor/working_subconfig.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/counters/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/counters/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/credits/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/credits/config/config_credit_tiers.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/credits/config/config_freeplay.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/credits/config/config_inhibit.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/credits/modes/credits/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/custom_code/code/__init__.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/custom_code/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/data_manager/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/device/config/coils.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/device/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/device/config/config_dual_wound_coil.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/device_collection/config/test_device_collection.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/digital_output/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/digital_score_reels/config/test_digital_score_reels.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/diverter_with_activation_events.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/only_events_no_coils.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_activation_switch_and_eject_confirm_switch.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_delayed_eject.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_diverter_auto_disable.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_diverter_dual_wound_coil.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_diverter_with_switch.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_eject_to_oposide_sides.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_eject_to_oposide_sides2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_hold_activation_time.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_hold_activation_time_template.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_hold_no_activation_time.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_missing_ball_at_source.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/diverter/config/test_pulsed_activation_time.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/dmd/config/testDmd.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/dmd/config/testRgbDmd.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/drop_targets/config/test_drop_targets.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/drop_targets/config/test_multiple_drop_resets_on_startup.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/drop_targets/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/event_manager/modes/test_mode/config/test_mode.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/event_players/config/test_event_player.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/event_players/config/test_queue_event_player.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/event_players/config/test_random_event_player.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/event_players/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/event_players/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/extra_ball/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/extra_ball/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/audio.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/audio2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/dmd.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/error_lights.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/exp.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/nano.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/neuron.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/retro.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/fast/config/seg.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/flippers/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/flippers/config/hold_no_eos.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/flippers/config/software_eos_repulse.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/game/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/game/config/config_with_balls.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/head2head/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/high_score/config/high_score.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/high_score/modes/high_score/config/high_score.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/high_score_reverse/config/high_score.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/high_score_reverse/modes/high_score/config/high_score.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/high_score_vars/config/high_score.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/high_score_vars/modes/high_score/config/high_score.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/i2c_servo_controller/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/info_lights/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/kickback/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light/config/light.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light/config/light_autonumber.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light/config/light_default_color_correction.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light/config/lights_on_drivers.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light/config/matrix_lights.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_player/config/light_player.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_player/config/light_player_named_colors.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_player/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_player/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_player/shows/show_ext1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_player/shows/show_ext2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_player/shows/show_ext3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_segment_displays/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/light_segment_displays/config/config_dots.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/lisy/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/lisy/config/config_modern.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/lisy/config/config_system11.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/logic_blocks/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/logic_blocks/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/logic_blocks/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/logic_blocks/modes/mode3/config/mode3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/logic_blocks/modes/mode4/config/mode4.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/machine_vars/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/magnet/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/match_mode/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/match_mode/config/config_highscore.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/match_mode/modes/match/config/match.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mma8451/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/config/test_broken_mode_config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/config/test_empty_modes_section.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/config/test_loading_invalid_modes.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/config/test_missing_mode_section.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/config/test_mode_without_config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/config/test_modes.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/config/test_modes_in_game.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/broken_mode/config/broken_mode.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/broken_mode2/config/broken_mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode1/config/test.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode3/code/mode3.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode3/config/mode3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode4/config/mode4.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/config/mode5.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/config/test.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/mode8/config/mode8.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/mode5/mode8/config/test.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode6/config/mode6.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode6/config/test.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode7/config/mode7.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_in_sub_folder/sub_mode/mode7/config/test.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_restart_on_next_ball/config/mode_restart_on_next_ball.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mode_tests/modes/mode_without_config/config/README +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/motor/config/drop_target.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/motor/config/ghostbusters.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/motor/config/multiposition_motor.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/motor/config/multiposition_motor_home_in_the_middle.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/motor/config/multiposition_motor_start_on_end_switch.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mpftestcase/config/test_mpftestcase.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball/modes/mode3/config/mode3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball/modes/mode4/config/mode4.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball/modes/mode5/config/mode5.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/testDefault.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/testMinVirtualPhysical.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/testNoVirtual.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/testPhysicalOnly.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/testPhysicalOnlyNoStealing.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/testSourceDevices.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/config/testVirtualOnly.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/blocking/config/blocking.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/default/config/default.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/min_virtual_physical/config/min_virtual_physical.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/no_virtual/config/no_virtual.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/physical_only/config/physical_only.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/physical_only_no_stealing/config/physical_only_no_stealing.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/source_devices/config/source_devices.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/multiball_locks/modes/virtual_only/config/virtual_only.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/mypinballs/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/null/config/null.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/openpixel/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/openpixel/config/fadecandy.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/opp/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/opp/config/config2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/opp/config/config_stm32.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/osc/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/p3_roc/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/p_roc/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/p_roc/config/snux.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/p_roc/config/wpc.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/pkone/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/platform/config/test_platform.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/platform/config/test_virtual.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/player_vars/config/player_vars.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/playfield/config/test_playfield.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/playfield_transfer/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/plugin_config_player/config/plugin_config_player.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/plugin_config_player/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/plugin_config_player/modes/mode1/shows/show2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/plugin_config_player/modes/mode1/shows/show3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/plugin_config_player/shows/show1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/pololu_maestro/config/pololu_maestro.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/pololu_tic/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/randomizer/config/randomizer.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/rpi/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/rpi_dmd/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/score_queue/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/score_queue/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/score_reels/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/segment_display/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/segment_display/config/config_colors.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/segment_display/config/config_flashing.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/segment_display/config/config_transition.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/segment_display/config/game.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/segment_display/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/sequence_shot/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/sequence_shot/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/servo/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/config/test_shot_group_rotate_with_exclude.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/config/test_shot_groups.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/config/test_shots.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/modes/base/config/base.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/modes/base2/config/base2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/modes/base3/config/base3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/modes/mode3/config/mode3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shots/modes/rotate_with_exclude/config/rotate_with_exclude.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/config/test_show_player_queue.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/config/test_show_pools.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/config/test_shows.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/config/test_sync_ms.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/modes/mode3/config/mode3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/modes/mode4/config/mode4.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/8linesweep.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/myparentshow.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/on_demand/mychildshow.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/test_show1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/test_show2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/test_show3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/test_show_key_token.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/shows/shows/test_variable_show.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/smart_matrix/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/smart_matrix/config/old_cookie.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/smart_virtual_platform/config/test_coil_fired_plunger.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/smart_virtual_platform/config/test_entrance_switch.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/smart_virtual_platform/config/test_smart_virtual.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/smart_virtual_platform/config/test_smart_virtual_initial.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/smbus2/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/snux/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/spi_bit_bang/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/spike/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/spinners/config/test_spinners.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/state_machine/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/state_machine/modes/game_mode/config/game_mode.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/state_machine/modes/non_game_mode/config/non_game_mode.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/step_stick/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/stepper/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/switch_controller/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/switch_player/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/tilt/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/tilt/config/config_mechanical_eject.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/tilt/config/config_system_11_trough.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/tilt/config/settings.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/tilt/modes/base/config/base.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/tilt/modes/tilt/config/tilt.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/tilt_defaults/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/timed_switches/config/timed_switches.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/timed_switches/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/timer/config/test_timer.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/timer/modes/mode_with_timers/config/mode_with_timers.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/timer/modes/mode_with_timers2/config/mode_with_timers2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/trinamics_steprocker/config/trinamics_steprocker.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/twitch_client/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/variable_player/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/variable_player/modes/mode1/config/mode1.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/variable_player/modes/mode2/config/mode2.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/variable_player/modes/mode3/config/mode3.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/variable_player/modes/mode_for_logic_block/config/mode_for_logic_block.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/variable_player/modes/non_game_mode/config/non_game_mode.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/virtual_pinball/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/virtual_segment_display_connector/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/vpe/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/machine_files/vpx/config/config.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/platforms/fast.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/platforms/pinproc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/regression_tests/light_player_subscriptions.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/regression_tests/shot_same_show_differnent_token.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/regression_tests/shots_with_token_in_profile_and_shot.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/regression_tests/show_player_subscriptions.yaml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Accelerometer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Achievement.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_AssetManager.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Attract.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Auditor.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Autofire.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallController.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDevice.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceAutoManualPlunger.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceEnableCoil.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceEventConfirmation.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceEventEjector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceHoldCoil.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceJamSwitch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceManualWithTarget.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceModernTroughPlungerSetup.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceNoPlungerSwitch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDevicePlayfieldLock.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDevicePulseEject.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceRouting.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceSingle.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceSwitchConfirmation.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDeviceTriggerEvents.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallDevice_SmartVirtual.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallHold.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallRouting.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallSave.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BallSearch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BcpInterface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BcpMc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BcpServer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BcpSocketClient.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Blinkenlight.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_BlockingEvents.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Bonus.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_CarouselMode.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Clock.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_CoilPlayer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ComboSwitches.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_CommandCreateConfig.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Commands.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Config.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ConfigErrors.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ConfigLoader.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ConfigMissingVersion.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ConfigOldVersion.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ConfigPlayers.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ConfigProcessor.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_CreditsMode.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DataManager.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Delay.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DeviceCollection.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DeviceDriver.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DeviceFlasher.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DeviceGI.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DeviceLight.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DeviceMatrixLight.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DigitalOutput.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DigitalScoreReels.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Diverter.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DropTargets.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_DualWoundCoil.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_EventPlayer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ExtraBall.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fadecandy.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast_Audio.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast_Dmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast_Exp.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast_Nano.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast_Neuron.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast_Retro.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Fast_Seg.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Flippers.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_FlippersHoldNoEos.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_FlippersSoftwareEosRepulse.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Game.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_GottliebTrough.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Head2Head.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_HighScoreMode.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_HighScoreModeWithVars.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_I2cServoController.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_InfoLights.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Kickback.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_LightPlayer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_LightPositions.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_LightSegmentDisplays.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Lisy.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_LogicBlocks.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_MMA8451.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_MachineVariables.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Magnet.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Modes.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ModesConfigValidation.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Motors.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_MpfTestCase.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_MultiBall.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_MultiballLock.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_MyPinballs.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_OPP.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Openpixel.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Osc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_P3_Roc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_PKONE.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_P_Roc.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_PlaceholderManager.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Platform.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_PlayerVars.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Playfield.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_PlayfieldTransfer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_PluginConfigPlayer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_PololuMaestro.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_PololuTic.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_QueueEventPlayer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_RGBColor.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Randomizer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Rpi.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_RpiDmd.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ScoreQueue.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ScoreReels.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SegmentDisplay.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SegmentMappings.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SequenceShot.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ServiceCli.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ServiceMode.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Servo.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ShotGroups.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Shots.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_ShowPools.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Shows.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SmartMatrix.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SmartVirtualPlatform.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Smbus2.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Snux.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SpiBitBang.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Spike.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Spinners.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_StateMachine.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_StepStick.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Stepper.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SwitchController.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SwitchPlayer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_SwitchPositions.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_System11Trough.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Tilt.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_TimedSwitch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Timer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_TooLongExitCountDelay.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_TrinamicsStepRocker.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_TroughEntranceSwitch.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_TwitchClient.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_VariablePlayer.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_Virtual.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_VirtualPinball.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_VirtualSegmentDisplayConnector.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_VisualPinballEngine.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/test_YamlInterface.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/tests/vpe_simulator.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/wire/base.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf/wire/fast.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf-logo-200.png +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf.egg-info/dependency_links.txt +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf.egg-info/entry_points.txt +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf.egg-info/requires.txt +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf.egg-info/top_level.txt +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mpf.spec +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/mypy.ini +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/pyproject.toml +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/setup.cfg +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/setup.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/sonar-project.properties +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/test_machine.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/test_regression.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/tools/afl_fuzz.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/tools/afl_howto.txt +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/tools/convert_segments.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/tools/debug_run_game.py +0 -0
- {mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/tools/p3_switch_test.py +0 -0
|
@@ -17,10 +17,10 @@ jobs:
|
|
|
17
17
|
|
|
18
18
|
steps:
|
|
19
19
|
- name: Checkout MPF
|
|
20
|
-
uses: actions/checkout@
|
|
20
|
+
uses: actions/checkout@v6
|
|
21
21
|
|
|
22
22
|
- name: Setup python
|
|
23
|
-
uses: actions/setup-python@
|
|
23
|
+
uses: actions/setup-python@v6
|
|
24
24
|
with:
|
|
25
25
|
python-version: 3.13
|
|
26
26
|
|
|
@@ -38,7 +38,7 @@ jobs:
|
|
|
38
38
|
- name: Build wheel
|
|
39
39
|
run: python -m build
|
|
40
40
|
|
|
41
|
-
- uses: actions/upload-artifact@
|
|
41
|
+
- uses: actions/upload-artifact@v7
|
|
42
42
|
with:
|
|
43
43
|
path: ./dist/*.*
|
|
44
44
|
|
|
@@ -4,11 +4,17 @@ on:
|
|
|
4
4
|
push:
|
|
5
5
|
branches:
|
|
6
6
|
- dev
|
|
7
|
+
- 0.57.x
|
|
8
|
+
- 0.58.x
|
|
7
9
|
- 0.80.x
|
|
10
|
+
- 0.81.x
|
|
8
11
|
pull_request:
|
|
9
12
|
branches:
|
|
10
13
|
- dev
|
|
14
|
+
- 0.57.x
|
|
15
|
+
- 0.58.x
|
|
11
16
|
- 0.80.x
|
|
17
|
+
- 0.81.x
|
|
12
18
|
|
|
13
19
|
jobs:
|
|
14
20
|
tests:
|
|
@@ -53,10 +59,10 @@ jobs:
|
|
|
53
59
|
|
|
54
60
|
steps:
|
|
55
61
|
- name: Checkout MPF
|
|
56
|
-
uses: actions/checkout@
|
|
62
|
+
uses: actions/checkout@v6
|
|
57
63
|
|
|
58
64
|
- name: Setup python
|
|
59
|
-
uses: actions/setup-python@
|
|
65
|
+
uses: actions/setup-python@v6
|
|
60
66
|
with:
|
|
61
67
|
python-version: ${{ matrix.python-version }}
|
|
62
68
|
|
|
@@ -90,7 +96,7 @@ jobs:
|
|
|
90
96
|
|
|
91
97
|
- name: Upload coverage data to coveralls.io
|
|
92
98
|
if: matrix.os != 'windows-latest'
|
|
93
|
-
run: coveralls --service=github
|
|
99
|
+
run: coveralls --service=github-actions
|
|
94
100
|
env:
|
|
95
101
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
96
102
|
COVERALLS_FLAG_NAME: ${{ matrix.python-version }}-${{ matrix.os }}
|
|
@@ -105,6 +111,6 @@ jobs:
|
|
|
105
111
|
- name: Finished
|
|
106
112
|
run: |
|
|
107
113
|
pip3 install --upgrade coveralls
|
|
108
|
-
coveralls --service=github --finish
|
|
114
|
+
coveralls --service=github-actions --finish
|
|
109
115
|
env:
|
|
110
116
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mpf
|
|
3
|
-
Version: 0.81.0.
|
|
3
|
+
Version: 0.81.0.dev3
|
|
4
4
|
Summary: The Mission Pinball Framework (MPF)
|
|
5
5
|
Author-email: The Mission Pinball Framework Team <brian@missionpinball.org>
|
|
6
6
|
License: MIT
|
|
@@ -85,7 +85,7 @@ What is Mission Pinball Framework?
|
|
|
85
85
|
Mission Pinball Framework (MPF) is open source, cross-platform software for powering real pinball
|
|
86
86
|
machines. MPF is a community-developed project released under the MIT license. It's supported by volunteers in their spare time.
|
|
87
87
|
|
|
88
|
-
[](https://coveralls.io/github/missionpinball/mpf?branch=dev)
|
|
89
89
|
[](https://github.com/missionpinball/mpf/actions/workflows/run_tests.yml)
|
|
90
90
|
[](https://bestpractices.coreinfrastructure.org/projects/1687)
|
|
91
91
|
|
|
@@ -11,7 +11,7 @@ What is Mission Pinball Framework?
|
|
|
11
11
|
Mission Pinball Framework (MPF) is open source, cross-platform software for powering real pinball
|
|
12
12
|
machines. MPF is a community-developed project released under the MIT license. It's supported by volunteers in their spare time.
|
|
13
13
|
|
|
14
|
-
[](https://coveralls.io/github/missionpinball/mpf?branch=dev)
|
|
15
15
|
[](https://github.com/missionpinball/mpf/actions/workflows/run_tests.yml)
|
|
16
16
|
[](https://bestpractices.coreinfrastructure.org/projects/1687)
|
|
17
17
|
|
{mpf-0.81.0.dev1 → mpf-0.81.0.dev3}/docs/dev/Send variables via self.machine.events.post.rst
RENAMED
|
@@ -6,7 +6,7 @@ http://developer.missionpinball.org/en/dev/api/self.machine.events.html?highligh
|
|
|
6
6
|
|
|
7
7
|
The best example here is to use the communication between MPF and MPF MC.
|
|
8
8
|
MPF MC can pretty much only read variables from ``self.player`` from MPF (``self.mc.player`` in MC), however you simply don't want
|
|
9
|
-
to create extra variables in here just to make it readable readable in MC. This would result in having to much unnecessary data.
|
|
9
|
+
to create extra variables in here just to make it readable readable in MC. This would result in having to much unnecessary data.
|
|
10
10
|
Instead you can use ``self.machine.events.post`` just like you would write a function in python.
|
|
11
11
|
|
|
12
12
|
For example we set this up in a mode code in MPF:
|
|
@@ -21,7 +21,7 @@ It should always start with the ``event`` that you want to post. After this you
|
|
|
21
21
|
In MC code we create a function that will be activated once the event is posted. Make sure you have added a event_handler first or else it won't work.
|
|
22
22
|
|
|
23
23
|
.. code-block:: python
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
def awesome_event(self, data1, data2, **kwargs):
|
|
26
26
|
print("i really love the game {} I always end up {}".format(data1, data2)
|
|
27
27
|
|
|
@@ -47,8 +47,8 @@ In order to build the developer documentation, you will also need:
|
|
|
47
47
|
* ``sphinxcontrib.napoleon``
|
|
48
48
|
* ``gitpython``
|
|
49
49
|
|
|
50
|
-
Building the developer documentation requires a symbolic link from ``mpf\docs\examples`` to a checkout of the ``mpf-examples`` repository.
|
|
51
|
-
This is normally automatically created when the documentation is built, but under Windows 10 and higher, symlinks can only be created by
|
|
52
|
-
administrators, so the process will fail. If you would prefer not to run the build as an administrator, you can create the link manually
|
|
50
|
+
Building the developer documentation requires a symbolic link from ``mpf\docs\examples`` to a checkout of the ``mpf-examples`` repository.
|
|
51
|
+
This is normally automatically created when the documentation is built, but under Windows 10 and higher, symlinks can only be created by
|
|
52
|
+
administrators, so the process will fail. If you would prefer not to run the build as an administrator, you can create the link manually
|
|
53
53
|
by running ``mklink /d examples <examples directory>`` at the command line from inside the ``docs`` directory.
|
|
54
54
|
|
|
@@ -14,8 +14,8 @@ test that's run), and then when it's done, you should see a message showing
|
|
|
14
14
|
how many tests were run and that they were successful. The whole process should
|
|
15
15
|
take less a minute or so.
|
|
16
16
|
|
|
17
|
-
Note that ``mpf-mc`` must be installed as well as ``mpf`` for all tests to run.
|
|
18
|
-
If it isn't, some tests will fail with the error "start took more than 20s", because
|
|
17
|
+
Note that ``mpf-mc`` must be installed as well as ``mpf`` for all tests to run.
|
|
18
|
+
If it isn't, some tests will fail with the error "start took more than 20s", because
|
|
19
19
|
MPF waited endlessly for the nonexistent media controller to be available.
|
|
20
20
|
|
|
21
21
|
(If you see any messages about some tests taking more than 0.5s, that's ok.)
|
|
@@ -544,7 +544,7 @@ fast:
|
|
|
544
544
|
__type__: config
|
|
545
545
|
net: single|subconfig(fast_net)|None
|
|
546
546
|
exp: single|subconfig(fast_exp)|None
|
|
547
|
-
exp_int: single|subconfig(fast_exp)|None
|
|
547
|
+
exp_int: single|subconfig(fast_exp)|None
|
|
548
548
|
aud: single|subconfig(fast_aud)|None
|
|
549
549
|
seg: single|subconfig(fast_seg)|None
|
|
550
550
|
dmd: single|subconfig(fast_dmd)|None
|
|
@@ -834,7 +834,7 @@ neoseg_displays:
|
|
|
834
834
|
number_template: single|str|None
|
|
835
835
|
start_x: single|float|None
|
|
836
836
|
start_y: single|float|None
|
|
837
|
-
size: single|enum(2digit,8digit)|8digit
|
|
837
|
+
size: single|enum(2digit,8digit,2digit-rg-swapped,8digit-rg-swapped)|8digit
|
|
838
838
|
light_template: single|subconfig(lights,device)|
|
|
839
839
|
lights:
|
|
840
840
|
__valid_in__: machine
|
|
@@ -1414,7 +1414,7 @@ settings:
|
|
|
1414
1414
|
label: single|str|
|
|
1415
1415
|
sort: single|int|
|
|
1416
1416
|
values: dict|str:str|
|
|
1417
|
-
key_type: single|enum(str,float,int)|str
|
|
1417
|
+
key_type: single|enum(str,float,int,bool)|str
|
|
1418
1418
|
default: single|str|
|
|
1419
1419
|
machine_var: single|str|None
|
|
1420
1420
|
settingType: single|str|standard
|
|
@@ -172,7 +172,20 @@ class DeviceManager(MpfController):
|
|
|
172
172
|
for device_name in config:
|
|
173
173
|
futures.append(collection[device_name].device_added_system_wide())
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
fs = [asyncio.create_task(future) for future in futures]
|
|
176
|
+
done, pending = await asyncio.wait(fs, return_when=asyncio.FIRST_EXCEPTION)
|
|
177
|
+
|
|
178
|
+
# Check if any of the futures returned an exception and throw it
|
|
179
|
+
for task in done:
|
|
180
|
+
if task.cancelled():
|
|
181
|
+
continue
|
|
182
|
+
|
|
183
|
+
exc = task.exception()
|
|
184
|
+
if exc is not None:
|
|
185
|
+
for pending_task in pending:
|
|
186
|
+
pending_task.cancel()
|
|
187
|
+
await asyncio.gather(*pending, return_exceptions=True)
|
|
188
|
+
raise exc
|
|
176
189
|
|
|
177
190
|
# pylint: disable-msg=too-many-nested-blocks
|
|
178
191
|
def get_device_control_events(self, config) -> Generator[Tuple[str, Callable, int, "Device"], None, None]:
|
|
@@ -224,14 +224,15 @@ class EventManager(MpfController):
|
|
|
224
224
|
'handler you passed?'.format(handler, event))
|
|
225
225
|
|
|
226
226
|
sig = inspect.signature(handler)
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
if sig.parameters['kwargs'].kind != inspect.Parameter.VAR_KEYWORD:
|
|
232
|
-
raise AssertionError("Handler {} for event '{}' param kwargs is missing '**'. "
|
|
227
|
+
catchall_name = next((name for name in ('kwargs', '_kwargs') if name in sig.parameters), None)
|
|
228
|
+
if catchall_name is None:
|
|
229
|
+
raise AssertionError("Handler {} for event '{}' is missing **kwargs. "
|
|
233
230
|
"Actual signature: {}".format(handler, event, sig))
|
|
234
231
|
|
|
232
|
+
if sig.parameters[catchall_name].kind != inspect.Parameter.VAR_KEYWORD:
|
|
233
|
+
raise AssertionError("Handler {} for event '{}' param {} is missing '**'. "
|
|
234
|
+
"Actual signature: {}".format(handler, event, catchall_name, sig))
|
|
235
|
+
|
|
235
236
|
event, condition, additional_priority = self.get_event_and_condition_from_string(event)
|
|
236
237
|
priority += additional_priority
|
|
237
238
|
|
|
@@ -457,6 +458,8 @@ class EventManager(MpfController):
|
|
|
457
458
|
_future=future,
|
|
458
459
|
_keys=keys,
|
|
459
460
|
event=event_name)))
|
|
461
|
+
|
|
462
|
+
future.add_done_callback(lambda f: [self.remove_handler_by_key(k) for k in keys])
|
|
460
463
|
return future
|
|
461
464
|
|
|
462
465
|
def _wait_handler(self, _future: asyncio.Future, _keys: List[EventHandlerKey], **kwargs):
|
|
@@ -4,7 +4,7 @@ import string
|
|
|
4
4
|
import asyncio
|
|
5
5
|
import operator as op
|
|
6
6
|
import abc
|
|
7
|
-
from functools import lru_cache
|
|
7
|
+
from functools import lru_cache, partial
|
|
8
8
|
|
|
9
9
|
import re
|
|
10
10
|
from typing import Tuple, List, Any, Union
|
|
@@ -860,8 +860,28 @@ class BasePlaceholderManager(MpfController):
|
|
|
860
860
|
subscriptions.append(self.machine.wait_for_stop())
|
|
861
861
|
future = Util.any(subscriptions)
|
|
862
862
|
future = asyncio.ensure_future(future)
|
|
863
|
+
|
|
864
|
+
future.add_done_callback(
|
|
865
|
+
partial(self._cleanup_placeholder_subscriptions, subscriptions=subscriptions)
|
|
866
|
+
)
|
|
863
867
|
return value, future
|
|
864
868
|
|
|
869
|
+
def _cleanup_placeholder_subscriptions(self, future, subscriptions):
|
|
870
|
+
"""Cancel child placeholder subscriptions when the parent template frame finishes."""
|
|
871
|
+
del future
|
|
872
|
+
|
|
873
|
+
for sub in subscriptions:
|
|
874
|
+
if isinstance(sub, asyncio.Future):
|
|
875
|
+
if not sub.done():
|
|
876
|
+
# Cancel outstanding asyncio Future/Task instance
|
|
877
|
+
sub.cancel()
|
|
878
|
+
elif asyncio.iscoroutine(sub):
|
|
879
|
+
try:
|
|
880
|
+
# close raw coroutines (like sleep)
|
|
881
|
+
sub.close()
|
|
882
|
+
except RuntimeWarning:
|
|
883
|
+
pass
|
|
884
|
+
|
|
865
885
|
@lru_cache(typed=True)
|
|
866
886
|
def parse_conditional_template(self, template, default_number=None):
|
|
867
887
|
"""Parse a template for condition and number and return a dict."""
|
|
@@ -57,6 +57,8 @@ class Util:
|
|
|
57
57
|
return float(value)
|
|
58
58
|
if type_name == "str":
|
|
59
59
|
return str(value)
|
|
60
|
+
if type_name == "bool":
|
|
61
|
+
return str(value).lower() in ['true', 't', 'yes', 'enable', 'on', '1']
|
|
60
62
|
|
|
61
63
|
raise AssertionError("Unknown type {}".format(type_name))
|
|
62
64
|
|
|
@@ -586,13 +588,16 @@ class Util:
|
|
|
586
588
|
if isinstance(time_string, (int, float)):
|
|
587
589
|
return int(time_string)
|
|
588
590
|
|
|
589
|
-
time_string = str(time_string).upper()
|
|
591
|
+
time_string = str(time_string).upper().strip()
|
|
590
592
|
|
|
591
|
-
if time_string
|
|
592
|
-
return
|
|
593
|
+
if time_string == 'NONE':
|
|
594
|
+
return 0
|
|
595
|
+
|
|
596
|
+
if time_string.endswith('MS'):
|
|
597
|
+
return int(float(time_string[:-2]))
|
|
593
598
|
|
|
594
599
|
if time_string.endswith('MSEC'):
|
|
595
|
-
return int(time_string[:-4])
|
|
600
|
+
return int(float(time_string[:-4]))
|
|
596
601
|
|
|
597
602
|
if time_string.endswith('D'):
|
|
598
603
|
return int(float(time_string[:-1]) * 86400 * 1000)
|
|
@@ -609,7 +614,7 @@ class Util:
|
|
|
609
614
|
if time_string.endswith('SEC'):
|
|
610
615
|
return int(float(time_string[:-3]) * 1000)
|
|
611
616
|
|
|
612
|
-
return int(time_string)
|
|
617
|
+
return int(float(time_string))
|
|
613
618
|
|
|
614
619
|
@staticmethod
|
|
615
620
|
def string_to_secs(time_string: str) -> float:
|
|
@@ -847,4 +852,4 @@ class Util:
|
|
|
847
852
|
bool: True if the bit is set, False otherwise
|
|
848
853
|
"""
|
|
849
854
|
num = int(hex_string, 16)
|
|
850
|
-
return bool(num & (1 << bit))
|
|
855
|
+
return bool(num & (1 << bit))
|
|
@@ -14,6 +14,21 @@ from mpf.core.system_wide_device import SystemWideDevice
|
|
|
14
14
|
from mpf.devices.light import Light
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
NEOSEG_8DIGIT_ORDER = [
|
|
18
|
+
95, 90, 93, 82, 85, 89, 86, 91, 88, 87, 81, 92, 83, 84, 94,
|
|
19
|
+
104, 76, 79, 96, 99, 103, 100, 77, 102, 101, 75, 78, 97, 98, 80,
|
|
20
|
+
110, 105, 108, 67, 70, 74, 71, 106, 73, 72, 66, 107, 68, 69, 109,
|
|
21
|
+
119, 61, 64, 111, 114, 118, 115, 62, 117, 116, 60, 63, 112, 113, 65,
|
|
22
|
+
5, 0, 3, 52, 55, 59, 56, 1, 58, 57, 51, 2, 53, 54, 4,
|
|
23
|
+
14, 46, 49, 6, 9, 13, 10, 47, 12, 11, 45, 48, 7, 8, 50,
|
|
24
|
+
20, 15, 18, 37, 40, 44, 41, 16, 43, 42, 36, 17, 38, 39, 19,
|
|
25
|
+
29, 31, 34, 21, 24, 28, 25, 32, 27, 26, 30, 33, 22, 23, 35]
|
|
26
|
+
|
|
27
|
+
NEOSEG_2DIGIT_ORDER = [
|
|
28
|
+
5, 0, 3, 22, 25, 29, 26, 1, 28, 27, 21, 2, 23, 24, 4,
|
|
29
|
+
14, 16, 19, 6, 9, 13, 10, 17, 12, 11, 15, 18, 7, 8, 20]
|
|
30
|
+
|
|
31
|
+
|
|
17
32
|
class LightGroup(SystemWideDevice):
|
|
18
33
|
|
|
19
34
|
"""An abstract group of lights."""
|
|
@@ -92,25 +107,41 @@ class LightGroup(SystemWideDevice):
|
|
|
92
107
|
for light in self.lights:
|
|
93
108
|
light.color(color, fade_ms, priority, key)
|
|
94
109
|
|
|
110
|
+
def _swap_grb_rgb_channel_offsets(self, offsets):
|
|
111
|
+
"""Swap every first and second out of sets of three (GRB->RGB)."""
|
|
112
|
+
adjustments = {0: 1, 1: -1, 2: 0}
|
|
113
|
+
return [
|
|
114
|
+
x + adjustments[x % 3]
|
|
115
|
+
for x in offsets
|
|
116
|
+
]
|
|
117
|
+
|
|
95
118
|
def _reorder_lights(self):
|
|
96
119
|
if self.config['size'] == '8digit':
|
|
97
120
|
#Magic order for 8 digit NeoSeg displays from CobraPin
|
|
98
|
-
order =
|
|
99
|
-
|
|
100
|
-
110, 105, 108, 67, 70, 74, 71, 106, 73, 72, 66, 107, 68, 69, 109,
|
|
101
|
-
119, 61, 64, 111, 114, 118, 115, 62, 117, 116, 60, 63, 112, 113, 65,
|
|
102
|
-
5, 0, 3, 52, 55, 59, 56, 1, 58, 57, 51, 2, 53, 54, 4,
|
|
103
|
-
14, 46, 49, 6, 9, 13, 10, 47, 12, 11, 45, 48, 7, 8, 50,
|
|
104
|
-
20, 15, 18, 37, 40, 44, 41, 16, 43, 42, 36, 17, 38, 39, 19,
|
|
105
|
-
29, 31, 34, 21, 24, 28, 25, 32, 27, 26, 30, 33, 22, 23, 35]
|
|
121
|
+
order = NEOSEG_8DIGIT_ORDER
|
|
122
|
+
|
|
106
123
|
elif self.config['size'] == '2digit':
|
|
107
124
|
#Magic order for 2 digit NeoSeg displays from CobraPin
|
|
108
|
-
order =
|
|
109
|
-
|
|
125
|
+
order = NEOSEG_2DIGIT_ORDER
|
|
126
|
+
|
|
127
|
+
elif self.config['size'] == '8digit-rg-swapped':
|
|
128
|
+
#Magic order for 8 digit NeoSeg displays from CobraPin when platform numbering uses RGB channel order
|
|
129
|
+
order = self._swap_grb_rgb_channel_offsets(NEOSEG_8DIGIT_ORDER)
|
|
130
|
+
|
|
131
|
+
elif self.config['size'] == '2digit-rg-swapped':
|
|
132
|
+
#Magic order for 2 digit NeoSeg displays from CobraPin when platform numbering uses RGB channel order
|
|
133
|
+
order = self._swap_grb_rgb_channel_offsets(NEOSEG_2DIGIT_ORDER)
|
|
110
134
|
else:
|
|
111
135
|
order = range(0, len(self.lights))
|
|
112
136
|
|
|
113
|
-
|
|
137
|
+
mapped_lights = []
|
|
138
|
+
try:
|
|
139
|
+
for i in order:
|
|
140
|
+
mapped_lights.append(self.lights[i])
|
|
141
|
+
self.lights = mapped_lights
|
|
142
|
+
except IndexError:
|
|
143
|
+
self.error_log("Attempted to use light index %s but source list only had %s items", i, len(self.lights))
|
|
144
|
+
raise
|
|
114
145
|
|
|
115
146
|
def wait_for_loaded(self):
|
|
116
147
|
"""Return future."""
|
|
@@ -180,11 +211,12 @@ class NeoSegDisplay(LightGroup):
|
|
|
180
211
|
__slots__ = [] # type: List[str]
|
|
181
212
|
|
|
182
213
|
def _create_lights(self):
|
|
183
|
-
if self.config['size']
|
|
214
|
+
if self.config['size'] in ('8digit', '8digit-rg-swapped'):
|
|
184
215
|
count = 120
|
|
185
|
-
elif self.config['size']
|
|
216
|
+
elif self.config['size'] in ('2digit', '2digit-rg-swapped'):
|
|
186
217
|
count = 30
|
|
187
218
|
else:
|
|
219
|
+
self.warning_log("NeoSegDisplay %s could not determine number of lights to create.", self.name)
|
|
188
220
|
count = 0
|
|
189
221
|
|
|
190
222
|
for index in range(self.config['number_start'], self.config['number_start'] + count):
|
|
@@ -9,7 +9,7 @@ from mpf.core.device_monitor import DeviceMonitor
|
|
|
9
9
|
from mpf.core.system_wide_device import SystemWideDevice
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
@DeviceMonitor(_active="active", _release_in_progress="release_in_progress",
|
|
12
|
+
@DeviceMonitor(_active="active", _release_in_progress="release_in_progress", enabled="enabled")
|
|
13
13
|
class Magnet(EnableDisableMixinSystemWideDevice, SystemWideDevice):
|
|
14
14
|
|
|
15
15
|
"""Controls a playfield magnet in a pinball machine."""
|
|
@@ -18,10 +18,11 @@ class Match(AsyncMode):
|
|
|
18
18
|
"""Initialize match mode."""
|
|
19
19
|
super().__init__(*args, **kwargs)
|
|
20
20
|
# add setting
|
|
21
|
-
self.machine.settings.add_setting(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
self.machine.settings.add_setting(
|
|
22
|
+
SettingEntry("match_percentage",
|
|
23
|
+
"Match Percentage", 500, "match_percentage", 10,
|
|
24
|
+
{0: "Never", 2: "2%", 5: "5%", 10: "10%", 15: "15%", 30: "30%", 50: "50%"},
|
|
25
|
+
"standard"))
|
|
25
26
|
|
|
26
27
|
def _get_match_numbers(self):
|
|
27
28
|
"""Calculate match numbers."""
|
|
@@ -66,7 +67,12 @@ class Match(AsyncMode):
|
|
|
66
67
|
self.machine.variables.set_machine_var('match_number', winner_number)
|
|
67
68
|
|
|
68
69
|
for i in range(0, self.machine.game.max_players):
|
|
69
|
-
|
|
70
|
+
player_value = ""
|
|
71
|
+
if len(match_numbers) > i:
|
|
72
|
+
player_value = match_numbers[i]
|
|
73
|
+
|
|
74
|
+
event_args["match_number{}".format(i)] = player_value
|
|
75
|
+
event_args["match_number{}_won".format(i)] = player_value == winner_number
|
|
70
76
|
|
|
71
77
|
if not winners:
|
|
72
78
|
# no winner
|
|
@@ -80,7 +86,9 @@ class Match(AsyncMode):
|
|
|
80
86
|
winners: Number of winners (always 0 here)
|
|
81
87
|
match_number0: Match number for player 0
|
|
82
88
|
match_number1: Match number for player 1
|
|
89
|
+
match_number1_won: True/False for if player 1 matched
|
|
83
90
|
match_numberX: Match number for player X (up to max players)
|
|
91
|
+
match_numberX_won: T/F for if player X matched (up to max players)
|
|
84
92
|
'''
|
|
85
93
|
else:
|
|
86
94
|
# we got a winner
|
|
@@ -94,6 +102,8 @@ class Match(AsyncMode):
|
|
|
94
102
|
winners: Number of winners (always more than 0 here)
|
|
95
103
|
match_number0: Match number for player 0
|
|
96
104
|
match_number1: Match number for player 1
|
|
105
|
+
match_number1_won: True/False for if player 1 matched
|
|
97
106
|
match_numberX: Match number for player X (up to max players)
|
|
107
|
+
match_numberX_won: T/F for if player X matched (up to max players)
|
|
98
108
|
'''
|
|
99
109
|
# that is it. credits mode should hook into the match_has_match event and award credits
|
|
@@ -31,15 +31,19 @@ class EventReferenceParser:
|
|
|
31
31
|
class_label = None
|
|
32
32
|
config_section = None
|
|
33
33
|
for statement in x.body:
|
|
34
|
-
if isinstance(statement, ast.Assign)
|
|
35
|
-
|
|
34
|
+
if (isinstance(statement, ast.Assign)
|
|
35
|
+
and len(statement.targets) == 1
|
|
36
|
+
and isinstance(statement.targets[0], ast.Name)
|
|
37
|
+
and isinstance(statement.value, ast.Constant)
|
|
38
|
+
and isinstance(statement.value.value, str)):
|
|
36
39
|
if statement.targets[0].id == "class_label":
|
|
37
|
-
class_label = str(statement.value.
|
|
40
|
+
class_label = str(statement.value.value)
|
|
38
41
|
elif statement.targets[0].id == "config_section":
|
|
39
|
-
config_section = [str(statement.value.
|
|
42
|
+
config_section = [str(statement.value.value)]
|
|
40
43
|
|
|
41
44
|
for y in ast.walk(x):
|
|
42
|
-
if not (isinstance(y, ast.
|
|
45
|
+
if not (isinstance(y, ast.Constant) and isinstance(y.value, str)
|
|
46
|
+
and y.value.strip().lower().startswith('event:')):
|
|
43
47
|
continue
|
|
44
48
|
|
|
45
49
|
event_dict = self._parse_string(y)
|
|
@@ -60,7 +64,7 @@ class EventReferenceParser:
|
|
|
60
64
|
|
|
61
65
|
def _parse_string(self, string):
|
|
62
66
|
string = '\n'.join(' '.join(line.split())
|
|
63
|
-
for line in string.
|
|
67
|
+
for line in string.value.split('\n'))
|
|
64
68
|
|
|
65
69
|
string = string.replace('Event:', 'event:')
|
|
66
70
|
string = string.replace('Desc:', 'desc:')
|
|
@@ -593,10 +593,13 @@ class FastHardwarePlatform(ServoPlatform, LightsPlatform, RgbDmdPlatform,
|
|
|
593
593
|
return FASTMatrixLight(number, self.serial_connections['net'], self.machine,
|
|
594
594
|
int(1 / self.config['net']['lamp_hz'] * 1000), self)
|
|
595
595
|
if not subtype or subtype == "led":
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
596
|
+
try:
|
|
597
|
+
# make everything lowercase and strip trailing channel number
|
|
598
|
+
parts, channel = number.lower().rsplit('-', 1)
|
|
599
|
+
# split into board name, breakout, port, led
|
|
600
|
+
parts = parts.split('-')
|
|
601
|
+
except ValueError as e:
|
|
602
|
+
raise ValueError(f"Unable to parse FAST light '{config.name}' address {number}") from e
|
|
600
603
|
|
|
601
604
|
if parts[0] in self.exp_boards_by_name: # this is an expansion board LED in config file format
|
|
602
605
|
return self._add_exp_led_with_config_format(parts, channel, config.name)
|
|
@@ -40,7 +40,11 @@ class FASTRGBLED:
|
|
|
40
40
|
channel = self.channels[index]
|
|
41
41
|
if channel:
|
|
42
42
|
brightness, _, done = channel.get_fade_and_brightness(current_time)
|
|
43
|
-
|
|
43
|
+
# Clamp to a single byte: an out-of-range brightness here would
|
|
44
|
+
# format to a 1- or 3-char hex channel and crash the downstream
|
|
45
|
+
# binascii unpacking with an "Odd-length string" error.
|
|
46
|
+
clamped_brightness = min(255, max(0, int(brightness * 255)))
|
|
47
|
+
result += f'{clamped_brightness:02X}'
|
|
44
48
|
if not done:
|
|
45
49
|
self.dirty = True
|
|
46
50
|
else:
|
|
@@ -116,6 +120,12 @@ class FASTLEDChannel(LightPlatformInterface):
|
|
|
116
120
|
fade_ms = max_fade_ms
|
|
117
121
|
ratio = ((current_time + (fade_ms / 1000.0) - start_time) /
|
|
118
122
|
(target_time - start_time))
|
|
123
|
+
# A fade's start_time and the current_time passed in come from
|
|
124
|
+
# separate clock reads, so current_time can land a hair before
|
|
125
|
+
# start_time, making this ratio slightly out of [0, 1]. That would
|
|
126
|
+
# push brightness below 0 (fade up) or above 1 (fade down); clamp
|
|
127
|
+
# the ratio so the interpolation stays in range for both directions.
|
|
128
|
+
ratio = max(0.0, min(1.0, ratio))
|
|
119
129
|
brightness = start_brightness + (target_brightness - start_brightness) * ratio
|
|
120
130
|
done = False
|
|
121
131
|
else:
|
|
@@ -125,15 +135,15 @@ class FASTLEDChannel(LightPlatformInterface):
|
|
|
125
135
|
self._last_brightness = brightness
|
|
126
136
|
done = True
|
|
127
137
|
|
|
128
|
-
#
|
|
129
|
-
#
|
|
130
|
-
#
|
|
131
|
-
if brightness < 0:
|
|
132
|
-
brightness
|
|
133
|
-
self.led.log.warning("Calculated a negative brightness (%s) for led %s channel %s. current_time: %s "
|
|
138
|
+
# Final guard in case start/target brightness themselves are ever out
|
|
139
|
+
# of [0, 1]: an out-of-range value would crash the hex formatter in
|
|
140
|
+
# current_color, so clamp both ends.
|
|
141
|
+
if brightness < 0 or brightness > 1:
|
|
142
|
+
self.led.log.warning("Calculated an out-of-range brightness (%s) for led %s channel %s. current_time: %s "
|
|
134
143
|
"start_brightness: %s, start_time: %s, target_brightness: %s, target_time: %s",
|
|
135
144
|
brightness, self.led, self.channel, current_time, start_brightness, start_time,
|
|
136
145
|
target_brightness, target_time)
|
|
146
|
+
brightness = max(0.0, min(1.0, brightness))
|
|
137
147
|
|
|
138
148
|
return brightness, fade_ms, done
|
|
139
149
|
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""VPX platform."""
|
|
2
2
|
import asyncio
|
|
3
|
+
import inspect
|
|
3
4
|
from typing import Dict, List, Optional
|
|
4
5
|
|
|
5
6
|
import logging
|
|
@@ -159,7 +160,7 @@ class VirtualPinballPlatform(LightsPlatform, SwitchPlatform, DriverPlatform, Seg
|
|
|
159
160
|
|
|
160
161
|
"""VPX platform."""
|
|
161
162
|
|
|
162
|
-
__slots__ = ["_lights", "_switches", "_drivers", "_last_drivers", "_last_lights",
|
|
163
|
+
__slots__ = ["_lights", "_switches", "_drivers", "_last_drivers", "_last_lights",
|
|
163
164
|
"_started", "rules", "_configured_segment_displays", "_last_segment_text"]
|
|
164
165
|
|
|
165
166
|
def __init__(self, machine):
|
|
@@ -200,6 +201,8 @@ class VirtualPinballPlatform(LightsPlatform, SwitchPlatform, DriverPlatform, Seg
|
|
|
200
201
|
|
|
201
202
|
try:
|
|
202
203
|
result = method(**kwargs)
|
|
204
|
+
if inspect.iscoroutine(result):
|
|
205
|
+
result = await result
|
|
203
206
|
# pylint: disable-msg=broad-except
|
|
204
207
|
except Exception as e:
|
|
205
208
|
self.machine.bcp.transport.send_to_client(client, "vpcom_bridge_response",
|
|
@@ -212,6 +215,24 @@ class VirtualPinballPlatform(LightsPlatform, SwitchPlatform, DriverPlatform, Seg
|
|
|
212
215
|
self._started.set()
|
|
213
216
|
return True
|
|
214
217
|
|
|
218
|
+
async def vpx_reset(self):
|
|
219
|
+
"""Wipe platform-side switch mirror and reset the machine.
|
|
220
|
+
|
|
221
|
+
Called by the VPX plugin on every (re)connect to give VPX a clean
|
|
222
|
+
MPF to talk to. Mechanisms (servos, motors, drop targets, diverters)
|
|
223
|
+
auto-reset because they subscribe to machine_reset_phase_3.
|
|
224
|
+
|
|
225
|
+
Order matters: clear switches first so reset-phase handlers see the
|
|
226
|
+
cleaned state instead of stale readings from the prior VPX session.
|
|
227
|
+
"""
|
|
228
|
+
for num, sw in list(self._switches.items()):
|
|
229
|
+
if sw.state:
|
|
230
|
+
sw.state = False
|
|
231
|
+
self.machine.switch_controller.process_switch_by_num(
|
|
232
|
+
state=0, num=num, platform=self)
|
|
233
|
+
await self.machine.reset()
|
|
234
|
+
return True
|
|
235
|
+
|
|
215
236
|
def vpx_get_switch(self, number):
|
|
216
237
|
"""Return switch value."""
|
|
217
238
|
# pylint: disable-msg=no-else-return
|