preserve an explicit max_wait_duration=0 when building custom-training scheduling inputs
continue treating None as an omitted duration
add regression coverage for omission, zero with Flex Start, zero without another scheduling option, and a positive duration
Why
The documented value 0 is a sentinel that requests an indefinite Dynamic Workload Scheduler wait. Request preparation used truthiness checks, causing explicit zero to be converted to None and silently omitted from the outgoing training pipeline.
Using explicit is not None checks keeps the API distinction between omission and zero without changing positive-duration behavior.
negative control: restoring the original truthiness checks makes both zero cases fail with None != "0s"
Black 24.8.0 check passes for the changed production file
Flake8 6.1.0 passes for both changed files
git diff --check passes
A broader local Windows package run was not completed because the Python process encountered a native memory-access failure; no full-suite result is claimed. GitHub's Linux CI remains the broader verification environment.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
The documented value 0 is a sentinel that requests an indefinite Dynamic Workload Scheduler wait. Request preparation used truthiness checks, causing explicit zero to be converted to None and silently omitted from the outgoing training pipeline.
Using explicit is not None checks keeps the API distinction between omission and zero without changing positive-duration behavior.
Fixes #7067.
Validation
A broader local Windows package run was not completed because the Python process encountered a native memory-access failure; no full-suite result is claimed. GitHub's Linux CI remains the broader verification environment.