pycontrol-core 3.0.0a1__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.
- pycontrol_core-3.0.0a1/.gitignore +27 -0
- pycontrol_core-3.0.0a1/.pre-commit-config.yaml +15 -0
- pycontrol_core-3.0.0a1/DELETED.md +40 -0
- pycontrol_core-3.0.0a1/LICENSE +674 -0
- pycontrol_core-3.0.0a1/PKG-INFO +226 -0
- pycontrol_core-3.0.0a1/README.md +186 -0
- pycontrol_core-3.0.0a1/cmd/pycontrol-init/README.md +75 -0
- pycontrol_core-3.0.0a1/cmd/pycontrol-init/go.mod +30 -0
- pycontrol_core-3.0.0a1/cmd/pycontrol-init/go.sum +44 -0
- pycontrol_core-3.0.0a1/cmd/pycontrol-init/internal/bootstrap/bootstrap.go +1327 -0
- pycontrol_core-3.0.0a1/cmd/pycontrol-init/internal/bootstrap/bootstrap_test.go +701 -0
- pycontrol_core-3.0.0a1/cmd/pycontrol-init/main.go +33 -0
- pycontrol_core-3.0.0a1/cmd/pycontrol-init/pycontrol-init +0 -0
- pycontrol_core-3.0.0a1/docs/architecture.md +224 -0
- pycontrol_core-3.0.0a1/docs/audit-2026-05-29.md +408 -0
- pycontrol_core-3.0.0a1/docs/changelog.md +83 -0
- pycontrol_core-3.0.0a1/docs/cli-reference.md +210 -0
- pycontrol_core-3.0.0a1/docs/code-review.md +122 -0
- pycontrol_core-3.0.0a1/docs/contracts.md +155 -0
- pycontrol_core-3.0.0a1/docs/data-format.md +318 -0
- pycontrol_core-3.0.0a1/docs/design-history/simplified-pycontrol-provenance-and-sharing-motivation.md +205 -0
- pycontrol_core-3.0.0a1/docs/design-history/simplified-pycontrol-provenance-and-sharing-plan.md +366 -0
- pycontrol_core-3.0.0a1/docs/experiment-extensions.md +290 -0
- pycontrol_core-3.0.0a1/docs/extension-settings.md +218 -0
- pycontrol_core-3.0.0a1/docs/getting-started.md +174 -0
- pycontrol_core-3.0.0a1/docs/hardware-definitions.md +77 -0
- pycontrol_core-3.0.0a1/docs/integrations.md +50 -0
- pycontrol_core-3.0.0a1/docs/migration-from-official.md +131 -0
- pycontrol_core-3.0.0a1/docs/public-api.md +248 -0
- pycontrol_core-3.0.0a1/docs/sharing.md +144 -0
- pycontrol_core-3.0.0a1/docs/subscriber-api.md +105 -0
- pycontrol_core-3.0.0a1/docs/task-extensions.md +320 -0
- pycontrol_core-3.0.0a1/docs/testing.md +174 -0
- pycontrol_core-3.0.0a1/docs/threading-and-state.md +169 -0
- pycontrol_core-3.0.0a1/docs/troubleshooting.md +249 -0
- pycontrol_core-3.0.0a1/docs/wire-protocol.md +209 -0
- pycontrol_core-3.0.0a1/docs/writing-tasks.md +67 -0
- pycontrol_core-3.0.0a1/pyproject.toml +138 -0
- pycontrol_core-3.0.0a1/src/pycontrol/__init__.py +5 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bundles/__init__.py +48 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bundles/collect.py +233 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bundles/legacy.py +102 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bundles/models.py +200 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bundles/protocol.py +140 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bundles/run.py +271 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bundles/zipio.py +194 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bus/__init__.py +31 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bus/enriched.py +22 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bus/events.py +91 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bus/subscriber.py +115 -0
- pycontrol_core-3.0.0a1/src/pycontrol/bus/timestamps.py +16 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/__init__.py +7 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/__init__.py +5 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/board.py +35 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/experiment.py +27 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/firmware.py +58 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/handlers.py +1055 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/run.py +68 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/setups.py +98 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/vars.py +74 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/commands/workspace.py +51 -0
- pycontrol_core-3.0.0a1/src/pycontrol/cli/main.py +79 -0
- pycontrol_core-3.0.0a1/src/pycontrol/config/__init__.py +59 -0
- pycontrol_core-3.0.0a1/src/pycontrol/config/io.py +141 -0
- pycontrol_core-3.0.0a1/src/pycontrol/config/models.py +289 -0
- pycontrol_core-3.0.0a1/src/pycontrol/experiment/__init__.py +585 -0
- pycontrol_core-3.0.0a1/src/pycontrol/experiment/fleet_fanin.py +237 -0
- pycontrol_core-3.0.0a1/src/pycontrol/experiment/hooks.py +109 -0
- pycontrol_core-3.0.0a1/src/pycontrol/extension/__init__.py +56 -0
- pycontrol_core-3.0.0a1/src/pycontrol/extension/controls.py +75 -0
- pycontrol_core-3.0.0a1/src/pycontrol/extension/experiment_api.py +137 -0
- pycontrol_core-3.0.0a1/src/pycontrol/extension/loader.py +230 -0
- pycontrol_core-3.0.0a1/src/pycontrol/extension/task_api.py +224 -0
- pycontrol_core-3.0.0a1/src/pycontrol/extension/task_controls_context.py +47 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/__init__.py +29 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/device_helpers.py +261 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/LED_driver.py +6 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/MCP.py +204 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/VL53L4.py +435 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/__init__.py +39 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/analog_LED.py +15 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/audio_board.py +14 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/audio_player.py +39 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/breakout_1_2.py +24 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/breakout_H7.py +46 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/five_poke.py +28 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/frame_logger.py +49 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/frame_trigger.py +34 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/grid_maze.py +231 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/lickometer.py +18 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/load_cell.py +148 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/nine_poke.py +51 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/poke.py +25 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/port_expander.py +34 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/rotary_encoder.py +77 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/schmitt_trigger.py +119 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/solenoid_driver.py +12 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/stepper_motor.py +21 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/uRFID.py +25 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/devices/uart_handler.py +26 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/__init__.py +64 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/audio.py +117 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/framework.py +188 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/hardware.py +585 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/profiles.py +105 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/state_machine.py +98 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/timer.py +85 -0
- pycontrol_core-3.0.0a1/src/pycontrol/firmware/pyControl/utility.py +171 -0
- pycontrol_core-3.0.0a1/src/pycontrol/fleet/__init__.py +19 -0
- pycontrol_core-3.0.0a1/src/pycontrol/fleet/envelope.py +94 -0
- pycontrol_core-3.0.0a1/src/pycontrol/integrations/__init__.py +6 -0
- pycontrol_core-3.0.0a1/src/pycontrol/integrations/_queue.py +118 -0
- pycontrol_core-3.0.0a1/src/pycontrol/integrations/notify/__init__.py +24 -0
- pycontrol_core-3.0.0a1/src/pycontrol/integrations/notify/slack.py +72 -0
- pycontrol_core-3.0.0a1/src/pycontrol/integrations/notify/telegram.py +55 -0
- pycontrol_core-3.0.0a1/src/pycontrol/protocol/__init__.py +39 -0
- pycontrol_core-3.0.0a1/src/pycontrol/protocol/analog.py +46 -0
- pycontrol_core-3.0.0a1/src/pycontrol/protocol/decoder.py +268 -0
- pycontrol_core-3.0.0a1/src/pycontrol/protocol/encoder.py +71 -0
- pycontrol_core-3.0.0a1/src/pycontrol/protocol/messages.py +73 -0
- pycontrol_core-3.0.0a1/src/pycontrol/provenance/__init__.py +57 -0
- pycontrol_core-3.0.0a1/src/pycontrol/provenance/archive.py +143 -0
- pycontrol_core-3.0.0a1/src/pycontrol/provenance/collect.py +351 -0
- pycontrol_core-3.0.0a1/src/pycontrol/provenance/hashing.py +92 -0
- pycontrol_core-3.0.0a1/src/pycontrol/provenance/models.py +92 -0
- pycontrol_core-3.0.0a1/src/pycontrol/recording/__init__.py +9 -0
- pycontrol_core-3.0.0a1/src/pycontrol/recording/analog_writer.py +141 -0
- pycontrol_core-3.0.0a1/src/pycontrol/recording/console.py +101 -0
- pycontrol_core-3.0.0a1/src/pycontrol/recording/fleet_aggregator.py +42 -0
- pycontrol_core-3.0.0a1/src/pycontrol/recording/formatting.py +82 -0
- pycontrol_core-3.0.0a1/src/pycontrol/recording/native_event_logger.py +258 -0
- pycontrol_core-3.0.0a1/src/pycontrol/recording/tsv_logger.py +206 -0
- pycontrol_core-3.0.0a1/src/pycontrol/repl/__init__.py +30 -0
- pycontrol_core-3.0.0a1/src/pycontrol/repl/device_helpers.py +27 -0
- pycontrol_core-3.0.0a1/src/pycontrol/repl/file_transfer.py +258 -0
- pycontrol_core-3.0.0a1/src/pycontrol/repl/json_repl.py +63 -0
- pycontrol_core-3.0.0a1/src/pycontrol/repl/raw_repl.py +181 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/__init__.py +24 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/board_session.py +1200 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/commands.py +30 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/device_resolution.py +237 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/info.py +100 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/services/__init__.py +6 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/services/firmware.py +257 -0
- pycontrol_core-3.0.0a1/src/pycontrol/session/services/setup.py +407 -0
- pycontrol_core-3.0.0a1/src/pycontrol/transport/__init__.py +12 -0
- pycontrol_core-3.0.0a1/src/pycontrol/transport/base.py +57 -0
- pycontrol_core-3.0.0a1/src/pycontrol/transport/mock.py +115 -0
- pycontrol_core-3.0.0a1/src/pycontrol/transport/recording.py +92 -0
- pycontrol_core-3.0.0a1/src/pycontrol/transport/replay.py +91 -0
- pycontrol_core-3.0.0a1/src/pycontrol/transport/serial.py +76 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace/__init__.py +307 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace/creation.py +263 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace/hwdef_inspect.py +107 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace/task_inspect.py +30 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/__init__.py +21 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/devices/__init__.py +11 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/devices/example_widget.py +22 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/experiments/blink_demo.json +13 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/encoder.py +19 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/encoder_h7.py +28 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/example.py +17 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/example_h7.py +16 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/karpova_TOF_h7.py +18 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/old_board.py +9 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/usr_button.py +17 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/hardware_definitions/usr_button_h7.py +22 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/plugins/experiment_extensions/notion_logger.py +105 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/plugins/experiment_extensions/s3_data_exporter.py +95 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/plugins/task_controls/example_dialog.py +20 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/plugins/task_extensions/example_extension.py +32 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/plugins/task_extensions/run_notify.py +73 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/plugins/task_extensions/trial_summary.py +18 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/settings.json +27 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/setups.json +1 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/tasks/blinker.py +65 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/tasks/examples/blinker.py +37 -0
- pycontrol_core-3.0.0a1/src/pycontrol/workspace_template/tasks/examples/button.py +48 -0
- pycontrol_core-3.0.0a1/tests/CLASSIFICATION.md +49 -0
- pycontrol_core-3.0.0a1/tests/__init__.py +0 -0
- pycontrol_core-3.0.0a1/tests/conftest.py +22 -0
- pycontrol_core-3.0.0a1/tests/contracts/test_bus_contract.py +60 -0
- pycontrol_core-3.0.0a1/tests/contracts/test_data_contract.py +70 -0
- pycontrol_core-3.0.0a1/tests/contracts/test_fleet_envelope_contract.py +74 -0
- pycontrol_core-3.0.0a1/tests/contracts/test_session_lifecycle_contract.py +18 -0
- pycontrol_core-3.0.0a1/tests/contracts/test_task_authoring_contract.py +42 -0
- pycontrol_core-3.0.0a1/tests/firmware_stubs/__init__.py +4 -0
- pycontrol_core-3.0.0a1/tests/firmware_stubs/micropython.py +16 -0
- pycontrol_core-3.0.0a1/tests/firmware_stubs/pyb.py +165 -0
- pycontrol_core-3.0.0a1/tests/firmware_stubs/ucollections.py +1 -0
- pycontrol_core-3.0.0a1/tests/firmware_stubs/ujson.py +1 -0
- pycontrol_core-3.0.0a1/tests/golden/__init__.py +0 -0
- pycontrol_core-3.0.0a1/tests/golden/build_synthetic.py +70 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/analog.in.bin +0 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/blinker.in.bin +0 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/blinker_real.in.bin +0 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/blinker_real.out.bin +109 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/counter_demo_real.in.bin +0 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/counter_demo_real.out.bin +0 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/encoder_real.in.bin +0 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/encoder_real.out.bin +111 -0
- pycontrol_core-3.0.0a1/tests/golden/frames/random_ratio.in.bin +0 -0
- pycontrol_core-3.0.0a1/tests/golden/replay.py +92 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/blinker_real.meta.json +8 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/blinker_real.tsv +23 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/counter_demo_real.meta.json +8 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/counter_demo_real.tsv +81 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/encoder_real.meta.json +10 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/encoder_real.tsv +13 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/encoder_real_encoder.data.npy +0 -0
- pycontrol_core-3.0.0a1/tests/golden/sessions/encoder_real_encoder.time.npy +0 -0
- pycontrol_core-3.0.0a1/tests/golden/spec_frames.py +103 -0
- pycontrol_core-3.0.0a1/tests/golden/tasks/blinker_real.task.py +31 -0
- pycontrol_core-3.0.0a1/tests/golden/tasks/counter_demo_real.task.py +46 -0
- pycontrol_core-3.0.0a1/tests/golden/tasks/encoder_real.task.py +24 -0
- pycontrol_core-3.0.0a1/tests/integration/__init__.py +0 -0
- pycontrol_core-3.0.0a1/tests/integration/fake_board/__init__.py +23 -0
- pycontrol_core-3.0.0a1/tests/integration/fake_board/responder.py +410 -0
- pycontrol_core-3.0.0a1/tests/integration/test_board_session.py +1180 -0
- pycontrol_core-3.0.0a1/tests/integration/test_cli_workspace.py +1118 -0
- pycontrol_core-3.0.0a1/tests/integration/test_experiment_runner.py +689 -0
- pycontrol_core-3.0.0a1/tests/integration/test_real_hardware_replay.py +252 -0
- pycontrol_core-3.0.0a1/tests/integration/test_repl.py +193 -0
- pycontrol_core-3.0.0a1/tests/unit/__init__.py +0 -0
- pycontrol_core-3.0.0a1/tests/unit/firmware/__init__.py +0 -0
- pycontrol_core-3.0.0a1/tests/unit/firmware/conftest.py +33 -0
- pycontrol_core-3.0.0a1/tests/unit/firmware/test_device_helpers.py +236 -0
- pycontrol_core-3.0.0a1/tests/unit/firmware/test_devices_init.py +55 -0
- pycontrol_core-3.0.0a1/tests/unit/firmware/test_hardware_uses_profile.py +174 -0
- pycontrol_core-3.0.0a1/tests/unit/firmware/test_profiles.py +173 -0
- pycontrol_core-3.0.0a1/tests/unit/firmware/test_timer_rounding.py +98 -0
- pycontrol_core-3.0.0a1/tests/unit/test_bundles_collect.py +233 -0
- pycontrol_core-3.0.0a1/tests/unit/test_bus_subscriber.py +175 -0
- pycontrol_core-3.0.0a1/tests/unit/test_cli.py +255 -0
- pycontrol_core-3.0.0a1/tests/unit/test_config_models.py +278 -0
- pycontrol_core-3.0.0a1/tests/unit/test_extension.py +398 -0
- pycontrol_core-3.0.0a1/tests/unit/test_file_transfer_errors.py +101 -0
- pycontrol_core-3.0.0a1/tests/unit/test_firmware_root.py +38 -0
- pycontrol_core-3.0.0a1/tests/unit/test_fleet_fanin.py +92 -0
- pycontrol_core-3.0.0a1/tests/unit/test_golden_fixtures.py +82 -0
- pycontrol_core-3.0.0a1/tests/unit/test_hwdef_ordering.py +38 -0
- pycontrol_core-3.0.0a1/tests/unit/test_integrations_notify.py +216 -0
- pycontrol_core-3.0.0a1/tests/unit/test_protocol_decoder.py +328 -0
- pycontrol_core-3.0.0a1/tests/unit/test_protocol_encoder.py +139 -0
- pycontrol_core-3.0.0a1/tests/unit/test_provenance.py +228 -0
- pycontrol_core-3.0.0a1/tests/unit/test_recording_tsv.py +402 -0
- pycontrol_core-3.0.0a1/tests/unit/test_transport_mock.py +161 -0
- pycontrol_core-3.0.0a1/tests/unit/test_workspace.py +521 -0
- pycontrol_core-3.0.0a1/tests/unit/test_workspace_hwdef_inspect.py +144 -0
- pycontrol_core-3.0.0a1/tests/unit/test_workspace_template.py +52 -0
- pycontrol_core-3.0.0a1/tools/README.md +12 -0
- pycontrol_core-3.0.0a1/tools/analog_diagnose.py +122 -0
- pycontrol_core-3.0.0a1/tools/capture_fixtures.py +203 -0
- pycontrol_core-3.0.0a1/tools/encoder_diagnose.py +180 -0
- pycontrol_core-3.0.0a1/uv.lock +893 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*$py.class
|
|
4
|
+
.venv/
|
|
5
|
+
.env
|
|
6
|
+
.mypy_cache/
|
|
7
|
+
.ruff_cache/
|
|
8
|
+
.pytest_cache/
|
|
9
|
+
.coverage
|
|
10
|
+
.coverage.*
|
|
11
|
+
htmlcov/
|
|
12
|
+
dist/
|
|
13
|
+
build/
|
|
14
|
+
*.egg-info/
|
|
15
|
+
.DS_Store
|
|
16
|
+
node_modules/
|
|
17
|
+
.idea/
|
|
18
|
+
.vscode/
|
|
19
|
+
|
|
20
|
+
# never commit ad-hoc data captured during dev runs
|
|
21
|
+
/scratch/
|
|
22
|
+
/data/
|
|
23
|
+
|
|
24
|
+
# but keep the test fixtures
|
|
25
|
+
!tests/golden/**
|
|
26
|
+
# (still ignore caches inside the kept dir)
|
|
27
|
+
tests/golden/**/__pycache__/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
+
rev: v0.5.7
|
|
4
|
+
hooks:
|
|
5
|
+
- id: ruff
|
|
6
|
+
args: [--fix]
|
|
7
|
+
- id: ruff-format
|
|
8
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
9
|
+
rev: v4.6.0
|
|
10
|
+
hooks:
|
|
11
|
+
- id: trailing-whitespace
|
|
12
|
+
- id: end-of-file-fixer
|
|
13
|
+
- id: check-yaml
|
|
14
|
+
- id: check-toml
|
|
15
|
+
- id: check-merge-conflict
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Deleted Surface
|
|
2
|
+
|
|
3
|
+
This file records compatibility surfaces removed before the v3.0.0a1 release.
|
|
4
|
+
|
|
5
|
+
## Removed / dropped compatibility surface
|
|
6
|
+
|
|
7
|
+
- Legacy integration config keys from model defaults and shipped examples:
|
|
8
|
+
- `telegram`
|
|
9
|
+
- `notion`
|
|
10
|
+
- `cerebro`
|
|
11
|
+
- `notion_and_network`
|
|
12
|
+
- Unknown experiment top-level keys are ignored by the current config model.
|
|
13
|
+
- BoardSession public service facades:
|
|
14
|
+
- `connection`
|
|
15
|
+
- `firmware`
|
|
16
|
+
- `setup`
|
|
17
|
+
- `run`
|
|
18
|
+
- `commands`
|
|
19
|
+
- `mcu_guard`
|
|
20
|
+
- `pycontrol setups import --from-upstream`.
|
|
21
|
+
- Placeholder S3 and Notion integration modules:
|
|
22
|
+
- `pycontrol.integrations.s3`
|
|
23
|
+
- `pycontrol.integrations.notion`
|
|
24
|
+
Notion and S3 are supported as workspace example experiment extensions with
|
|
25
|
+
optional dependencies (`pycontrol-core[notion]`, `pycontrol-core[s3]`), not as
|
|
26
|
+
core facade modules.
|
|
27
|
+
- Empty `pycontrol dev` CLI surface and `pycontrol.devtools` placeholder package.
|
|
28
|
+
- `pycontrol.sharing` compatibility package. `collect_task_files` and
|
|
29
|
+
`find_task_variables` moved to `pycontrol.bundles.collect`; archive helpers
|
|
30
|
+
now use the canonical `pycontrol.bundles.ProtocolBundleManifest` and
|
|
31
|
+
`create_protocol_bundle` / `validate_protocol_bundle` /
|
|
32
|
+
`extract_protocol_bundle` names.
|
|
33
|
+
|
|
34
|
+
## Removed Extension Hooks
|
|
35
|
+
|
|
36
|
+
- `TaskExtension.get_reply` was removed (no call sites in this repository).
|
|
37
|
+
|
|
38
|
+
## Notes
|
|
39
|
+
|
|
40
|
+
- Tests are classified in `tests/CLASSIFICATION.md` for future cleanup passes.
|