def preceding(iterable, item):
    """The item which comes in the series immediately before the specified item.

    Args:
        iterable: The iterable series in which to search for item.
        item: The item to search for in iterable.

    Returns:
        The previous item.

    Raises:
        ValueError: If item is not present in iterable beyond the first item.
    """
    iterator = iter(iterable)
    try:
        current = next(iterator)
        if current == item:
            raise ValueError(f"No item preceding {item!r} in iterable series")
    except StopIteration:
        raise ValueError("Iterable series is empty")

    previous = current
    for current in iterator:
        if current == item:
            return previous
        previous = current
    raise ValueError(f"No item {item!r} in iterable series for which to return the preceding item")