Coverage for src / remedapy / tap.py: 100%
8 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 Any, TypeVar, cast, overload
4T = TypeVar('T')
7@overload
8def tap(fn: Callable[[T], Any], /) -> Callable[[T], T]: ...
11@overload
12def tap(value: T, fn: Callable[[T], Any], /) -> T: ...
15def tap(value: T | Callable[[T], Any], fn: Callable[[T], Any] | None = None, /) -> T | Callable[[T], T]:
16 if fn is None:
17 return lambda x: tap(x, cast(Callable[[T], Any], value))
18 fn(cast(T, value))
19 return value