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.1.tar.gz (38.3 kB view details)

Uploaded Source

Built Distributions

fastexcel-0.12.1-cp38-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.8+ Windows x86-64

fastexcel-0.12.1-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.1-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.1-cp38-abi3-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

fastexcel-0.12.1-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.1.tar.gz.

File metadata

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

File hashes

Hashes for fastexcel-0.12.1.tar.gz
Algorithm Hash digest
SHA256 5dc2f1ff3ddff6c933d1f924add7f7f5dc20388c1e70b22afae0f28b3c4f01c9
MD5 c9eefe1d36a37f7216e306fb3ec66d3f
BLAKE2b-256 93bf1876776d424bbcb069520710df4b930adfe998eaa0bb4a88988254ffa8e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.12.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5c1868546ae0912040449e0b26dd4759db3f76a94e0fa5ac3c86fdaf54185e9c
MD5 3cd3884ede189774287b41dd6196801f
BLAKE2b-256 85136662e60e76e878e2251ca78d7f6630103a8e998f9ca1fa7154f94845425f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.12.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a169b72df88406007d8449a4b216effddeaad5e9d73f4de1fbd8cbfd6ce6a01c
MD5 c3f928a5698253096c3fccb34c56daa0
BLAKE2b-256 500dc2e61c3b30d2cbd083cb010346745edc8e6ade3401b1f9d7f083aaff051e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.12.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c09119f14760dfee0c1cb94ef281bee2abb844975fdf0fbf34c5b836ff58d39d
MD5 1e5d999181168b6a96e08ab83a5cb186
BLAKE2b-256 9d56f4967db7c848e191d633366fe4876af74e656e809c9719c1a7489b50349d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.12.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e889290b2d1437e57c4fb500657f0d2908de6aa5b291475b93e3b5d7e0cea938
MD5 5a6566bb6edb1c1c17405f38c05d9492
BLAKE2b-256 b5d71ff26ec00aac2623a87e9397c252f515f45ed28425007c1b895f1810fd5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.12.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7c4c959a49329a53540ed86d4f92cd4af2d774b08c47ad190841e4daf042758a
MD5 240282a5ad3c5bc4389dd4bc10cbf526
BLAKE2b-256 64a8e39f5c609deaf1754b520e75231368b373c4e6a62dfc6e8d283918aa2284

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 Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page