Method: rich._loop.loop_first_last
Calls: 988, Exceptions: 230, Paths: 3Back
Path 1: 561 calls (0.57)
list (561)
tuple (561) None (561)
GeneratorExit (121)
1def loop_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
2 """Iterate and generate a tuple with a flag for first and last value."""
3 iter_values = iter(values)
4 try:
5 previous_value = next(iter_values)
6 except StopIteration:
7 return
8 first = True
9 for value in iter_values:
10 yield first, False, previous_value
11 first = False
12 previous_value = value
13 yield first, True, previous_value
Path 2: 391 calls (0.4)
list (390) ['apples', 'oranges', 'pears', 'lemons'] (1)
tuple (1364) None (391) (True, False, 'apples') (1) (False, False, 'oranges') (1) (False, False, 'pears') (1) (False, True, 'lemons') (1)
GeneratorExit (73)
1def loop_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
2 """Iterate and generate a tuple with a flag for first and last value."""
3 iter_values = iter(values)
4 try:
5 previous_value = next(iter_values)
6 except StopIteration:
7 return
8 first = True
9 for value in iter_values:
10 yield first, False, previous_value
11 first = False
12 previous_value = value
13 yield first, True, previous_value
Path 3: 36 calls (0.04)
[] (36)
None (36)
StopIteration (36)
1def loop_first_last(values: Iterable[T]) -> Iterable[Tuple[bool, bool, T]]:
2 """Iterate and generate a tuple with a flag for first and last value."""
3 iter_values = iter(values)
4 try:
5 previous_value = next(iter_values)
6 except StopIteration:
7 return
8 first = True
9 for value in iter_values:
10 yield first, False, previous_value
11 first = False
12 previous_value = value
13 yield first, True, previous_value