jivago.lang.stream module
- class jivago.lang.stream.Stream(*iterables: Iterable[T])[source]
Bases:
Generic
[T
]Stream class to perform functional-style operations in an aesthetically-pleasing manner.
- Parameters:
*iterables (Iterable) – Source iterables for the Stream object. When multiple iterables are given, they will be concatenated.
- allMatch(fun: Callable[[T], bool]) bool [source]
Returns True if all elements of the stream match the criteria.
- anyMatch(fun: Callable[[T], bool]) bool [source]
Returns True if any element of the stream matches the criteria.
- count() int [source]
Returns the number of elements in the Stream. Should never be used with an infinite stream!
- filter(fun: Callable[[T], S]) Stream[T] [source]
Filters elements using the supplied function. When iterating over tuples, the function can take multiple arguments.
- first() Nullable[T] [source]
Returns a nullable containing the first element of the stream. If the stream is empty, returns an empty nullable.
- firstMatch(fun: Callable[[T], bool]) Nullable[T] [source]
Returns a Nullable of the first element matching the criteria. If none exist, returns an empty Nullable.
- flat() Stream[T] [source]
When iterating over lists, flattens the stream by concatenating all lists.
- forEach(fun: Callable[[T], Any]) None [source]
Calls the function with each element. This is a terminal operation.
- map(fun: Callable[[T], S]) Stream[S] [source]
Maps elements using the supplied function. When iterating over tuples, the function can take multiple arguments.
- noneMatch(fun: Callable[[T], bool]) bool [source]
Returns True if no element of the stream matches the criteria.
- static of(*args) Stream [source]
Creates a stream with non iterable arguments.
Examples
>>> Stream.of(1,2,3,4).toList() [1,2,3,4]
- static range(*args) Stream[int] [source]
Creates an incrementing, integer stream. If arguments are supplied, they are passed as-is to the builtin range function. Otherwise, an infinite stream is created, starting at 0.
- reduce(start_value: Any, reducer: Callable[[Any, T], Any])[source]
Reduce using the supplied function.
- Parameters:
start_value – starting value for the accumulator.
reducer (Callable) – e.g. lambda accumulator, element: accumulator + element
- take(number: int) Stream[T] [source]
Limit the stream to a specific number of items.
Examples
>>> Stream.range().take(5).toList() [0,1,2,3,4]
- toDict() dict [source]
When iterating over tuples, collects all elements to a dictionary. The first element becomes the key, the second the value.