Skip to content

Commit 4bcfb0b

Browse files
committed
Fix ty warnings in docs and wrappers
1 parent a95fe54 commit 4bcfb0b

3 files changed

Lines changed: 22 additions & 13 deletions

File tree

docs/source/conf.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -123,28 +123,32 @@ def linkcode_resolve(domain: str, info: dict[str, str]) -> str | None: # noqa:
123123
return None
124124

125125
try:
126-
fn = inspect.getsourcefile(inspect.unwrap(obj)) # ty: ignore[invalid-argument-type]
126+
fn = inspect.getsourcefile(inspect.unwrap(obj))
127127
except TypeError:
128-
try: # property
129-
fn = inspect.getsourcefile(inspect.unwrap(obj.fget)) # ty: ignore[possibly-unbound-attribute,invalid-argument-type]
130-
except (AttributeError, TypeError):
131-
fn = None
128+
fget = getattr(obj, "fget", None)
129+
fn = None if fget is None else inspect.getsourcefile(inspect.unwrap(fget))
132130
if not fn:
133131
return None
134132

135133
try:
136134
source, lineno = inspect.getsourcelines(obj)
137135
except TypeError:
138-
try: # property
139-
source, lineno = inspect.getsourcelines(obj.fget) # ty: ignore[possibly-unbound-attribute]
140-
except (AttributeError, TypeError):
136+
fget = getattr(obj, "fget", None)
137+
if fget is None:
141138
lineno = None
139+
else:
140+
try:
141+
source, lineno = inspect.getsourcelines(fget)
142+
except TypeError:
143+
lineno = None
142144
except OSError:
143145
lineno = None
144146

145147
linespec = f"#L{lineno}-L{lineno + len(source) - 1}" if lineno else ""
146148

147-
fn = os.path.relpath(fn, start=Path(pytask_parallel.__file__).parent)
149+
package_file = pytask_parallel.__file__
150+
package_root = Path(package_file).parent if package_file else Path.cwd()
151+
fn = os.path.relpath(fn, start=package_root)
148152

149153
if "+" in pytask_parallel.__version__:
150154
return f"https://github.com/pytask-dev/pytask-parallel/blob/main/src/pytask_parallel/{fn}{linespec}"

src/pytask_parallel/execute.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import time
77
from typing import TYPE_CHECKING
88
from typing import Any
9+
from typing import cast
910

1011
import cloudpickle
1112
from _pytask.node_protocols import PPathNode
@@ -209,7 +210,7 @@ def pytask_execute_task(session: Session, task: PTask) -> Future[WrapperResult]:
209210
task_module = get_module(task.function, getattr(task, "path", None))
210211
cloudpickle.register_pickle_by_value(task_module)
211212

212-
return wrapper_func.submit( # ty: ignore[possibly-unbound-attribute,invalid-return-type]
213+
return cast("Any", wrapper_func).submit(
213214
task=task,
214215
console_options=console.options,
215216
kwargs=kwargs,

src/pytask_parallel/wrappers.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
from pathlib import Path
1414
from typing import TYPE_CHECKING
1515
from typing import Any
16+
from typing import Callable
17+
from typing import cast
1618

1719
from attrs import define
1820
from pytask import PNode
@@ -168,9 +170,11 @@ def wrap_task_in_process( # noqa: PLR0913
168170

169171

170172
def rewrap_task_with_coiled_function(task: PTask) -> CoiledFunction:
171-
return functools.wraps(wrap_task_in_process)(
172-
CoiledFunction(wrap_task_in_process, **task.attributes["coiled_kwargs"])
173+
wrapped = CoiledFunction(wrap_task_in_process, **task.attributes["coiled_kwargs"])
174+
decorated = functools.wraps(wrap_task_in_process)(
175+
cast("Callable[..., Any]", wrapped)
173176
)
177+
return cast("CoiledFunction", decorated)
174178

175179

176180
def _raise_exception_on_breakpoint(*args: Any, **kwargs: Any) -> None: # noqa: ARG001
@@ -203,7 +207,7 @@ def _render_traceback_to_string(
203207
) -> tuple[type[BaseException], BaseException, str]:
204208
"""Process the exception and convert the traceback to a string."""
205209
traceback = Traceback(exc_info, show_locals=show_locals)
206-
segments = console.render(traceback, options=console_options)
210+
segments = console.render(cast("Any", traceback), options=console_options)
207211
text = "".join(segment.text for segment in segments)
208212
return (*exc_info[:2], text) # ty: ignore[invalid-return-type]
209213

0 commit comments

Comments
 (0)