single |
aiostream
=========
|docs-badge| |cov-badge| |ci-badge| |version-badge| |pyversion-badge|
Generator-based operators for asynchronous iteration
Synopsis
--------
aiostream_ provides a collection of stream operators that can be combined
to create
asynchronous pipelines of operations.
It can be seen as an asynchronous version of itertools_, although some
aspects are slightly different.
Essentially, all the provided operators return a unified interface called a
stream.
A stream is an enhanced asynchronous iterable providing the following
features:
- **Operator pipe-lining** - using pipe symbol ``|``
- **Repeatability** - every iteration creates a different iterator
- **Safe iteration context** - using async with and the stream method
- **Simplified execution** - get the last element from a stream using await
- **Slicing and indexing** - using square brackets ``[]``
- **Concatenation** - using addition symbol ``+``
Stream operators
----------------
The `stream operators`_ are separated in 7 categories:
+--------------------+---------------------------------------------------------------------------------------+
| **creation** | iterate_, preserve_, just_, call_, empty_, throw_,
never_, repeat_, count_, range_ |
+--------------------+---------------------------------------------------------------------------------------+
| **transformation** | map_, enumerate_, starmap_, cycle_, chunks_
|
+--------------------+---------------------------------------------------------------------------------------+
| **selection** | take_, takelast_, skip_, skiplast_, getitem_,
filter_, until_, takewhile_, dropwhile_ |
+--------------------+---------------------------------------------------------------------------------------+
| **combination** | map_, zip_, merge_, chain_, ziplatest_
|
+--------------------+---------------------------------------------------------------------------------------+
| **aggregation** | accumulate_, reduce_, list_
|
+--------------------+---------------------------------------------------------------------------------------+
| **advanced** | concat_, flatten_, switch_, concatmap_, flatmap_,
switchmap_ |
+--------------------+---------------------------------------------------------------------------------------+
| **timing** | spaceout_, timeout_, delay_
|
+--------------------+---------------------------------------------------------------------------------------+
| **miscellaneous** | action_, print_
|
+--------------------+---------------------------------------------------------------------------------------+
Demonstration
-------------
The following example demonstrates most of the streams capabilities:
:alt:
:alt:
:alt:
:alt:
:alt:
|