Skip to content

feat: add --show-estimates flag to job list and job get#992

Open
vinadomi11 wants to merge 5 commits intoaws-deadline:mainlinefrom
vinadomi11:feat/estimated-completion-time
Open

feat: add --show-estimates flag to job list and job get#992
vinadomi11 wants to merge 5 commits intoaws-deadline:mainlinefrom
vinadomi11:feat/estimated-completion-time

Conversation

@vinadomi11
Copy link

@vinadomi11 vinadomi11 commented Feb 5, 2026

What was the problem/requirement? (What/Why)

Users have no way to see estimated completion time for in-progress jobs from the CLI. This makes it harder to plan and monitor long-running render jobs.

What was the solution? (How)

Added a --show-estimates flag to deadline job list and deadline job get commands that displays estimated time remaining for in-progress jobs. The estimate is calculated by:

Computing average time per completed task
Multiplying by remaining tasks (running + pending)
Output shows human-readable durations like "5 minutes" or "1 hour, 30 minutes".

What is the impact of this change?

New optional CLI flag - no impact on existing behavior.

How was this change tested?

Have you run the unit tests?
Have you run the integration tests?
Was this change documented?

Are relevant docstrings in the code base updated?
Has the README.md been updated?
Does this PR introduce new dependencies?

This PR does not add any new dependencies.
Is this a breaking change?

No - this adds an optional flag with no changes to existing behavior.

Does this change impact security?

No security impact.


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@vinadomi11 vinadomi11 requested a review from a team as a code owner February 5, 2026 20:18
def cli_job():
"""
def _format_duration(seconds: float) -> str:
"""Format seconds as human-readable duration (e.g., '1 hour, 30 minutes')."""
Copy link

@jairaws jairaws Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to an issue with the comment quotes (e.g. """). The one in line 108 should be removed.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue addressed in the latest revision.

return ", ".join(parts)


def _estimate_completion_time(job: dict) -> Optional[str]:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clever!

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty cool, @vinadomi11! Could we add unit tests?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just updated!

def cli_job():
"""
def _format_duration(seconds: float) -> str:
"""Format seconds as human-readable duration (e.g., '1 hour, 30 minutes')."""
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue addressed in the latest revision.

)
class TestEstimateCompletionTime:
def test_format_duration_seconds(self):
from deadline.client.cli._groups.job_group import _format_duration
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we move all the imports to the top of the file? As opposed to have an import in each test.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 7, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants