diff --git a/docs/source/conf.py b/docs/source/conf.py index c455c56..a960390 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -214,7 +214,7 @@ def linkcode_resolve( # noqa: C901, PLR0911 } -def setup(app: sphinx.application.Sphinx) -> None: # ty: ignore[unresolved-attribute] +def setup(app: sphinx.application.Sphinx) -> None: """Configure sphinx.""" app.add_object_type( "confval", diff --git a/pyproject.toml b/pyproject.toml index 1b52840..d8037d0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -116,6 +116,25 @@ force-single-line = true [tool.ruff.lint.pydocstyle] convention = "numpy" +[tool.ty.rules] +unused-ignore-comment = "error" + +[tool.ty.terminal] +error-on-warning = true + +[[tool.ty.overrides]] +include = ["src/**/_version.py"] + +[tool.ty.overrides.rules] +invalid-type-form = "ignore" + +[[tool.ty.overrides]] +include = ["src/**/__init__.py"] + +[tool.ty.overrides.rules] +unused-ignore-comment = "ignore" + + [tool.pytest.ini_options] addopts = ["--nbmake"] # Do not add src since it messes with the loading of pytask-parallel as a plugin. diff --git a/src/pytask_parallel/__init__.py b/src/pytask_parallel/__init__.py index c21274f..6335de1 100644 --- a/src/pytask_parallel/__init__.py +++ b/src/pytask_parallel/__init__.py @@ -8,7 +8,7 @@ from pytask_parallel.backends import registry try: - from ._version import version as __version__ + from ._version import version as __version__ # ty: ignore[unresolved-import] except ImportError: # broken installation, we don't even try unknown only works because we do poor mans # version compare diff --git a/src/pytask_parallel/execute.py b/src/pytask_parallel/execute.py index 6eb6465..ef6529a 100644 --- a/src/pytask_parallel/execute.py +++ b/src/pytask_parallel/execute.py @@ -285,15 +285,15 @@ def _update_carry_over_node( return x raise NotImplementedError - structure_carry_over_products = tree_structure(carry_over_products) # type: ignore[arg-type] - structure_produces = tree_structure(task.produces) # type: ignore[arg-type] + structure_carry_over_products = tree_structure(carry_over_products) + structure_produces = tree_structure(task.produces) # strict must be false when none is leaf. if structure_produces.is_prefix(structure_carry_over_products, strict=False): task.produces = tree_map( _update_carry_over_node, - task.produces, # type: ignore[arg-type] - carry_over_products, # type: ignore[arg-type] - ) # type: ignore[assignment] + task.produces, + carry_over_products, + ) @define(kw_only=True) diff --git a/src/pytask_parallel/utils.py b/src/pytask_parallel/utils.py index 7688b01..52f51e4 100644 --- a/src/pytask_parallel/utils.py +++ b/src/pytask_parallel/utils.py @@ -32,7 +32,7 @@ from coiled.function import Function as CoiledFunction except ImportError: - class CoiledFunction: ... # type: ignore[no-redef] + class CoiledFunction: ... __all__ = [ diff --git a/src/pytask_parallel/wrappers.py b/src/pytask_parallel/wrappers.py index d483d3c..eade498 100644 --- a/src/pytask_parallel/wrappers.py +++ b/src/pytask_parallel/wrappers.py @@ -72,7 +72,7 @@ def wrap_task_in_thread(task: PTask, *, remote: bool, **kwargs: Any) -> WrapperR exc_info = sys.exc_info() else: _handle_function_products(task, out, remote=remote) - exc_info = None # type: ignore[assignment] + exc_info = None return WrapperResult( carry_over_products=None, # type: ignore[arg-type] warning_reports=[], @@ -273,7 +273,7 @@ def _save_and_carry_over_product( node.save(value) return None - return tree_map_with_path(_save_and_carry_over_product, task.produces) # type: ignore[arg-type] + return tree_map_with_path(_save_and_carry_over_product, task.produces) def _write_local_files_to_remote( @@ -285,7 +285,7 @@ def _write_local_files_to_remote( to be resolved. """ - return tree_map(lambda x: x.load() if isinstance(x, RemotePathNode) else x, kwargs) # type: ignore[arg-type, return-value] + return tree_map(lambda x: x.load() if isinstance(x, RemotePathNode) else x, kwargs) def _delete_local_files_on_remote(kwargs: dict[str, PyTree[Any]]) -> None: @@ -302,4 +302,4 @@ def _delete(potential_node: Any) -> None: os.close(potential_node.fd) Path(potential_node.remote_path).unlink(missing_ok=True) - tree_map(_delete, kwargs) # type: ignore[arg-type] + tree_map(_delete, kwargs)