dataflows-tabulator
Consistent interface for stream reading and writing tabular data (csv/xls/json/etc)
What it is and what it does
dataflows-tabulator is a library for reading and writing tabular data across multiple formats and sources. It abstracts away the differences between CSV, XLS, ODS, JSON, Google Sheets, SQL, and other formats, letting you work with them through a single Stream interface. The library keeps only the current row in memory, making it suitable for processing large datasets without consuming significant RAM. It supports local files, HTTP, FTP, and S3 sources, and can decompress ZIP and GZIP files automatically.
The package is a maintained fork of the archived tabulator-py project. It provides both a Python API via the Stream class and a command-line tool for quick data inspection. You can iterate over rows as lists or dictionaries, reset the stream pointer, and read entire files into memory when needed. Encoding detection is automatic, though you can specify it explicitly, and the library raises an error if it detects HTML content to prevent common mistakes.
Use it for:
- Load CSV or Excel files from a URL and iterate over rows without downloading the entire file into memory.
- Convert between tabular formats (e.g. CSV to JSON) by reading from one source and writing to another.
- Process large datasets from S3 or remote HTTP sources row-by-row in a data pipeline.
- Read multi-format data sources in a data workflow where format varies but the interface remains consistent.
- Extract and validate tabular data from compressed archives (ZIP, GZIP) without manual decompression.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes tabular data in multiple formats (CSV, XLS, JSON, ODS, and others) from local files, HTTP, FTP, and S3 sources with low memory overhead.
Yes, if you need a lightweight, format-agnostic tabular data reader and can tolerate dormant maintenance. The low install friction, permissive license, and broad format support make it practical for data pipelines and ETL tasks. However, be aware that the last release was 873 days ago and no active development is occurring—security patches and bug fixes are unlikely, so audit the dependencies and test thoroughly in your environment before relying on it in production.
Install
dataflows-tabulator on PyPI
pip
pip install dataflows-tabulatoruv
uv add dataflows-tabulatorpoetry
poetry add dataflows-tabulatorInstalling dataflows-tabulator
Before you install
Low install friction with a pure-Python wheel and 12 runtime dependencies covering common data formats and transport. Maintenance is dormant—last release was 873 days ago—but the package is a maintained fork of an archived upstream project, so expect no active bug fixes or feature development.
License in practice
MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license and copyright notice in distributions.
Quickstart
pip install dataflows-tabulator
from tabulator import Stream
with Stream('data.csv', headers=1) as stream:
for row in stream:
print(row)
Verify before relying
- Whether the fork is actively maintained or if dormancy means security issues will go unpatched.
- Whether all 12 runtime dependencies are required or if some are optional for specific formats.
- Current compatibility with modern Python versions beyond those listed in classifiers (3.7 is the newest declared).
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 12 — six, click, requests, chardet, boto3, unicodecsv, ijson, jsonlines, sqlalchemy, linear-tsv, xlrd, openpyxl |
| Maintenance | dormant — 873 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 417,773/month — #6,808 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dataflows_tabulator-1.54.3-py2.py3-none-any.whl
Keywords: frictionless, data
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
tabulatorReads and writes tabular data in multiple…
permissive · top 15,000 on PyPI
csvwReads, writes, and validates tabular data…
permissive · top 5,000 on PyPI
tablibTablib converts tabular data between multiple…
permissive · top 5,000 on PyPI
linear-tsvParses and writes tabular data in Linear TSV…
permissive · top 15,000 on PyPI
frictionlessFrictionless provides a unified Python…
permissive · top 5,000 on PyPI
table-loggerTableLogger formats and outputs tabular data to…
copyleft · top 15,000 on PyPI
pytablewriterConverts tabular data into formatted tables for…
permissive · top 5,000 on PyPI
DrissionRecordBuffers and writes data to files (xlsx, csv,…
permissive · top 15,000 on PyPI
pyexcel-ioProvides a unified API to read and write data…
permissive · top 5,000 on PyPI
datapackageProvides classes and utilities to create, load,…
permissive · top 15,000 on PyPI