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.1.tar.gz (5.5 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.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fast_ods-0.3.1.tar.gz
  • Upload date:
  • Size: 5.5 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.1.tar.gz
Algorithm Hash digest
SHA256 239a4a64abe591d10f26c12d902ef5c9f668d41b9d35a1d20832e4e43d04e677
MD5 496631bc61c8f6156f96d21e03431ac0
BLAKE2b-256 5d80cb1c3580b220df8130d1ab10629abb2af4724573fc24dcdd22f80cc51ff4

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_ods-0.3.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: fast_ods-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 5.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5168c138977640f50a8b23c8a634f2cc120ded552513b71f3da4cd29c753ce20
MD5 b436b57aa042a2f35a05edda8a248924
BLAKE2b-256 82f48c7189e46b4501cba5801b8dade810d3980842c4940cf063abb7c6ba5f2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_ods-0.3.1-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