Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions src/_pytask/execute.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
from _pytask.node_protocols import PProvisionalNode
from _pytask.node_protocols import PTask
from _pytask.node_protocols import PTaskWithPath
from _pytask.node_protocols import TaskNode
from _pytask.nodes import DirectoryNode
from _pytask.outcomes import Exit
from _pytask.outcomes import SkippedUnchanged
Expand All @@ -47,9 +48,8 @@
from _pytask.state import get_node_change_info
from _pytask.state import has_node_changed
from _pytask.state import update_states
from _pytask.task_io import concrete_product_nodes
from _pytask.task_io import task_node_leaves
from _pytask.traceback import remove_traceback_from_exc_info
from _pytask.tree_util import tree_leaves
from _pytask.tree_util import tree_structure
from _pytask.typing import is_task_generator

Expand Down Expand Up @@ -286,7 +286,8 @@ def pytask_execute_task(session: Session, task: PTask) -> bool:
)
raise ValueError(msg)

nodes = task_node_leaves(task.produces["return"])
# Collected return annotations have concrete or provisional node leaves.
nodes = cast("list[TaskNode]", tree_leaves(task.produces["return"]))
values = structure_return.flatten_up_to(out)
for node, value in zip(nodes, values, strict=False):
if not isinstance(node, PProvisionalNode):
Expand All @@ -302,8 +303,8 @@ def pytask_execute_task_teardown(session: Session, task: PTask) -> None:
return

collect_provisional_products(session, task)
# Collecting provisional products must leave only concrete nodes.
product_nodes = concrete_product_nodes(task.produces)
# Provisional products have been resolved to concrete nodes.
product_nodes = cast("list[PNode]", tree_leaves(task.produces))
missing_nodes = [node for node in product_nodes if not node.state()]
if missing_nodes:
paths = session.config["paths"]
Expand Down
50 changes: 0 additions & 50 deletions src/_pytask/task_io.py

This file was deleted.

9 changes: 0 additions & 9 deletions src/pytask/task_io.py

This file was deleted.

39 changes: 0 additions & 39 deletions tests/test_task_io.py

This file was deleted.

Loading