Skip to main content

Fast, streaming parser for OpenDocument Spreadsheet (.ods) files

Project description

fast-ods

A fast, streaming parser for OpenDocument Spreadsheet (.ods) files.

Designed for efficiency, performance and low memory usage, making it an ideal choice for large files and ETL workflows.

Requires Python version 3.10 and above.

This project is still in alpha (pre-1.0). API and behavior might change drastically until the full release.

Features

  • ⚡ Streaming parsing (suitable for handling large files with constant memory usage)
  • 📈 Supports repeated rows and columns (.ods specific)
  • 🧩 Simple, minimal API
  • 🌐 Zero external dependencies
  • 🔧 Flexible configuration settings

Changelog

v0.3.0 release:

  • New parsing algorithm, with an approximate 3x increase in performance on tests*
  • Fixed the skip/take N rows logic, aligning it to user expectations and to better reflect how rows are displayed in spreadsheet software

*Tested with an .ods file with 170k lines, the time to parse and write to a .csv file improved from 3 minutes to 47 seconds

Scope

This library focuses on fast data extraction, not full ODS spec compliance. It itentionally does not handle features such as:

  • Styling
  • Formulas
  • Metadata

Installation

Install with the Python default package manager:

pip install fast-ods

Usage

from fast_ods import ODSParser

parser = ODSParser()

for row in parser.parse("file.ods"):
    print(row)

Options

from fast_ods import ODSParser, ODSParserOptions

options = ODSParserOptions(
    table=0,                # Choose a table by index or name
    convert_values=False,   # Convert the cell values (float, date, etc.)
    skip_n_rows=None,       # Skip first N rows
    take_n_rows=None,       # Limit number of rows
    verify_zip=True         # Emits a warning if the .zip archive is corrupted 
)

parser = ODSParser(options)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fast_ods-0.3.2.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fast_ods-0.3.2-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file fast_ods-0.3.2.tar.gz.

File metadata

  • Download URL: fast_ods-0.3.2.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fast_ods-0.3.2.tar.gz
Algorithm Hash digest
SHA256 ea4ca3782fa3c6969b9e0c94d9c8a482e5e13c7b431fb3fdfcb4c7f3a40faa61
MD5 724565bdcdf9b52c3015d2bb335f8f78
BLAKE2b-256 dd66d1418893c24d2aad06b1206af85fa8eac643a96647aab01048da5f83a2da

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_ods-0.3.2.tar.gz:

Publisher: publish.yml on atomiclake/fast-ods

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fast_ods-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: fast_ods-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fast_ods-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6c4c67dabbbd49686c250bda3185105bdccf8c1404be5bb1b9970d387ba72d30
MD5 fad999fe0967526abc80a5a559f60243
BLAKE2b-256 b1dd1b646c285ef1bc28e306613473a0091005e06b245ec82c48de28174ae325

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_ods-0.3.2-py3-none-any.whl:

Publisher: publish.yml on atomiclake/fast-ods

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page