Path 1: 2333 calls (1.0)

(False, None, False) (877) (None, None, False) (448) (None, False, False) (428) (True, None, False) (199) (None, True, False) (163) (False, False, Fal...

False (1872) True (461)

1def pick_bool(*values: Optional[bool]) -> bool:
2    """Pick the first non-none bool or return the last value.
3
4    Args:
5        *values (bool): Any number of boolean or None values.
6
7    Returns:
8        bool: First non-none boolean.
9    """
10    assert values, "1 or more values required"
11    for value in values:
12        if value is not None:
13            return value
14    return bool(value)
            

Path 2: 1 calls (0.0)

(None, None) (1)

False (1)

1def pick_bool(*values: Optional[bool]) -> bool:
2    """Pick the first non-none bool or return the last value.
3
4    Args:
5        *values (bool): Any number of boolean or None values.
6
7    Returns:
8        bool: First non-none boolean.
9    """
10    assert values, "1 or more values required"
11    for value in values:
12        if value is not None:
13            return value
14    return bool(value)