Skip to main content

A fast excel file reader for Python, written in Rust

Project description

fastexcel

A fast excel file reader for Python, written in Rust.

Based on calamine and Apache Arrow.

Docs available here.

Dev setup

Prerequisites

Python>=3.9 and a recent Rust toolchain must be installed on your machine. cargo must be available in your PATH.

First setup

On the very first time you setup the project, you'll need to create a virtualenv and install the necessary tools:

python -m venv .venv
source .venv/bin/activate
(.venv) make dev-setup

This will also set up pre-commit.

Installing the project in dev mode

In order to install the project in dev mode (for local tests for example), use make dev-install. This will compile the wheel (in debug mode) and install it. It will then be available in your venv.

Installing the project in prod mode

This is required for profiling, as dev mode wheels are much slower. make prod-install will compile the project in release mode and install it in your local venv, overriding previous dev installs.

Linting and formatting

The Makefile provides the lint and format extras to ease this.

Running the tests

make test

Running the benchmarks

Speed benchmark

make benchmarks

Memory benchmark

mprof run -T 0.01 python python/tests/benchmarks/memory.py python/tests/benchmarks/fixtures/plain_data.xls

Building the docs

make doc

Creating a release

  1. Create a PR containing a commit that only updates the version in Cargo.toml.
  2. Once it is approved, squash and merge it into main.
  3. Tag the squashed commit, and push it.
  4. The release GitHub action will take care of the rest.

Dev tips

  • Use cargo check to verify that your rust code compiles, no need to go through maturin every time
  • cargo clippy = 💖
  • Careful with arrow constructors, they tend to allocate a lot
  • mprof and time go a long way for perf checks, no need to go fancy right from the start

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

fastexcel-0.14.0.tar.gz (40.9 kB view details)

Uploaded Source

Built Distributions

fastexcel-0.14.0-cp39-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

fastexcel-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

fastexcel-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

fastexcel-0.14.0-cp39-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

fastexcel-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file fastexcel-0.14.0.tar.gz.

File metadata

  • Download URL: fastexcel-0.14.0.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.3

File hashes

Hashes for fastexcel-0.14.0.tar.gz
Algorithm Hash digest
SHA256 c73460c2ce2a07cf1a21a27aae67af3bc6a855fb4aa191c20c6ddae3f0573215
MD5 ec9194e1ab6613f501f9325195f52d5b
BLAKE2b-256 b755376bc213921232d18dc9287c7e4eddd892d29e6a988c3ab022ee96f3a7ae

See more details on using hashes here.

File details

Details for the file fastexcel-0.14.0-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for fastexcel-0.14.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 856d061b254268302ee968d10fd446b83f4a1a932588149539be4fb9d34224d4
MD5 c41e9ed29a61b01c237953138ea82356
BLAKE2b-256 f25ffdb54eab1fae9057fbcaca3b4b283cde717686c9e67e3cff2796a308b1e2

See more details on using hashes here.

File details

Details for the file fastexcel-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastexcel-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c70f463b88d72205eb5069754b07edb9a877bab9991ca71f8db1cc4e1bb8d8a4
MD5 d7a3a75f2b436d278796bfe9a824edf7
BLAKE2b-256 8d86f00dae040b315505008c4e94ae59c5de0b5fdaefdb27c046bb11917628da

See more details on using hashes here.

File details

Details for the file fastexcel-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fastexcel-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fecc5927ef18eba36f360aec0994e2cef106f8d83f197734d460ae198e5c0b87
MD5 f65c2e6967f1166d5dbf45a3605d2481
BLAKE2b-256 38417a0b8c0421cbda0f6185bfeaf55d06cd12073f68abb31cc70f385350f1bc

See more details on using hashes here.

File details

Details for the file fastexcel-0.14.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastexcel-0.14.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0764cb1232e5feb4a7953ee53e60a46f330fa32ef012d813fa491173c7578d3b
MD5 2fd7f90f95da035720410378c3b92dd9
BLAKE2b-256 1297204b0da0b1d94af752e5a7a515d4b68e8d957bc48a04d27a3087ea80e0c2

See more details on using hashes here.

File details

Details for the file fastexcel-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fastexcel-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8cf9fdff9df918cc2dfad66932cd238b6e1e5e1b7b0a079df713a35d2af1586e
MD5 1e98e1faa7db6f95e8d40dea1b5a1b86
BLAKE2b-256 b85ae5612bb03f113e283cdd4e137a24e60d312230e55870a2879cc62ee256cd

See more details on using hashes here.

Supported by

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