1from typing import Callable
2
3import rx
4from rx.core import Observable
5
6
7def _concat(*sources: Observable) -> Callable[[Observable], Observable]:
8    def concat(source: Observable) -> Observable:
9        """Concatenates all the observable sequences.
10
11        Examples:
12            >>> op = concat(xs, ys, zs)
13
14        Returns:
15            An operator function that takes one or more observable sources and
16            returns an observable sequence that contains the elements of
17            each given sequence, in sequential order.
18        """
19        return rx.concat(source, *sources)
20    return concat
21