Client.get doesn't evaluate dependency if it's in dictionary value or nested inside dictionary
- Dominant language
- Python
- Stars
- 1.7k
- Forks
- 778
- Avg merge
- 2h 50m
- Merged PRs (30d)
- 3
Description
**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**:
```python
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
Contributor guide
Assessment
This issue has not been assessed yet.