Client.get doesn't evaluate dependency if it's in dictionary value or nested inside dictionary
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- python
調査の方向性
まず Client.get と、グラフ引数の評価に関係する get パスから始め、それを dask.core.get_deps および issue #8959 に記載された動作と比較します。提供された最小限の例を実行し、辞書の値とネストされたリストの値がタスクキーを解決することを確認します。その一方で、既存のトップレベルのリストとタプルの動作は変更されないことを確認します。
索引モデルが issue の本文から書いたものです。
説明
Describe the issue:
When node is referenced in DAG not in top level list or tuple it's not evaluated when computing graph.
Minimal Complete Verifiable Example:
from dask.core import get_deps
from dask.distributed import Client
import operator
dag = {
"a": 3,
"b": 4,
"c": (operator.add,"a","b"),
"d": {"arg1": "c"},
"e": ["a", "c"],
"f": { "inner_list": ["a", "c"] },
}
dask_client = Client()
print("Compute graph:")
print(dask_client.get(dag, ["d", "e", "f"]))
print("Dependencies:")
print(get_deps(dag)[0])
Anything else we need to know?:
Output when running the code above:
Compute graph:
[{'arg1': 'c'}, [3, 7], {'inner_list': ['a', 'c']}]
Dependencies:
{'a': set(), 'b': set(), 'c': {'a', 'b'}, 'd': {'c'}, 'e': {'a', 'c'}, 'f': {'a', 'c'}}
It's expected that dictionary values are also evaluated, like it's done for dependencies in top level list or tuple when calling get method. All those dependencies are detected by get_deps function, as above.
This can be related to the issue #8959 : this code example has been tested in dask 2024.11.2 and it produced the expected output, all nodes including inner ones were evaluated:
Compute graph:
[{'arg1': 7}, [3, 7], {'inner_list': [3, 7]}]
Dependencies:
{'a': set(), 'b': set(), 'c': {'b', 'a'}, 'd': {'c'}, 'e': {'a', 'c'}, 'f': {'a', 'c'}}
Environment:
- Dask version: 2026.1.1
- Python version: 3.13
- Operating System: Debian 13 (trixie)
- Install method (conda, pip, source): pip
- 主要言語
- Python
- スター
- 1.7k
- フォーク
- 778
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
dask/distributed のほかの issue
-
needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
dask/distributed#9366 ·
-
needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
dask/distributed#9353 ·
-
documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 82/100
dask/distributed#8304 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
dask/distributed#4816 · コメント 2 件 ·
-
documentation good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
dask/distributed#2378 · コメント 2 件 ·
dask/distributed の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
qgis/QGIS-Plugins-Website#459 ·
-
bug severity:medium
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 2 日以内に返信
-
bot-found bug priority: P3
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
madenvel/KalinkaPlayer#179 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ls1intum/edutelligence#1098 ·
メンテナーはふだん 1 日以内に返信