Skip to main content

csvscout

Fast CSV profiling for Python, written in Rust.

Why I'm building this

The purpose of this project is to learn programming with Rust. I come from a Data Science background using SQL and Python for most projects. Working through this build will improve my overall programming skills and improve my ability to solve complex problems. As a data analyst who has worked on countless ETL pipeline builds, I wanted to create a library that would be (somewhat) useful for the work analysts and engineers do.

What it does (so far)

import csvscout
csvscout.count_rows("data.csv")      # -> 1000000

Progress

  • Milestone 0: project setup, count_rows
  • Milestone 1: column_names
  • Milestone 2: null_counts
  • Milestone 3: type inference
  • Milestone 4: full profile() with a Python class
  • Milestone 5: speed (release the GIL, parallel files)
  • Milestone 6: distinct counts (HyperLogLog)
  • Milestone 7: publish to PyPI

See ROADMAP.md for details.

Building locally

python -m venv .venv && .venv\Scripts\activate
pip install maturin pytest
maturin develop
pytest

Benchmarks

Metadata

Release files for csvscout 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for csvscout 0.0.1
File Size Uploaded
csvscout-0.0.1.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for csvscout 0.0.1
File Interpreter ABI Platform
csvscout-0.0.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details

Total release size: 134.9 kB

Release files / csvscout-0.0.1.tar.gz

Download URL csvscout-0.0.1.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
79c6aa7d66a4345c5058122ae40c081b1a88e7fa667232d0b1c925950a5d4fe2
BLAKE2b-256 checksum
How to use checksums
2a7789b0e800baa5e78df36201cf064e8fcb126332f35aaddf4dbe6ed8ccb28a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / csvscout-0.0.1-cp39-abi3-win_amd64.whl

Download URL csvscout-0.0.1-cp39-abi3-win_amd64.whl
Size 123.8 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
43538927e84495e88f4ccbb1ea03a8ae419b7fe06b707953e11da9b9291913ee
BLAKE2b-256 checksum
How to use checksums
e3e9b2d19fa4cfba7da8d90fc9e897fdfe844cc0b72cea5597240d2a1e1ce5c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page