From 9f8c8e7ef8e54cffbdbde542eebf7d965c9ac7df Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Tue, 9 Apr 2024 12:11:05 +0200 Subject: [PATCH] Publish nodeloaderror. --- docs/source/changes.md | 1 + src/_pytask/execute.py | 8 +++++--- src/pytask/__init__.py | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/source/changes.md b/docs/source/changes.md index 000c0f9fb..126eb06c0 100644 --- a/docs/source/changes.md +++ b/docs/source/changes.md @@ -36,6 +36,7 @@ releases are available on [PyPI](https://pypi.org/project/pytask) and - {pull}`591` invalidates the cache of fsspec when checking whether a remote file exists. Otherwise, a remote file might be reported as missing although it was just created. See https://github.com/fsspec/s3fs/issues/851 for more info. +- {pull}`594` publishes `NodeLoadError`. ## 0.4.7 - 2024-03-19 diff --git a/src/_pytask/execute.py b/src/_pytask/execute.py index 7ef1dd009..afd93d99e 100644 --- a/src/_pytask/execute.py +++ b/src/_pytask/execute.py @@ -175,7 +175,7 @@ def pytask_execute_task_setup(session: Session, task: PTask) -> None: # noqa: C node.path.parent.mkdir(parents=True, exist_ok=True) -def _safe_load(node: PNode | PProvisionalNode, task: PTask, is_product: bool) -> Any: +def _safe_load(node: PNode | PProvisionalNode, task: PTask, *, is_product: bool) -> Any: try: return node.load(is_product=is_product) except Exception as e: # noqa: BLE001 @@ -193,11 +193,13 @@ def pytask_execute_task(session: Session, task: PTask) -> bool: kwargs = {} for name, value in task.depends_on.items(): - kwargs[name] = tree_map(lambda x: _safe_load(x, task, False), value) + kwargs[name] = tree_map(lambda x: _safe_load(x, task, is_product=False), value) for name, value in task.produces.items(): if name in parameters: - kwargs[name] = tree_map(lambda x: _safe_load(x, task, True), value) + kwargs[name] = tree_map( + lambda x: _safe_load(x, task, is_product=True), value + ) out = task.execute(**kwargs) diff --git a/src/pytask/__init__.py b/src/pytask/__init__.py index 41271e2cc..d7226f240 100644 --- a/src/pytask/__init__.py +++ b/src/pytask/__init__.py @@ -26,7 +26,7 @@ from _pytask.exceptions import CollectionError from _pytask.exceptions import ConfigurationError from _pytask.exceptions import ExecutionError -from _pytask.exceptions import NodeNotCollectedError +from _pytask.exceptions import NodeNotCollectedError, NodeLoadError from _pytask.exceptions import NodeNotFoundError from _pytask.exceptions import PytaskError from _pytask.exceptions import ResolvingDependenciesError @@ -105,6 +105,7 @@ "MarkDecorator", "MarkGenerator", "NodeInfo", + "NodeLoadError", "NodeNotCollectedError", "NodeNotFoundError", "PNode",