Skip to content

Commit 3e2d415

Browse files
authored
Publish NodeLoadError. (#594)
1 parent fe79ce7 commit 3e2d415

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

docs/source/changes.md

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ releases are available on [PyPI](https://pypi.org/project/pytask) and
3838
created. See https://github.com/fsspec/s3fs/issues/851 for more info.
3939
- {pull}`593` recreate `PythonNode`s every run since they carry the `_NoDefault` enum as
4040
the value whose state is `None`.
41+
- {pull}`594` publishes `NodeLoadError`.
4142

4243
## 0.4.7 - 2024-03-19
4344

src/_pytask/execute.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ def pytask_execute_task_setup(session: Session, task: PTask) -> None: # noqa: C
175175
node.path.parent.mkdir(parents=True, exist_ok=True)
176176

177177

178-
def _safe_load(node: PNode | PProvisionalNode, task: PTask, is_product: bool) -> Any:
178+
def _safe_load(node: PNode | PProvisionalNode, task: PTask, *, is_product: bool) -> Any:
179179
try:
180180
return node.load(is_product=is_product)
181181
except Exception as e: # noqa: BLE001
@@ -193,11 +193,13 @@ def pytask_execute_task(session: Session, task: PTask) -> bool:
193193

194194
kwargs = {}
195195
for name, value in task.depends_on.items():
196-
kwargs[name] = tree_map(lambda x: _safe_load(x, task, False), value)
196+
kwargs[name] = tree_map(lambda x: _safe_load(x, task, is_product=False), value)
197197

198198
for name, value in task.produces.items():
199199
if name in parameters:
200-
kwargs[name] = tree_map(lambda x: _safe_load(x, task, True), value)
200+
kwargs[name] = tree_map(
201+
lambda x: _safe_load(x, task, is_product=True), value
202+
)
201203

202204
out = task.execute(**kwargs)
203205

src/pytask/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from _pytask.exceptions import CollectionError
2727
from _pytask.exceptions import ConfigurationError
2828
from _pytask.exceptions import ExecutionError
29-
from _pytask.exceptions import NodeNotCollectedError
29+
from _pytask.exceptions import NodeNotCollectedError, NodeLoadError
3030
from _pytask.exceptions import NodeNotFoundError
3131
from _pytask.exceptions import PytaskError
3232
from _pytask.exceptions import ResolvingDependenciesError
@@ -105,6 +105,7 @@
105105
"MarkDecorator",
106106
"MarkGenerator",
107107
"NodeInfo",
108+
"NodeLoadError",
108109
"NodeNotCollectedError",
109110
"NodeNotFoundError",
110111
"PNode",

0 commit comments

Comments
 (0)