Add DurationOption to store time duration values #19006
Draft
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.
Fixes #18698
I am not sure if this is what we need, but this is what I think what's necessary.
If I understand correctly, we want all options that declare time duration (e.g. https://www.pantsbuild.org/docs/reference-python_tests#codetimeoutcode or https://www.pantsbuild.org/docs/reference-global#remote_cache_read_timeout_millis) to use this type instead of
IntOption
. To unify the declaration, I suggest using a custom syntax that we publish in the docs:with support for hours, minutes, seconds, milliseconds, and microseconds. I don't think it would be reasonable to support days (one can always use multiple hours for that anyway). Using a reg exp, a user value would be loaded into
datetime.timedelta
which will be used internally when passing the values to the scheduler (or any other place).What I am not sure is how we'd like to use this type for an
Option
, e.g.