Skip to main content

Streaming async CSV — no fake async, no GIL stalls.

Project description

rapcsv

Streaming async CSV — no fake async, no GIL stalls.

PyPI version Downloads Python 3.8+ License: MIT

Overview

rapcsv provides true async CSV reading and writing for Python, backed by Rust and Tokio. Unlike libraries that wrap blocking I/O in async syntax, rapcsv guarantees that all CSV operations execute outside the Python GIL, ensuring event loops never stall under load, even when processing large files.

Roadmap Goal: Achieve drop-in replacement compatibility with aiocsv, enabling seamless migration with true async performance. See ROADMAP.md for details.

Why rap*?

Packages prefixed with rap stand for Real Async Python. Unlike many libraries that merely wrap blocking I/O in async syntax, rap* packages guarantee that all I/O work is executed outside the Python GIL using native runtimes (primarily Rust). This means event loops are never stalled by hidden thread pools, blocking syscalls, or cooperative yielding tricks. If a rap* API is async, it is structurally non-blocking by design, not by convention. The rap prefix is a contract: measurable concurrency, real parallelism, and verifiable async behavior under load.

See the rap-manifesto for philosophy and guarantees.

Features

  • True async CSV reading and writing
  • Streaming support for large files
  • Native Rust-backed execution (Tokio)
  • Zero Python thread pools
  • Event-loop-safe concurrency under load
  • GIL-independent I/O operations
  • Verified by Fake Async Detector

Requirements

  • Python 3.8+
  • Rust 1.70+ (for building from source)

Installation

pip install rapcsv

Building from Source

git clone https://github.com/eddiethedean/rapcsv.git
cd rapcsv
pip install maturin
maturin develop

Usage

import asyncio
from rapcsv import Reader, Writer

async def main():
    # Write CSV file (one row per Writer instance for MVP)
    writer = Writer("output.csv")
    await writer.write_row(["name", "age", "city"])
    
    # Read CSV file (reads first row)
    reader = Reader("output.csv")
    row = await reader.read_row()
    print(row)  # Output: ['name', 'age', 'city']

asyncio.run(main())

Writing Multiple Rows

import asyncio
from rapcsv import Writer

async def main():
    # Write multiple rows with a single Writer instance (file handle reused)
    writer = Writer("output.csv")
    rows = [
        ["name", "age", "city"],
        ["Alice", "30", "New York"],
        ["Bob", "25", "London"],
    ]
    
    for row in rows:
        await writer.write_row(row)
    
    # Verify file contents
    with open("output.csv") as f:
        print(f.read())

asyncio.run(main())

Note: The Writer reuses the file handle across multiple write_row() calls for efficient writing. The Reader maintains position state across read_row() calls.

API Reference

Reader(path: str)

Create a new async CSV reader.

Parameters:

  • path (str): Path to the CSV file to read

Example:

reader = Reader("data.csv")

Reader.read_row() -> List[str]

Read the next row from the CSV file.

Returns:

  • List[str]: A list of string values for the row, or an empty list if EOF

Raises:

  • IOError: If the file cannot be read or parsed

Note: The Reader maintains position state across read_row() calls, reading sequentially through the file.

Writer(path: str)

Create a new async CSV writer.

Parameters:

  • path (str): Path to the CSV file to write

Example:

writer = Writer("output.csv")

Writer.write_row(row: List[str]) -> None

Write a row to the CSV file.

Parameters:

  • row (List[str]): A list of string values to write as a CSV row

Raises:

  • IOError: If the file cannot be written

Note: The Writer reuses the file handle across multiple write_row() calls for efficient writing. Proper RFC 4180 compliant CSV escaping and quoting is applied automatically.

Benchmarks

This package passes the Fake Async Detector. Benchmarks are available in the rap-bench repository.

Run the detector yourself:

pip install rap-bench
rap-bench detect rapcsv

Roadmap

See ROADMAP.md for detailed development plans. Key goals include:

  • Drop-in replacement for aiocsv (Phase 1)
  • Full streaming support for large files
  • Comprehensive CSV dialect support
  • Zero-copy optimizations

Related Projects

Limitations (v0.0.2)

Current limitations:

  • Reader still reads entire file into memory on each call (streaming improvements planned)
  • No advanced CSV dialect support (delimiters, quote characters, line terminators)
  • No header detection or manipulation
  • Not yet a drop-in replacement for aiocsv (goal for Phase 1)
  • Not designed for synchronous use cases

Recent improvements (v0.0.2):

  • ✅ Security fixes: Upgraded dependencies (pyo3 0.27, pyo3-async-runtimes 0.27), fixed CSV injection vulnerability
  • ✅ Position tracking: Reader now maintains position state across read_row() calls
  • ✅ File handle reuse: Writer reuses file handle across multiple write_row() calls
  • ✅ CSV escaping: Implemented RFC 4180 compliant CSV escaping and quoting
  • ✅ Input validation: Added path validation (non-empty, no null bytes)
  • ✅ Improved error handling: Enhanced error messages with file path context
  • ✅ Type stubs: Added .pyi type stubs for better IDE support and type checking

Roadmap: See ROADMAP.md for planned improvements. Our goal is to achieve drop-in replacement compatibility with aiocsv while providing true async performance with GIL-independent I/O.

Contributing

Contributions are welcome! Please see our contributing guidelines (coming soon).

License

MIT

Changelog

See CHANGELOG.md (coming soon) for version history.

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

rapcsv-0.0.2.tar.gz (24.3 kB view details)

Uploaded Source

Built Distributions

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

rapcsv-0.0.2-cp313-cp313-win_arm64.whl (342.7 kB view details)

Uploaded CPython 3.13Windows ARM64

rapcsv-0.0.2-cp313-cp313-win_amd64.whl (361.3 kB view details)

Uploaded CPython 3.13Windows x86-64

rapcsv-0.0.2-cp313-cp313-manylinux_2_28_x86_64.whl (473.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

rapcsv-0.0.2-cp313-cp313-manylinux_2_28_aarch64.whl (448.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

rapcsv-0.0.2-cp313-cp313-macosx_11_0_arm64.whl (420.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rapcsv-0.0.2-cp313-cp313-macosx_10_12_x86_64.whl (432.9 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rapcsv-0.0.2-cp312-cp312-win_arm64.whl (344.4 kB view details)

Uploaded CPython 3.12Windows ARM64

rapcsv-0.0.2-cp312-cp312-win_amd64.whl (362.3 kB view details)

Uploaded CPython 3.12Windows x86-64

rapcsv-0.0.2-cp312-cp312-manylinux_2_28_x86_64.whl (471.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

rapcsv-0.0.2-cp312-cp312-manylinux_2_28_aarch64.whl (449.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

rapcsv-0.0.2-cp312-cp312-macosx_11_0_arm64.whl (423.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rapcsv-0.0.2-cp312-cp312-macosx_10_12_x86_64.whl (433.7 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rapcsv-0.0.2-cp311-cp311-win_arm64.whl (346.5 kB view details)

Uploaded CPython 3.11Windows ARM64

rapcsv-0.0.2-cp311-cp311-win_amd64.whl (364.4 kB view details)

Uploaded CPython 3.11Windows x86-64

rapcsv-0.0.2-cp311-cp311-manylinux_2_28_x86_64.whl (474.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

rapcsv-0.0.2-cp311-cp311-manylinux_2_28_aarch64.whl (453.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

rapcsv-0.0.2-cp311-cp311-macosx_11_0_arm64.whl (426.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rapcsv-0.0.2-cp311-cp311-macosx_10_12_x86_64.whl (434.2 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rapcsv-0.0.2-cp310-cp310-win_amd64.whl (364.4 kB view details)

Uploaded CPython 3.10Windows x86-64

rapcsv-0.0.2-cp310-cp310-manylinux_2_28_x86_64.whl (474.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

rapcsv-0.0.2-cp310-cp310-manylinux_2_28_aarch64.whl (453.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

rapcsv-0.0.2-cp310-cp310-macosx_11_0_arm64.whl (426.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rapcsv-0.0.2-cp310-cp310-macosx_10_12_x86_64.whl (434.3 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

rapcsv-0.0.2-cp39-cp39-win_amd64.whl (365.7 kB view details)

Uploaded CPython 3.9Windows x86-64

rapcsv-0.0.2-cp39-cp39-manylinux_2_28_x86_64.whl (476.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

rapcsv-0.0.2-cp39-cp39-manylinux_2_28_aarch64.whl (455.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

rapcsv-0.0.2-cp39-cp39-macosx_11_0_arm64.whl (428.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

rapcsv-0.0.2-cp39-cp39-macosx_10_12_x86_64.whl (436.5 kB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

rapcsv-0.0.2-cp38-cp38-win_amd64.whl (366.8 kB view details)

Uploaded CPython 3.8Windows x86-64

rapcsv-0.0.2-cp38-cp38-manylinux_2_28_x86_64.whl (477.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

rapcsv-0.0.2-cp38-cp38-manylinux_2_28_aarch64.whl (455.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

rapcsv-0.0.2-cp38-cp38-macosx_11_0_arm64.whl (428.6 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

rapcsv-0.0.2-cp38-cp38-macosx_10_12_x86_64.whl (437.1 kB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

Details for the file rapcsv-0.0.2.tar.gz.

File metadata

  • Download URL: rapcsv-0.0.2.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2.tar.gz
Algorithm Hash digest
SHA256 41a2ef34c4c45a2dde169fb47abc4d722d232d892bd48b68603be1509b59063b
MD5 c2a1899cc46ee10f2663f5f6c59f3136
BLAKE2b-256 74dbefbc746cf9b8196627965e5b020dc4bbfcfd19fd6edaa8848322b5af8e08

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 342.7 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 53fe66704cc8efba76891b78eb7e844a0b97fc80f7be1650e263342eb60b8539
MD5 a95862b239eb6775897152e1b71f8fb0
BLAKE2b-256 2a1aa0c7699ca69ce98694338c057b3cf27b50508876af7df3cf4c1352fdb021

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 361.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9399279852e64aa2ed93224b19b47f12d1b84890530faeb9a08a7b9382121c0c
MD5 c4f16d73d9c6befd4850d1ad20139ce2
BLAKE2b-256 a57313cc243f0bef42c74d468dbbb1daa20798f9d27f042e5cdf0bad85cbf21a

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de5f1b658735be16db1951a95c58d1999527dad9fd641aba3a38c2fc812b1d3b
MD5 d00308fccc6c5e59595d4637c7b72f83
BLAKE2b-256 d7bd552f475def1ee36d44f1da7f3d692612129cf53cf157c984ad06c43a57c4

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4e629d82df4a02c5c1e614c3e1292504f10bfc0eb965f6c2b8dde98003441d62
MD5 a4bc846a729b8b6df6f01feb8e05bbee
BLAKE2b-256 f851ab4563e70a3c6696245d0cb44a40f586848466bcd1da60956cd8017ef647

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e4178447622957e04715aa338c792be7f4ce6258c9c61ba206592ee2fd496b2
MD5 fa2fff89c7d2f0fdfd99c66a5170c245
BLAKE2b-256 4ec6014e4a74561ec32457a526f5c71cf75c8b3bbf224743e3c8c6713d9519aa

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c658cf795e9c36dabf02b47667cf0101514ac5177f6ca8f618d0670849c97575
MD5 e1fa013ad9d62fb1a60c22f46aaa3675
BLAKE2b-256 1c35bf8e84715daa0a0ec364a62296246aa53b21e618df7ff80ec30a66b28a16

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 344.4 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 da193163c8256fa5451ee6d689455ed57cf054dc5a13540eba9e7fe14d981106
MD5 1a392b51659d3d37252dfdb80a2d2092
BLAKE2b-256 d604e136d61fd56f75219c3d4dc33bf240aadf1f1c8d8192e632a43010417f24

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 362.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2751b712e67521ae611b09c13d8f5f160bb9644173db062580e9942e6fed5443
MD5 51b59214b6d9194a44c8dd316952d2eb
BLAKE2b-256 330f4ce31e932b2b8c803125643c2626498a15d63464fd692e645c5f5e7a94a5

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6e80ba0d5b64f12764323fb5c71510e62919f07a767167b975cd8cdbc1cbcd2e
MD5 bbc4600713d9898f2be826e83db22e2d
BLAKE2b-256 ed3e637cc8c1917bc269f520262793d509c66a8c1820e407643722100e619adb

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d17f778bc5ef81d31c4ac4b031f29e69acc8c1c0263c6a48da3232fcc9ba0d86
MD5 931dd233410395f97c63b8c947f76e86
BLAKE2b-256 eb309dc8ec7843a0b00eb174ee79f556e1024bb598e25cd20257a32e6c139357

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 485bb1efa6cf111568f11441bb533c5bc41b54e672fd4429a1b3a922fc305c36
MD5 3fbc1a713ff5e8cd17958076fb738bd4
BLAKE2b-256 3af9d2aaad5b2229d41c60d0d9f4cb67ae388b3cd8816b950f48a6a0223d806f

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dc231787b65d8a1b6e694c9b61a501e82b6e1a4dfc3b38e849468740a74d773d
MD5 ed9b3a41b0a43593dbcc431ae6ebad17
BLAKE2b-256 c05d1058f3e905546601f77772fcfaead79915bac1610af6b171f0b04846f89c

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 346.5 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 d3bfdebc1dd61c6ebb5e99f7efcd68b7c5cea37d8c8b7b8de2d8b2c29ec2ac5a
MD5 02628a8bf40ffd592ab437e7da608a1b
BLAKE2b-256 441029446e615d40dd7f21ff0be3b746a7f34b8592d7fd185cda9c1baf2d33ab

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 364.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1bc9c461a61f737c1ffa6b6986b38ebfbe7cb2bdb356a162096e82f2380ac1de
MD5 3fae603133dcde0ef48d17cf5f571fd7
BLAKE2b-256 b56d70acc8e36538e2a541650dd68c0f24ee9b8e712e93b699db5a62c2072bbe

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 876adb67d5f7b50d010d17ec7ae1a9eedf9b632190d5858a8a121c01e18172ac
MD5 ce4e6f210affce8aaf505e1015f680d6
BLAKE2b-256 501cb5f96313b3eeb3f0633eac9d6b94b2fec312e30563c732262697302f1363

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5b843909e36cd6c1be3a6fcbb43cb1ec8d9cee490fe3653369ee45d876537c14
MD5 6403511c20ea303b7f8fc9a4853348c8
BLAKE2b-256 eb24b153fb370960c3e944655b5358b8a294f37e1598589489546c2f9720674c

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8adef5906c8d37cedc8952d37aa6b8525dc36224763bafb652033b86dfbc53d3
MD5 c073a4e01cfd5cf6a03861bfadf4cd7d
BLAKE2b-256 61a4db7a83cf4d1b91ab7c5156675b0b86ccc14b0983582cdf07c91c113b4356

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4d08aea6e151299c4d49c3c8a7076aacba195b1bd8907a5d9c93469d4701928d
MD5 71a14d75465dfc7f0d02a0181ee3d227
BLAKE2b-256 f60d66fb378a767be41a52ba144f7d893ffbe6ffa3c83b97e733296676c174c1

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 364.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6594d1989938690e2d1d636c83e86d62ea64e27ef44b235f2e0298d78fc9b6de
MD5 b147b6d82bb7b70bacce63288fe37a64
BLAKE2b-256 ba0cf9ec2f3f6e2964609bf5ff8522b73f8ecdd40d5173ecfd65dc19bb9bdf64

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9f18b610b4820ca81dd1e02ab1fd7dac70e43bf4ea9f5aff71a5bf99606e76c
MD5 3746e225cc0e11c14f07c9db4a75a29b
BLAKE2b-256 0b0a1f85bf01c0cb1308ec3332444a8fa232b28d885b1e2b0e75cf5efd65f407

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bd17426bb3a109169ff40808b2c3ca1546ec55b348959f1e875591657a0dd497
MD5 083348987becef566e1a12640145e16c
BLAKE2b-256 5ed7c717868c5fe4d45fad9055fddea516cbd6d65ce4178da9cd9889e87024bf

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66f0479d61900a2e605de79eec56009e1dac7dbca9cb82e922922623f119b5b4
MD5 8529d81867502e08083511863215fc54
BLAKE2b-256 ad775fac9ca65e3618550c20d4131b843cea099c151b1e35cee0de62e78fed17

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 116e23e171029b23655ff4da3860320518974a22a8dd4185690685c6c81055cb
MD5 fc23acf36f11368258df60e2f0e740bd
BLAKE2b-256 d92b76fd0d28224f399da1e17be732371cec964838501fe43a93c345452cbf8a

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 365.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 07ec4128978b2b6bee39364c1e4461e97a78ce979facb9b40269c1a7c0f66445
MD5 2f8077b239d1a5961737ced826f26b0c
BLAKE2b-256 6c6917c4e7dfaf95e092d2acec959bf27d1e6f11f98685d2246d8b3a24bfae26

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81b489ccbf30b737b15c7f6923ba3229713c1859bfdbe17511d543044b202c57
MD5 7c4790e6ca85965cb808ad3492a0e1ee
BLAKE2b-256 db8db2b287650cc8eec2e24b35b97656357dfa336bc0ddd1379b7bbcbb34623f

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 777b1bd88dbbcc3d7251f08a797f68bfc7fe14d763a5b75895fed575334a91f9
MD5 5d0c1abe11c3435733eb7a753015cdd9
BLAKE2b-256 6a2f23373126fb877f3d1cbdf1cc8242dcbbce5ec644fbaf476340e4a2da073f

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 784c3a11d960d9b5f5133f62fe5672b6467cfce7c718b2b35530e6312c64b077
MD5 4a40f660b9925bdc380f3c195b197bf0
BLAKE2b-256 40dc6b6232792ae2fa7cd2cc54a6dded34c71cdacb620bff7e08d6a92ae90c55

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cc8fa81dedf5c799c38330f6279880dbdbd3cac3ab5d55a2610d3da8fa344de5
MD5 dabd7b7299211245181156966c61b618
BLAKE2b-256 5f5dde88de529a2dde3670a104ec13569724186ad48b43d78caf538f9e79582e

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: rapcsv-0.0.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 366.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rapcsv-0.0.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9cde54850885695de00b362b53877d34f31014ac395b6398e9804107ba89192e
MD5 202811c6ab178584d4a73e4dd6c46a99
BLAKE2b-256 e5b6c9eb9738d72c9482fdcdd404a86e61b42e32f445ce32cb5fbd2866e69f61

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 201ca936a34069bc3e0bba14f52db4774833e19fcc36ab359207687ede1936fd
MD5 b30499add411b0fea766343601a622d1
BLAKE2b-256 bd79c1dc0829fb210b2977ac1a21f329f5ad424f544abd5eb8965db42b8c3b7c

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 654f51d0dfe7d608721b3651de3878b17637b01c1c731c803e4fb653fbe9bdef
MD5 fee75dc4510e4849403d7c362d0a1847
BLAKE2b-256 c195b14f7e6d84c9d495eeb834d460332e7fd8e9dac3b0c0142d4fb51ae7fdea

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db81c47dff20787f1eb4c9d68d9442b39b646071503be404e51636d6eaef9836
MD5 f59b0c46c54a161ca62b99e79088d2e6
BLAKE2b-256 31d50ab23bd4f6cb0189a989cfe534d84c6aa24503df8f00bd549312240046a6

See more details on using hashes here.

File details

Details for the file rapcsv-0.0.2-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rapcsv-0.0.2-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4e05c3a7dce36815f463725d416bf5077a9dbaf253300c362e532a40f8145188
MD5 1013c74ff24e4bd1e7ac5fff804c4a3a
BLAKE2b-256 86d7e8b4afd7b7666cea27352e95b1225b889f8ea12472566e3926b12c2bbd78

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