Conversation
With disable_early_shutdown=True, an after-validator overwrote shutdown_error_rate with 1.0 and marked it as set. The value did not round-trip, and a run-config YAML that only disabled early shutdown replaced the baseline rate during the CLI overlay. Replace the validator with a read-only effective_shutdown_error_rate property and point the two engine readers at it, so enforcement gets the same value as before while shutdown_error_rate keeps the user's input. Make Field(description=...) the single place field docs live: the 12 undescribed fields take their text from the Attributes block, which is removed. Group fields with section comments without reordering them. Move the deprecated ThrottleConfig and its message to run_config_deprecated.py and import them back, so every existing import path and old pickles still resolve. No public field names, types, defaults or bounds change. Signed-off-by: ChethanUK <chethanuk@outlook.com>
The run-config overlay was only exercised with load_run_config mocked, so the YAML-file hop that produces the reported symptom was never covered through the command a user actually runs. Invoke the real create command with a run-config YAML on disk and assert the baseline shutdown_error_rate survives the overlay, with the derived effective rate still 1.0 when early shutdown is disabled. Signed-off-by: ChethanUK <chethanuk@outlook.com>
The move to run_config_deprecated changed the module ThrottleConfig reports. The compatibility claim that pickles written before the move still load rested on the module-level re-import in run_config, with nothing covering it. Rebuild a pre-move payload by pickling with __module__ set to the old path and assert it loads. Dropping the re-import makes this fail with AttributeError, so the test guards that binding instead of restating it. Signed-off-by: ChethanUK <chethanuk@outlook.com>
Linked Issue CheckIssue #807 has not been triaged yet. A maintainer needs to review You can continue working on the PR in the meantime. The check will |
|
Stale PR reminderThis PR has had failing checks for 7 days without activity. Failing checks: check Please push an update or leave a comment if you're still working on this. To prevent auto-close, add the |
📋 Summary
With
disable_early_shutdown=True, an after-validator overwroteshutdown_error_ratewith1.0, so the value didn't round-trip. Adata-designer create --run-configYAML that only setdisable_early_shutdown: truealso replaced the baseline rate. This PR replaces the mutation with aneffective_shutdown_error_rateproperty and does the rest of the #807 cleanup. Field names, types and defaults don't change.🔗 Related Issue
Closes #807
🔄 Changes
ValidationColumnGeneratorreadeffective_shutdown_error_rate, so enforcement gets the same value as before. It's a plain@propertybecause acomputed_fieldgets dumped and then rejected byextra="forbid"onmodel_validate.ThrottleConfigand_THROTTLE_DEPRECATION_MESSAGEmove torun_config_deprecated.pyand are imported back intorun_config.py, so both import paths and old pickles still resolve.Field(description=...)replaces theAttributes:block. 12 fields get a description, and section comments group the fields without reordering them.STYLEGUIDE.mdstill usesnormalize_shutdown_settingsas its after-validator example. This PR doesn't touch it.🧪 Testing
make testpassesUnit tests added/updated
E2E tests added/updated (if applicable)
RunConfig(disable_early_shutdown=True, shutdown_error_rate=0.2)reads back0.2with an effective rate of1.0and survivesmodel_dump/model_validateand the JSON round-trip.RunConfig.model_json_schema()with descriptions stripped is identical tomain.DataDesigner.createwith a custom column that fails on about half the rows andshutdown_error_rate=0.2: with early shutdown on it stops and salvages 4 of 40 records, with it off it finishes with the 20 good ones.The 6 touched test files pass (256), including a legacy-pickle test for the
ThrottleConfigmove.✅ Checklist