Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Client.get doesn't evaluate dependency if it's in dictionary value or nested inside dictionary

オープン
#9,186 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
python

調査の方向性

まず Client.get と、グラフ引数の評価に関係する get パスから始め、それを dask.core.get_deps および issue #8959 に記載された動作と比較します。提供された最小限の例を実行し、辞書の値とネストされたリストの値がタスクキーを解決することを確認します。その一方で、既存のトップレベルのリストとタプルの動作は変更されないことを確認します。

索引モデルが issue の本文から書いたものです。

説明

needs triage

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 はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

dask/distributed のほかの issue

dask/distributed の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。