pyfunctional
Package for creating data pipelines with chain functional programming
What it is and what it does
PyFunctional is a Python library that brings functional programming patterns to data transformation tasks. It lets you build data pipelines by chaining operations like map, filter, and reduce on sequences, with lazy evaluation so transformations only run when you call an action method like reduce or to_list.
The library handles I/O for common formats: it can read and write CSV, JSON, JSONL, SQLite, and compressed files (gzip, bz2, lzma/xz). It also supports grouping, joining, and aggregating data, and offers optional parallelization for map-like operations. Runtime dependencies are dill and tabulate.
Use it for:
- Process CSV or JSON files with filtering and aggregation (e.g., sum expenses by category, find outliers).
- Join data from multiple sources (e.g., match user records with transaction logs) and extract insights.
- Build word-count or frequency-analysis pipelines from text or log files using map and reduce.
- Parallelize embarrassingly parallel transformations across large datasets without manual multiprocessing code.
- Read from and write to SQLite databases with chainable transformations in between.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyFunctional provides chained functional operators to build data pipelines, with support for reading and writing multiple file formats (CSV, JSON, SQLite, compressed files) and optional parallelization of operations.
Yes, if you prefer functional composition over imperative loops and want a lightweight alternative for file-based data pipelines. The low install friction, permissive MIT license, and stable API make it a reasonable choice for small to medium data tasks. However, the aging maintenance status (last release 884 days ago) means you should verify that the feature set meets your needs before adopting it for new projects.
Install
pyfunctional on PyPI
pip
pip install pyfunctionaluv
uv add pyfunctionalpoetry
poetry add pyfunctionalInstalling pyfunctional
Before you install
Low friction installation with only two runtime dependencies (dill and tabulate). Last release was 884 days ago; the repository remains active with recent commits and 2489 stars, though maintenance appears aging rather than actively developed.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects that can include attribution.
Quickstart
pip install pyfunctional
from functional import seq
result = seq(1, 2, 3, 4).map(lambda x: x * 2).filter(lambda x: x > 4).reduce(lambda x, y: x + y)
Requires Python 3.8 or later (supports 3.8, 3.9, 3.10, 3.11); CPython and PyPy implementations supported.
Verify before relying
- Whether parallelization is production-ready and what performance gains are typical for embarrassingly parallel workloads.
- Current test coverage claim of 100% and whether it remains accurate in version 1.5.0.
- Compatibility and performance with large datasets or streaming scenarios beyond the documented examples.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8.0,<4.0.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — dill, tabulate |
| Maintenance | aging — 884 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 601,443/month — #5,818 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyfunctional-1.5.0-py3-none-any.whl
Keywords: functional, pipeline, collection, chain, linq, parallel
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
ExpressionExpression provides functional programming…
permissive · top 5,000 on PyPI
firstReturns the first true value from an iterable,…
permissive · top 15,000 on PyPI
reactivexRxPY is a library for building asynchronous and…
permissive · top 5,000 on PyPI
returnsProvides functional programming…
permissive · top 5,000 on PyPI
funcyFuncy provides a collection of functional…
permissive · top 5,000 on PyPI
lmzProvides convenience functions for mapping,…
copyleft · top 15,000 on PyPI
pipePipe enables shell-like infix syntax for…
permissive · top 15,000 on PyPI
toolzToolz provides utility functions for…
permissive · top 1,000 on PyPI
anysqliteAnysqlite wraps SQLite with an async/await…
unclear · top 5,000 on PyPI
paraDistributes CPU-intensive processing of…
permissive · top 15,000 on PyPI