Client.get doesn't evaluate dependency if it's in dictionary value or nested inside dictionary
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- distributed-systems
Línea de trabajo
Comienza con Client.get y la ruta get involucrada en la evaluación de argumentos de grafos, y compárala después con dask.core.get_deps y el comportamiento descrito en el issue #8959. Ejecuta el ejemplo mínimo proporcionado y verifica que los valores de diccionario y los valores de listas anidadas resuelvan las claves de tarea, mientras que el comportamiento existente de las listas y tuplas de nivel superior permanezca sin cambios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 1.7k
- Forks
- 780
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de dask/distributed
-
needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dask/distributed#9366 ·
-
needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
dask/distributed#9353 ·
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
dask/distributed#8304 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
dask/distributed#4816 · 2 comentarios ·
-
documentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
dask/distributed#2378 · 2 comentarios ·
Todos los issues de dask/distributed
Issues similares
-
bug server
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
sportsdataverse/sportsdataverse-py#641 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
googleapis/google-cloud-python#18532 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día