Iterator class for functional programming
Project description
f_it: Functional Iterator
Iterator class for functional programming in python
Free software: MIT license
Documentation: https://f_it.readthedocs.io.
Features
A single wrapper class exposing chain-able methods for lazily transforming iterators
Wraps functions from functools, itertools, and some extras
Optionally has a length, which is calculated for subsequent operations if possible
Note that this package is for convenience/ interface comfort purposes and does not provide the guarantees of a true functional language. There may be a significant performance overhead to using deeply nested FIt instances in tight loops.
Install
pip install f_it
Usage
from f_it import FIt
it = FIt(range(10))
transformed = it.map( # cube elements
lambda x: x**3
).filter( # drop even elements
lambda x: x % 2
).cycle( # repeat the whole iterator 3 times
3
).islice( # take some elements from the middle
5, 10
).chain( # add 0-4 to the end
range(5)
).chunk( # separate into 2-length chunks
2
)
# __add__ and __radd__ are implemented for chaining other Iterators
added = transformed + iter([1, 2, 3])
# nothing has been evaluated yet!
# evaluate operations, reading into a list
# if tqdm is available, show progress bar
as_list = added.progress().to(list)
History
0.4.0 (2020-09-03)
Implement __getitem__
Allow negative indices where possible
0.3.0 (2020-09-03)
Implement __add__ and __radd__
0.1.0 (2019-08-21)
First release on PyPI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.