Support duck-typed Futures in task graph processing#12213
Merged
Conversation
Contributor
Unit Test ResultsSee test report for an extended history of previous test failures. This is useful for diagnosing flaky tests. 11 files ±0 11 suites ±0 3h 34m 46s ⏱️ + 6m 57s Results for commit 66c78aa. ± Comparison against base commit 1e27392. ♻️ This comment has been updated with latest results. |
Add _is_dask_future() helper to detect both TaskRef instances and duck-typed futures (objects with __dask_future__ = True). This allows third-party schedulers to use their own Future classes with dask.persist() and graph conversion. Changes: - Add _is_dask_future() helper function - Update parse_input() to convert duck-typed futures to Alias - Update convert_legacy_task() to handle duck-typed futures - Update _get_dependencies() to extract keys from duck-typed futures - Generalize persist protocol in base.py for any scheduler with a persist method 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
b3e5a45 to
66c78aa
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I'm curious about experimenting with other schedulers aside from dask.distributed. This change allows a bit more extensibility for both Clients and Futures by opening things up to duck typing. This is backwards compatible. Performance impact is negligible.
Add _is_dask_future() helper to detect both TaskRef instances and duck-typed futures (objects with dask_future = True). This allows third-party schedulers to use their own Future classes with dask.persist() and graph conversion.
Changes:
🤖 Generated with Claude Code