diff --git a/.github/dependabot.yml b/.github/dependabot.yml index fbb58d4..be4ca53 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,8 +5,11 @@ updates: directory: "/" schedule: interval: "weekly" - groups: github-actions: patterns: - "*" + - package-ecosystem: "uv" + directory: "/" + schedule: + interval: "weekly" diff --git a/docs/source/quickstart.md b/docs/source/quickstart.md index dd583cb..640b26e 100644 --- a/docs/source/quickstart.md +++ b/docs/source/quickstart.md @@ -6,11 +6,11 @@ pytask-parallel is available on [PyPI](https://pypi.org/project/pytask-parallel) [Anaconda.org](https://anaconda.org/conda-forge/pytask-parallel). Install it with ```console -$ pip install pytask-parallel +$ uv add pytask-parallel # or -$ conda install -c conda-forge pytask-parallel +$ pixi add pytask-parallel ``` ## Usage diff --git a/justfile b/justfile index d63d31d..87529e7 100644 --- a/justfile +++ b/justfile @@ -20,7 +20,7 @@ typing: # Run linting and formatting lint: - uvx --with pre-commit-uv pre-commit run -a + uvx prek run -a # Build documentation docs: diff --git a/pyproject.toml b/pyproject.toml index d8037d0..8520904 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,7 +50,7 @@ test = [ ] typing = [ "pytask-parallel", - "ty", + "ty>=0.0.8", {include-group = "coiled"}, {include-group = "dask"}, ] diff --git a/src/pytask_parallel/utils.py b/src/pytask_parallel/utils.py index 52f51e4..269c72d 100644 --- a/src/pytask_parallel/utils.py +++ b/src/pytask_parallel/utils.py @@ -54,7 +54,7 @@ def parse_future_result( exc_info = _parse_future_exception(future_exception) return WrapperResult( - carry_over_products=None, # type: ignore[arg-type] + carry_over_products=None, warning_reports=[], exc_info=exc_info, stdout="", diff --git a/src/pytask_parallel/wrappers.py b/src/pytask_parallel/wrappers.py index eade498..e663e8a 100644 --- a/src/pytask_parallel/wrappers.py +++ b/src/pytask_parallel/wrappers.py @@ -69,14 +69,22 @@ def wrap_task_in_thread(task: PTask, *, remote: bool, **kwargs: Any) -> WrapperR try: out = task.function(**kwargs) except Exception: # noqa: BLE001 - exc_info = sys.exc_info() + exc_info_raw = sys.exc_info() + exc_info = ( + cast( + "tuple[type[BaseException], BaseException, TracebackType | str | None]", + exc_info_raw, + ) + if exc_info_raw[0] is not None + else None + ) else: _handle_function_products(task, out, remote=remote) exc_info = None return WrapperResult( - carry_over_products=None, # type: ignore[arg-type] + carry_over_products=None, warning_reports=[], - exc_info=exc_info, # type: ignore[arg-type] + exc_info=exc_info, stdout="", stderr="", ) @@ -161,7 +169,7 @@ def wrap_task_in_process( # noqa: PLR0913 captured_stderr_buffer.close() return WrapperResult( - carry_over_products=products, # type: ignore[arg-type] + carry_over_products=products, warning_reports=warning_reports, exc_info=processed_exc_info, stdout=captured_stdout,