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.8 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.12.0.tar.gz (37.8 kB view details)

Uploaded Source

Built Distributions

fastexcel-0.12.0-cp38-abi3-win_amd64.whl (995.0 kB view details)

Uploaded CPython 3.8+ Windows x86-64

fastexcel-0.12.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

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

fastexcel-0.12.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

fastexcel-0.12.0-cp38-abi3-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

fastexcel-0.12.0-cp38-abi3-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8+ macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for fastexcel-0.12.0.tar.gz
Algorithm Hash digest
SHA256 1624e2c6385fe08d5ac21392c3a5bd91156fbeebaf6986e6e7f684adc0e0ecbe
MD5 604b42e458b082fe081ac16f86f1569b
BLAKE2b-256 0a8afbc318b653dddea167185c0946381d88b09c2bdb7aeb473b651c38542efd

See more details on using hashes here.

File details

Details for the file fastexcel-0.12.0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for fastexcel-0.12.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e5326fae6c28e2239dfdc19bc2cbb121b509e6f0aefa4e6e43b0cf84bd33dea6
MD5 e8ed2e09fd33e5361d42f86767ee6290
BLAKE2b-256 f6681243dda77c7af328047335c01d1b0e3cb37423e324d4158362ee054d6cc9

See more details on using hashes here.

File details

Details for the file fastexcel-0.12.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastexcel-0.12.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de72203c67702010931bc4730ddb35904841b0ad0d8b6654c69b62c3d7b19eca
MD5 03fbe318210ea4300a799d20ac664d3a
BLAKE2b-256 5322d3efd9b26706b1d38cd8356cbc5a5fd46c0e0a558793451b45b6a7978f4d

See more details on using hashes here.

File details

Details for the file fastexcel-0.12.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fastexcel-0.12.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 993b905e61b98eb45a33409ac78b8a14b28bd3a3bcf9a4f36c1dae3e65c3dafb
MD5 f2f51774432124f1878e1eaf7c58d58f
BLAKE2b-256 d7b659a6405c653aad8ed6e9b3b65c74f76514e2426efe26341c42293e4ef009

See more details on using hashes here.

File details

Details for the file fastexcel-0.12.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastexcel-0.12.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2aade78706bc3f7a5861083267a038a49e809f3ee1abe6cceda7b8420092e61e
MD5 5f639ea92d294d5afdee9bbcfd249c86
BLAKE2b-256 b50beba1c5f38f5311bf171296e13b5715ddb12b0b0a3a58deee981768bd2d80

See more details on using hashes here.

File details

Details for the file fastexcel-0.12.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fastexcel-0.12.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d40b2c8ccb122e15cf89c2b972a679a937eca3e90b3e69c6db24f3666b11cff9
MD5 d0133a61e9068a0cb96b06ff00ac8483
BLAKE2b-256 467a6eec06c88be04a8b3e5b3e3bf90a7d574459a5aab876f3cfe6378436894c

See more details on using hashes here.

Supported by

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