Coverage for src / remedapy / subtract.py: 100%

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 subtract(a: int, /) -> Callable[[TNum], TNum]: ... 

9 

10 

11@overload 

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

13 

14 

15@overload 

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

17 

18 

19@overload 

20def subtract(a: TNum, b: int, /) -> TNum: ... 

21# rename to value, subtractend 

22def subtract( 

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 x: x - a 

29 return a - b