Coverage for src / remedapy / multiply.py: 86%
7 statements
« prev ^ index » next coverage.py v7.13.2, created at 2026-02-02 10:52 +0100
« prev ^ index » next coverage.py v7.13.2, created at 2026-02-02 10:52 +0100
1from collections.abc import Callable
2from typing import TypeVar, overload
4TNum = TypeVar('TNum', int, float)
7@overload
8def multiply(a: int, /) -> Callable[[TNum], TNum]: ...
11@overload
12def multiply(a: float, /) -> Callable[[int | float], float]: ...
15@overload
16def multiply(a: int, b: TNum, /) -> TNum: ...
19@overload
20def multiply(a: TNum, b: int, /) -> TNum: ...
21# rename to value, multiplyend
22def multiply(
23 a: int | float,
24 b: int | float | None = None,
25 /,
26) -> int | float | Callable[[int | float], int | float] | Callable[[TNum], TNum]:
27 if b is None:
28 return lambda b: a * b
29 return a * b