Coverage for src / remedapy / find_index.py: 90%

10 statements  

« prev     ^ index     » next       coverage.py v7.13.2, created at 2026-02-02 10:52 +0100

1from collections.abc import Callable, Iterable 

2from typing import TypeVar, overload 

3 

4from .decorator import make_data_last 

5 

6T = TypeVar('T') 

7 

8 

9@overload 

10def find_index(data: Iterable[T], predicate: Callable[[T], bool], /) -> int: ... 

11 

12 

13@overload 

14def find_index(predicate: Callable[[T], bool], /) -> Callable[[Iterable[T]], int]: ... 

15 

16 

17@make_data_last 

18def find_index(data: Iterable[T], predicate: Callable[[T], bool], /): 

19 for i, item in enumerate(data): 

20 if predicate(item): 

21 return i 

22 return -1