Skip to main content

🧹 bcp-exorcist

Fix malformed CSVs exported with broken delimiters and newlines from legacy systems.

bcp-exorcist is a Python extension written in Rust that "exorcises" broken CSV files using uncommon delimiters and newline characters. It processes files in memory-efficient batches and transforms them into proper, escaped CSV files ready for analysis or ingestion.

✨ Features

  • Efficient batch processing of large CSV files.
  • Handles broken CSVs with custom delimiters (e.g. \x1E) and newlines (e.g. \x1D).
  • Recovers valid CSV structure with correct escaping.
  • Rust-powered speed with Python simplicity.

📦 Installation

pip install bcp-exorcist

☦️ Example

from bcp_exorcist import exorcize_csv

try:
    exorcize_csv("path/to/broken.csv", delim=b'\x1E', newline=b'\x1D', chunk_size=1024 * 1024)
    print("Exorcism completed successfully!")

except TypeError:
    print("`delim` and `newline` must be single-byte values.")
except FileNotFoundError:
    print("Check that the filepath is correct.")
except RuntimeError as e:
    print(f"Exorcism failed: {e}")

Metadata

Release files for bcp-exorcist 0.2.1

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

Built distributions (wheels)

Table of built distributions (wheels) for bcp-exorcist 0.2.1
File
bcp_exorcist-0.2.1-pp311-pypy311_pp73-win_amd64.whl PyPy 3.11 PyPy 3.11 7.3 Windows x86-64 Details
bcp_exorcist-0.2.1-pp310-pypy310_pp73-win_amd64.whl PyPy 3.10 PyPy 3.10 7.3 Windows x86-64 Details
bcp_exorcist-0.2.1-pp39-pypy39_pp73-win_amd64.whl PyPy 3.9 PyPy 3.9 7.3 Windows x86-64 Details
bcp_exorcist-0.2.1-cp313-cp313t-win_amd64.whl CPython 3.13 CPython 3.13 free-threading Windows x86-64 Details
bcp_exorcist-0.2.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
bcp_exorcist-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
bcp_exorcist-0.2.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 1.5 MB

Release files / bcp_exorcist-0.2.1-pp311-pypy311_pp73-win_amd64.whl

Download URL bcp_exorcist-0.2.1-pp311-pypy311_pp73-win_amd64.whl
Size 214.6 kB
Tags PyPy 3.11 PyPy 3.11 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
0045ba0eb6e834767e7ef06dda58ad833192084e58934f2fd8dd94eb555d8551
BLAKE2b-256 checksum
How to use checksums
bc74e7ec5185d8ab1f8a129e6acad8afd4af122c55e45481b85ed84d93e8013b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / bcp_exorcist-0.2.1-pp310-pypy310_pp73-win_amd64.whl

Download URL bcp_exorcist-0.2.1-pp310-pypy310_pp73-win_amd64.whl
Size 214.8 kB
Tags PyPy 3.10 PyPy 3.10 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
2edf176f3fd997aeaf5e7a8f190efe5ada44050d97833328cbe690ff33c50799
BLAKE2b-256 checksum
How to use checksums
311d75bf242b55bd265bb66156f1ad7b91751d0d5a114826510c4806e55f050e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / bcp_exorcist-0.2.1-pp39-pypy39_pp73-win_amd64.whl

Download URL bcp_exorcist-0.2.1-pp39-pypy39_pp73-win_amd64.whl
Size 216.1 kB
Tags PyPy 3.9 PyPy 3.9 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
2f573f52fb0ced17eff52023a3317e832400b31d219815f0e88dc1dac01f98a2
BLAKE2b-256 checksum
How to use checksums
28028d3c79241316186d853d4682ec8612df2b338787f2218bbdaae2d1e94007
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / bcp_exorcist-0.2.1-cp313-cp313t-win_amd64.whl

Download URL bcp_exorcist-0.2.1-cp313-cp313t-win_amd64.whl
Size 213.9 kB
Tags CPython 3.13 CPython 3.13 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
9600242d99e87aec3db21ef00e1a518e520be62fce88e76dcd61213b484ed9d9
BLAKE2b-256 checksum
How to use checksums
0c39dad662ff23aa35f08a94ad929e1d32c294f28d99f41b0a0d7b8a35b01b3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / bcp_exorcist-0.2.1-cp39-abi3-win_amd64.whl

Download URL bcp_exorcist-0.2.1-cp39-abi3-win_amd64.whl
Size 215.9 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
72ec7431c3c17e9906b5c2d867ab237cb19f584ac5a28541a21484941bece5eb
BLAKE2b-256 checksum
How to use checksums
bc988e513ba8c6207631af863be1d47347f684293a22d860775b30de4348e9c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / bcp_exorcist-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL bcp_exorcist-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 231.9 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
25f7769ff377c146b1cadad63844f581caac5144ae5709c0ae3e90b337a55ee8
BLAKE2b-256 checksum
How to use checksums
198e7bc7d82de6dd0082f30b80fcf8b689e65c3e2dce6ae394fbc1cf5892cd98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / bcp_exorcist-0.2.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL bcp_exorcist-0.2.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 215.9 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7e46332d862f063c7ee9f415453d7a6e4dfbf82ad7b940683dd6d52821c3b8b2
BLAKE2b-256 checksum
How to use checksums
5b3048d9074f54d58ad5ebbb6d1d11a81072aa0c64009dbeb2ebdc211cdaab35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Security for bcp-exorcist 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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