def stream_results_optional(
f: Callable[..., Optional[PagedResult[TResult, TToken]]], *args, **kwargs
) -> Optional[Iterable[TResult]]:
"""Like stream_results(), but for functions ``f`` that return an Optional.
"""
if "page_token" in kwargs:
raise TypeError('stream_results has no argument "page_token".')
res = f(*args, page_token=page_token, **kwargs)
if res is None:
return None
else:
return stream_results(f, *args, **kwargs)