benchlab-pytools 3.0.0__tar.gz → 3.0.1__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.
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/CHANGELOG.md +15 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/CONTRIBUTING.md +1 -1
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/PKG-INFO +20 -3
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/README.md +18 -2
- benchlab_pytools-3.0.1/benchlab/__init__.py +5 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1/benchlab}/bootstrap.py +0 -1
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/menu.py +1 -1
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/menu_classic.py +1 -1
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1/benchlab}/requirements.txt +4 -1
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tools.py +1 -1
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab.py +5 -2
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/pyproject.toml +1 -0
- benchlab_pytools-3.0.0/benchlab/__init__.py +0 -14
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/.flake8 +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/.gitignore +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/LICENSE +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/__main__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/config_client.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/config_manager.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/config_tool.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/diff.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/examples/complete_config.json +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/examples/rgb_lighting.json +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/examples/simple_fan.json +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/schema.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/test_config_client.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/test_config_manager.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/test_diff.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/config.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/datasource.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/datasource_manager.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/device_registry.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/discovery.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/infrastructure.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/process_manager.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/retry.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/shared_serial.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/core/statistics.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/csv_log/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/csv_log/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/csv_log/csv_logger_enhanced.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/csv_log/message_batcher.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/csv_log/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/csv_log/smart_retry.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/graph/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/graph/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/graph/app.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/graph/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/graph/runner.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/graph/test_graph.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/graph/ui.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/hwinfo/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/hwinfo/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/hwinfo/hwinfo_export.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/hwinfo/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/hwinfo/test_hwinfo_export.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/launcher.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/link/.env.EXAMPLE +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/link/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/link/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/link/link_main.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/link/test_link_main.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/main.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/mqtt/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/mqtt/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/mqtt/mqtt.config_template +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/mqtt/mqtt_publisher.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/mqtt/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/mqtt/test_mqtt_publisher.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/prefs.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/restapi/.env.example +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/restapi/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/restapi/favicon.ico +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/restapi/readme.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/restapi/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/restapi/telemetry_api.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/restapi/test_server.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/sources.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/config.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/test_tui_core.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/test_tui_main.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/tui_core.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/tui/tui_main.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/NOTICE.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/Running_from_source_on_linux.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/assets/vu1_hello_world.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/community_applications.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/config.yaml +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/database.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dial_driver.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dials/Comms_Hub_Gauge.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dials/Comms_Hub_Server.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dials/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dials/base_logger.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/installer/inc/icon.ico +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/installer/install.nsi +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/make_version.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/pylintrc +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/serial_driver.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/server.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/server_config.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/server_dial_handler.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/vu_notifications.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/android-chrome-192x192.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/android-chrome-512x512.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/apple-touch-icon.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/demo.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/demo.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/demo.rtl.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/demo.rtl.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-flags.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-flags.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-flags.rtl.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-flags.rtl.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-payments.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-payments.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-payments.rtl.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-payments.rtl.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-social.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-social.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-social.rtl.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-social.rtl.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-vendors.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-vendors.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-vendors.rtl.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler-vendors.rtl.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler.rtl.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler.rtl.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/theme.min.css +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/img/header.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/img/logo.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/dark-theme.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/dark-theme.min.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/demo.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/demo.min.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/jquery.min.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/tabler.esm.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/tabler.esm.min.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/tabler.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/tabler.min.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/vu1_api.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/vu1_gui_api_key_settings.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/vu1_gui_api_keys.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/vu1_gui_dial.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/vu1_gui_home.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/vu1_gui_root.js +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/favicon-16x16.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/favicon-32x32.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/favicon.ico +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/favicon.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/index.html +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/api_keys.html +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/dial.html +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/footer.html +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/header.html +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/key_settings.html +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/start.html +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/assets/Barlow-Bold.ttf +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/assets/bl_dial_144x200.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/assets/bl_logo_144x200.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/devices.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/sensors.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/test_devices.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/test_vu_server_config.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/test_vu_server_manager.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/test_vu_tui.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/vu_dial.config_template +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/vu_logo_gen.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/vu_server.config_template +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/vu_server_config.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/vu_server_manager.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/vu_tui.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/vu_updater.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/README.md +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/__init__.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/assets/Inter-Bold.ttf +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/assets/Inter.ttf +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/assets/benchlab.png +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/benchlab_fleet.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/benchlab_graph.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/benchlab_overview.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/benchlab_telemetry.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/benchlab_ui.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/benchlab_utils.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/requirements.txt +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/test_wigidash.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/wigidash_device.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/wigidash_manager.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/wigidash_session.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/wigidash_usb.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/wigidash/wigidash_widget.py +0 -0
- {benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/pytest.ini +0 -0
|
@@ -4,6 +4,20 @@ All notable changes to BENCHLAB PyTools are documented here. Format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning follows
|
|
5
5
|
[SemVer](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [3.0.1] - 2026-08-18
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- PyPI install was broken: `bootstrap.py` and the core `requirements.txt`
|
|
11
|
+
lived at the repo root and were never included in the wheel (only
|
|
12
|
+
`benchlab/` is packaged), so `pip install benchlab-pytools` followed by
|
|
13
|
+
`benchlab ...` failed with `ModuleNotFoundError: No module named
|
|
14
|
+
'bootstrap'`. Both files moved into `benchlab/`, with internal imports
|
|
15
|
+
updated to relative imports.
|
|
16
|
+
- `pywin32` was missing from `pyproject.toml`'s core dependencies, so
|
|
17
|
+
PyPI installs on Windows did not pull it in despite the `named_pipe`
|
|
18
|
+
data source depending on it. Added `pywin32>=306; platform_system ==
|
|
19
|
+
'Windows'` alongside the existing `windows-curses` entry.
|
|
20
|
+
|
|
7
21
|
## [3.0.0] - 2026-08-15
|
|
8
22
|
|
|
9
23
|
### Added
|
|
@@ -41,4 +55,5 @@ export, MQTT publisher, VU dials, WigiDash, and config import/export tools,
|
|
|
41
55
|
sharing a common data-source layer (direct serial, FastAPI, MQTT, named
|
|
42
56
|
pipe, service HTTP).
|
|
43
57
|
|
|
58
|
+
[3.0.1]: https://github.com/BenchLab-io/benchlab-pytools/compare/v3.0.0...v3.0.1
|
|
44
59
|
[3.0.0]: https://github.com/BenchLab-io/benchlab-pytools/compare/v0.8.2...v3.0.0
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
```bash
|
|
6
6
|
git clone https://github.com/BenchLab-io/benchlab-pytools.git
|
|
7
7
|
cd benchlab-pytools
|
|
8
|
-
pip install -r requirements.txt
|
|
8
|
+
pip install -r benchlab/requirements.txt
|
|
9
9
|
pip install -r benchlab/csv_log/requirements.txt
|
|
10
10
|
pip install -r benchlab/graph/requirements.txt
|
|
11
11
|
pip install -r benchlab/wigidash/requirements.txt
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: benchlab-pytools
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.1
|
|
4
4
|
Summary: Python control suite for BENCHLAB telemetry devices
|
|
5
5
|
Project-URL: Homepage, https://benchlab.io/
|
|
6
6
|
Project-URL: Repository, https://github.com/BenchLab-io/benchlab-pytools
|
|
@@ -25,6 +25,7 @@ Requires-Python: >=3.10
|
|
|
25
25
|
Requires-Dist: benchlab-pycore>=0.5.1
|
|
26
26
|
Requires-Dist: packaging<26.0,>=23.0
|
|
27
27
|
Requires-Dist: python-dotenv<2.0,>=1.0.0
|
|
28
|
+
Requires-Dist: pywin32>=306; platform_system == 'Windows'
|
|
28
29
|
Requires-Dist: textual<9.0,>=0.60
|
|
29
30
|
Requires-Dist: windows-curses>=2.4.1; platform_system == 'Windows'
|
|
30
31
|
Provides-Extra: all
|
|
@@ -111,8 +112,18 @@ All tools share a common data-source layer, so the same telemetry can be read di
|
|
|
111
112
|
|
|
112
113
|
Requires Python 3.10+.
|
|
113
114
|
|
|
115
|
+
### From PyPI
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
pip install benchlab-pytools
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
This installs a `benchlab` console command on your PATH (see [Command-Line Flags](#command-line-flags) below). Install with extras for the tools you need, e.g. `pip install "benchlab-pytools[tui]"`.
|
|
122
|
+
|
|
123
|
+
### From source
|
|
124
|
+
|
|
114
125
|
```bash
|
|
115
|
-
pip install -r requirements.txt
|
|
126
|
+
pip install -r benchlab/requirements.txt
|
|
116
127
|
```
|
|
117
128
|
|
|
118
129
|
Each tool has its own `requirements.txt` (e.g. `benchlab/graph/requirements.txt`, `benchlab/vu/requirements.txt`). The launcher installs a tool's requirements automatically the first time it's run — you generally don't need to install them by hand.
|
|
@@ -135,11 +146,17 @@ or equivalently:
|
|
|
135
146
|
python -m benchlab
|
|
136
147
|
```
|
|
137
148
|
|
|
149
|
+
If installed from PyPI, use the `benchlab` command instead:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
benchlab
|
|
153
|
+
```
|
|
154
|
+
|
|
138
155
|
The interactive menu (prompt_toolkit-based, with a plain-input fallback if `prompt_toolkit` isn't installed) lets you pick a data source and one or more tools, then launches them — installing any missing per-tool dependencies along the way.
|
|
139
156
|
|
|
140
157
|
### Command-Line Flags
|
|
141
158
|
|
|
142
|
-
Each tool can also be launched directly with a flag
|
|
159
|
+
Each tool can also be launched directly with a flag. If installed from PyPI, replace `python -m benchlab` with `benchlab` in the examples below (e.g. `benchlab -tui`).
|
|
143
160
|
|
|
144
161
|
```bash
|
|
145
162
|
python -m benchlab -tui # Interactive terminal dashboard
|
|
@@ -21,8 +21,18 @@ All tools share a common data-source layer, so the same telemetry can be read di
|
|
|
21
21
|
|
|
22
22
|
Requires Python 3.10+.
|
|
23
23
|
|
|
24
|
+
### From PyPI
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pip install benchlab-pytools
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
This installs a `benchlab` console command on your PATH (see [Command-Line Flags](#command-line-flags) below). Install with extras for the tools you need, e.g. `pip install "benchlab-pytools[tui]"`.
|
|
31
|
+
|
|
32
|
+
### From source
|
|
33
|
+
|
|
24
34
|
```bash
|
|
25
|
-
pip install -r requirements.txt
|
|
35
|
+
pip install -r benchlab/requirements.txt
|
|
26
36
|
```
|
|
27
37
|
|
|
28
38
|
Each tool has its own `requirements.txt` (e.g. `benchlab/graph/requirements.txt`, `benchlab/vu/requirements.txt`). The launcher installs a tool's requirements automatically the first time it's run — you generally don't need to install them by hand.
|
|
@@ -45,11 +55,17 @@ or equivalently:
|
|
|
45
55
|
python -m benchlab
|
|
46
56
|
```
|
|
47
57
|
|
|
58
|
+
If installed from PyPI, use the `benchlab` command instead:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
benchlab
|
|
62
|
+
```
|
|
63
|
+
|
|
48
64
|
The interactive menu (prompt_toolkit-based, with a plain-input fallback if `prompt_toolkit` isn't installed) lets you pick a data source and one or more tools, then launches them — installing any missing per-tool dependencies along the way.
|
|
49
65
|
|
|
50
66
|
### Command-Line Flags
|
|
51
67
|
|
|
52
|
-
Each tool can also be launched directly with a flag
|
|
68
|
+
Each tool can also be launched directly with a flag. If installed from PyPI, replace `python -m benchlab` with `benchlab` in the examples below (e.g. `benchlab -tui`).
|
|
53
69
|
|
|
54
70
|
```bash
|
|
55
71
|
python -m benchlab -tui # Interactive terminal dashboard
|
|
@@ -22,4 +22,7 @@ paho-mqtt>=2.0,<3.0
|
|
|
22
22
|
amqtt>=0.12.0,<0.13.0
|
|
23
23
|
|
|
24
24
|
# Curses-based TUI
|
|
25
|
-
windows-curses>=2.4.1; platform_system=="Windows"
|
|
25
|
+
windows-curses>=2.4.1; platform_system=="Windows"
|
|
26
|
+
|
|
27
|
+
# Named Pipe Data Source (BL_Service)
|
|
28
|
+
pywin32>=306; platform_system=="Windows"
|
|
@@ -22,13 +22,16 @@ if not logger.handlers:
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def main():
|
|
25
|
+
sys.path.insert(0, str(BASE_DIR))
|
|
26
|
+
|
|
25
27
|
# Fast fail checks first
|
|
26
|
-
from bootstrap import
|
|
28
|
+
from benchlab.bootstrap import (
|
|
29
|
+
check_python_version, install_core_requirements,
|
|
30
|
+
)
|
|
27
31
|
check_python_version()
|
|
28
32
|
install_core_requirements()
|
|
29
33
|
|
|
30
34
|
# Delegate everything to main entry point
|
|
31
|
-
sys.path.insert(0, str(BASE_DIR))
|
|
32
35
|
from benchlab.main import main
|
|
33
36
|
main()
|
|
34
37
|
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
BENCHLAB Telemetry Package
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
import os as _os
|
|
6
|
-
import sys as _sys
|
|
7
|
-
|
|
8
|
-
# Ensure the repo root (containing bootstrap.py) is importable. Centralized
|
|
9
|
-
# here so menu.py/tools.py don't each need their own sys.path.insert hack.
|
|
10
|
-
_repo_root = _os.path.dirname(_os.path.dirname(_os.path.abspath(__file__)))
|
|
11
|
-
if _repo_root not in _sys.path:
|
|
12
|
-
_sys.path.insert(0, _repo_root)
|
|
13
|
-
|
|
14
|
-
__version__ = "3.0.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/examples/complete_config.json
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/config/examples/rgb_lighting.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/assets/vu1_hello_world.png
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/community_applications.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dials/Comms_Hub_Gauge.py
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dials/Comms_Hub_Server.py
RENAMED
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/dials/base_logger.py
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/installer/inc/icon.ico
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/installer/install.nsi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/server_dial_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/apple-touch-icon.png
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/demo.css
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/demo.min.css
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/demo.rtl.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/tabler.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/css/theme.min.css
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/img/header.png
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/img/logo.png
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/dark-theme.js
RENAMED
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/demo.js
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/demo.min.js
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/jquery.min.js
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/tabler.esm.js
RENAMED
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/tabler.js
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/tabler.min.js
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/assets/js/vu1_api.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/favicon-16x16.png
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/favicon-32x32.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/api_keys.html
RENAMED
|
File without changes
|
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/footer.html
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/header.html
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/key_settings.html
RENAMED
|
File without changes
|
{benchlab_pytools-3.0.0 → benchlab_pytools-3.0.1}/benchlab/vu/VU-Server/www/views/start.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|