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

1from collections.abc import Callable 

2from typing import TypeVar, overload 

3 

4TNum = TypeVar('TNum', int, float) 

5 

6 

7@overload 

8def multiply(a: int, /) -> Callable[[TNum], TNum]: ... 

9 

10 

11@overload 

12def multiply(a: float, /) -> Callable[[int | float], float]: ... 

13 

14 

15@overload 

16def multiply(a: int, b: TNum, /) -> TNum: ... 

17 

18 

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