Skip to main content

tinytable

Pure Python, lightweight DataFrame-like table for small datasets. Zero C extensions. Friendly API inspired by pandas, but tiny.

Python 3.8+ License: MIT Tests

Installation

pip install tinytable

Supports Python 3.8–3.13.

Quickstart

from tinytable import Table, read_csv, read_excel, read_sqlite

# Read from files
t1 = read_csv('tests/data/people.csv')
t2 = read_excel('tests/data/people.xlsx', sheet_name='Sheet1')
t3 = read_sqlite('tests/data/data.db', 'people')

# Construct manually
t = Table({'id': [1, 2, 3], 'name': ['a', 'b', 'c']}, labels=[('r1',), ('r2',), ('r3',)])

# Column/row access
ids = t['id']           # Column
row1 = t[0]             # Row
subset = t[['id']]      # New Table with only id

# Filter and slice
adults = t[t['id'] > 1] # boolean filter
head = t[:2]            # slice rows

# Edit
t.edit_value('name', 0, 'z')
t2 = t.edit_column('id', [10, 20, 30], inplace=False)

# IO
t.to_csv('out.csv')
t.to_excel('out.xlsx', sheet_name='Sheet1')
t.to_sqlite('out.db', table_name='people', primary_key='id', replace_table=True)

Features

  • Pure Python: No C extensions, easy to install and debug
  • Pandas-like API: Familiar interface for data manipulation
  • Multiple I/O formats: CSV, Excel, SQLite support
  • Type-safe: Full mypy type checking support
  • Well-tested: Comprehensive test suite with 76% coverage (235 tests)
  • Modern packaging: Uses pyproject.toml and supports Python 3.8-3.13

API surface

  • Table: core container with column/row operations, head, tail, joins, group stats, NA ops.
  • Readers: read_csv, read_excel, read_sqlite.
  • Writers: to_csv, to_excel, to_sqlite.

Development

This package has been fully modernized with:

  • ✅ Modern Python packaging (pyproject.toml)
  • ✅ Comprehensive testing (pytest with 235 tests, all passing)
  • ✅ Type safety (mypy strict checking)
  • ✅ Code quality (ruff linting and formatting)
  • ✅ CI/CD (GitHub Actions)
  • ✅ 100% backward compatibility

Contributing

PRs welcome. Run tests and linters:

pip install -e .[dev]
pytest -q
mypy tinytable
ruff check .
ruff format .

Notes

  • This release (v0.18.1) includes comprehensive modernization, bug fixes, improved type safety, and robust empty table handling.
  • See CHANGELOG.md for detailed release notes.

Metadata

Release files for tinytable 0.18.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tinytable 0.18.1
File Size Uploaded
tinytable-0.18.1.tar.gz 28.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tinytable 0.18.1
File Interpreter ABI Platform
tinytable-0.18.1-py3-none-any.whl Python 3 none any Details

Total release size: 46.2 kB

Release files / tinytable-0.18.1.tar.gz

Download URL tinytable-0.18.1.tar.gz
Size 28.5 kB
Tags Source
SHA-256 checksum
How to use checksums
86f0556a025fb3ee02dad30c62c589a764fe83759db943eb9247e272ba72e97f
BLAKE2b-256 checksum
How to use checksums
245d00d35657b9d01d22be24fa2faa509377b92b251ac046bd8562d8457fe628
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / tinytable-0.18.1-py3-none-any.whl

Download URL tinytable-0.18.1-py3-none-any.whl
Size 17.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c394af08007812fa121955db1bea3c087766de4cc9c9e392561a82a435300762
BLAKE2b-256 checksum
How to use checksums
7f50adfcaabcbe36395989e6703382eec8015065f4824a37f2b3828c96cc73fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

0.18.1 This release

2 release files

0.18.0

2 release files

0.16.6

2 release files

0.16.4

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.15.6

2 release files

0.15.5

2 release files

0.15.4

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4

2 release files

0.3

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page