Skip to main content

No project description provided

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

fastexcel-0.10.1-cp38-abi3-win_amd64.whl (887.1 kB view details)

Uploaded CPython 3.8+Windows x86-64

fastexcel-0.10.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

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

fastexcel-0.10.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

fastexcel-0.10.1-cp38-abi3-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

fastexcel-0.10.1-cp38-abi3-macosx_10_12_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for fastexcel-0.10.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dd816a98b049a2be35bf3507bb8861d8618530cb041481743d6789d87593663d
MD5 6af8bb71ddbcf20eb5ab2c5fecafb2f2
BLAKE2b-256 f5cc8e259d31c08f3754acccfe5980fb4fcf661f1829da470d4b828f26e9fdca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.10.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2cbde505310a3a6c0277d605f00df7ed0f1fe388608f373964a48542010931bd
MD5 2cbb81921660e69ab44b5a862923f4db
BLAKE2b-256 308f0246bf0cfd7a8f73b32a2f2a482b823183e60dac7c553d76502807e235bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.10.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fc4ecda68b0b9c67f2b713e6ebaab8d729a925e344d2781758573e9c72d326c9
MD5 f17534f472d23cbc71b82901e602ae6e
BLAKE2b-256 1dc7897f9c61bd18245cb4d30ce2bda22cb3b118349f35abd5da2280b2142cf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.10.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7aa203be8943bd77187a5223ea3e2248969402b73cda78c9cebcf872f7ac34a3
MD5 068a412d2893b3cb94df6a4bbfe6ab6e
BLAKE2b-256 674f650e036ca70cc6a6f76d92c8b63679998bc591d99df9881cb1eea74e94f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastexcel-0.10.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e5520ff33abdf3fb8ff035bcb0cd8555b3c98d1b1cbbaf555d7242cf95c00344
MD5 a8a17737fcb64229e2b3c7dc8b4e1403
BLAKE2b-256 873e3a06532b65c4124af4bd1c0daf4251473ffad470899ad088745b29db8c8d

See more details on using hashes here.

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