Skip to main content

Blazing fast format validations for your CSV files

Project description

CSV Validation Library

Blazing fast format validations for your CSV files

This is a Python lib with a Rust core that will allow you to validate huge CSV files (GBs) in seconds (or in a few minutes for really huge files) using a minimal amount of memory.

Features

  • ✨ Validate both plain and gzipped CSV files
  • 🔍 Multiple validation types supported:
    • Correct column name and order
    • Regular expressions
    • Well-known formats (integer, decimal, etc.)
    • Minimum/Maximum numerical value checks
    • Value set validation (allowed values)
  • 🦀 + 🐍 Rust lib with Python bindings included
  • 📝 Detailed validation summaries with sample invalid values
  • 🚀 High performance with optimizations like regex pre-compilation
  • 📊 Support for large CSV files

Installation

Python

pip install csv_validation
poetry add csv_validation
uv add csv_validation

Usage

Python

You can provide a file with the validation rules

from csv_validation import CSVValidator

validator = CSVValidator.from_file("validation_rules.yaml")
is_valid = validator.validate("data.csv")

You can also create a validator from a string

validation_rules = """
columns:
  - name: Name
    regex: ^[A-Za-z\s]{2,50}$
  - name: Age
    format: positive_integer
    max: 120
"""

validator = CSVValidator.from_string(validation_rules)
# Optionally set a custom column separator
validator.set_separator(";")  # Default is comma (,)

# Validate a CSV file
is_valid = validator.validate("data.csv")

Validation Definition Format

Create a small, easy-to-read YAML file with your validation rules. Example:

columns:
  - name: Name
    regex: ^[A-Za-z\s]{2,50}$  # Letters and spaces, 2-50 characters
  - name: Family Name
    regex: ^[A-Za-z\s'-]{2,50}$  # Letters, spaces, hyphens and apostrophes
  - name: Age
    format: positive_integer  # Using predefined format instead of custom regex
    max: 120
  - name: Salary
    format: integer  # Allows negative integers too
    min: 20000
  - name: Email
    regex: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$  # Standard email format
  - name: Phone
    regex: ^\+?[0-9]{10,15}$  # International phone format with optional +
  - name: Status
    values: [active, inactive, pending, suspended]  # Only these values are allowed
  - name: Gender
    values: [M, F, NB, O]  # M: Male, F: Female, NB: Non-Binary, O: Other

Validation Types

  1. Regular Expression (regex)

    • Validate fields against custom regex patterns
  2. Format (format)

    • Predefined formats for common validations (This is the recommended way to validate numeric fields)
    • In the background, the library uses regex patterns to validate formats.
    • Available formats:
      • integer: Validates any integer number (positive or negative)
      • positive integer: Validates positive integer numbers
      • negative integer: Validates negative integer numbers
      • decimal/decimal point: Validates any decimal number (positive or negative) using point as decimal separator
      • negative decimal point: Validates negative decimal numbers using point as decimal separator
      • decimal comma: Validates decimal numbers using comma as decimal separator
      • positive decimal/positive decimal point: Validates positive decimal numbers using point as decimal separator
      • positive decimal comma: Validates positive decimal numbers using comma as decimal separator
      • decimal scientific: Validates decimal numbers in scientific notation (e.g. 23.02e-12)
      • decimal scientific comma: Validates decimal numbers in scientific notation using comma as decimal separator
      • positive decimal scientific: Validates positive decimal numbers in scientific notation
    • More formats will be added in upcoming versions
  3. Minimum Value (min)

    • Check if numeric fields are greater than or equal to a specified value
  4. Maximum Value (max)

    • Check if numeric fields are less than or equal to a specified value
  5. Value Set (values)

    • Ensure fields only contain values from a predefined set
  6. Extra (extra)

    • Extra validations that normally complement one of the other types
    • Available extras:
      • non_empty: Validates that field contains at least one character

You can add as many validation types as you want for the same column, but take into account that the column only will be considered correct if all the validations are OK.

Global Validations

empty_not_ok

Empty values (empty string '') are considered correct and accepted by default. However, if your data must always have some content, you can add a global empty_not_ok flag at the root level of your YAML definition to automatically add the extra: non_empty validation to all columns:

empty_not_ok: true
columns:
  - name: Column1
    # other validations...

Unique Key (Duplicate Rows) Validation

You can enforce uniqueness across one or more columns by adding a root-level unique field in your YAML definition. This enables a memory-efficient duplicate detection that scales to very large files.

  • Accepts a single column name (string) or a list of column names (array of strings).
  • Works with both plain and gzipped CSV files.
  • Uses a high-performant disk-backed key-value store (redb) under the hood to keep memory usage low.

Examples:

# Single-column unique key
unique: ID
columns:
  - name: ID
    format: positive integer
  - name: Name
    regex: ^[A-Za-z\s]{2,50}$
# Composite unique key across multiple columns
unique: [isin, date, score_provider]
columns:
  - name: isin
    regex: ^[A-Z0-9]{12}$
  - name: date
    regex: ^\d{4}-\d{2}-\d{2}$
  - name: score_provider
    values: [sp1, sp2, sp3]
  - name: score
    format: decimal

What you will see in the summary:

  • Always shows the number of duplicate key groups found.
  • If there are more than 100 duplicate groups, only the first 100 are displayed as a sample (with their occurrence counts), and the total number is indicated.
  • If no duplicates are found, it reports: "Duplicates found: 0".

Sample output (composite key):

UNIQUE KEY: column(s): ["isin", "date", "score_provider"]

DUPLICATED KEYS (groups found: 134)
--------------------------------------------------
Showing first 100 of 134 duplicate key groups:
  - (isin='US0004026250', date='2025-10-01', score_provider='sp1') -> occurrences: 3
  - (isin='US5949181045', date='2025-10-01', score_provider='sp2') -> occurrences: 4
  ... up to 100 lines ...

If none:

UNIQUE KEYS CHECK
--------------------------------------------------
  - No Duplicates found

Performance note: Duplicate detection stores only the unique keys on disk and keeps a tiny in-memory summary used for printing the report. This allows validating huge datasets with minimal RAM usage.

Column Separator

By default, the library uses comma (,) as the column separator. You can change this using the set_separator method:

validator = CSVValidator.from_file("rules.yml")
validator.set_separator(";")  # Use semicolon as separator
validator.set_separator("\t")  # Use tab as separator

Decimal Separator

By default, the library uses point (.) as the decimal separator. You can change this using the set_decimal_separator method:

validator = CSVValidator.from_file("rules.yml")
validator.set_decimal_separator(",")  # Use comma

Error Handling

The library provides detailed validation reports through Python's logging system. When a validation fails, you'll get information about:

  • Which columns failed validation
  • What type of validation failed
  • Sample of invalid values
  • Number of rows that failed each validation

Example of validation report

VALIDATIONS SUMMARY
==================================================
FILE: /test.csv
Rows: 232230 | Columns: 5

CORRECT COLUMNS: 3/5
--------------------------------------------------
  - County: [✔] OK
      ✔ - RegularExpression { expression: "^.*$", alias: "regex" }
  - City: [✔] OK
      ✔ - RegularExpression { expression: "^.*$", alias: "regex" }
  - Model Year: [✔] OK
      ✔ - RegularExpression { expression: "^[0-9]+$", alias: "regex" }
      ✔ - Min(1999.0)
      ✔ - Max(2025.78)

WRONG COLUMNS: 2/5
--------------------------------------------------
  - State: [✖] FAIL
      ✖ - Values(["WA", "OR", "NY", "DC", "CA", "TX", "FL", "OK", "MO", "KS", "VA", "MA", "MO", "NC", "IL", "AL", "WY", "CO", "PA", "WI", "MD", "NV", "AZ"])
          "Wrong Rows: 93 | Sample: 'GA','NJ','CT','NJ','CT','CT','CT','NE','CT','NH'"
  - Postal Code: [✖] FAIL
      ✔ - RegularExpression { expression: "^$|^-?\\d+$", alias: "integer" }
      ✖ - RegularExpression { expression: "^.+$", alias: "non_empty" }
          "Wrong Rows: 4 | Sample: '','','',''"

VALIDATION RESULT
--------------------------------------------------
[✖] FAIL: File DOESN'T match all validations

Development

Prerequisites

  • Rust 2021 edition or later
  • Python 3.6+ (for Python bindings)
  • Cargo and standard Rust tooling

Building from Source (Rust version)

# Clone the repository
git clone https://github.com/charro/csv_validation
cd csv_validation

# Build the project
cargo build --release

# Run tests
cargo test

Dependencies

  • csv: CSV parsing
  • flate2: Compression support
  • pyo3: Python bindings
  • regex: Regular expression support
  • yaml-rust2: YAML parsing
  • redb: Disk-backed key-value storage used for memory-efficient duplicate detection
  • Various utilities for logging and serialization

License

MIT License

Copyright (c) 2024 CSV Validation Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

csv_validation-0.0.18.tar.gz (25.4 kB view details)

Uploaded Source

Built Distributions

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

csv_validation-0.0.18-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

csv_validation-0.0.18-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

csv_validation-0.0.18-cp313-cp313-win32.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86

csv_validation-0.0.18-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

csv_validation-0.0.18-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

csv_validation-0.0.18-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

csv_validation-0.0.18-cp310-cp310-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

csv_validation-0.0.18-cp310-cp310-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

csv_validation-0.0.18-cp310-cp310-musllinux_1_2_armv7l.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARMv7l

csv_validation-0.0.18-cp310-cp310-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

csv_validation-0.0.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

csv_validation-0.0.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

csv_validation-0.0.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

csv_validation-0.0.18-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

csv_validation-0.0.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

csv_validation-0.0.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ i686

csv_validation-0.0.18-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

csv_validation-0.0.18-cp310-cp310-macosx_10_12_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

csv_validation-0.0.18-cp39-cp39-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9Windows x86-64

File details

Details for the file csv_validation-0.0.18.tar.gz.

File metadata

  • Download URL: csv_validation-0.0.18.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for csv_validation-0.0.18.tar.gz
Algorithm Hash digest
SHA256 210eb1aa850710da254484a1ab4976f16214f19e4b27f530af7874cdc6b0eca4
MD5 186d5f0fa9dbe473c64cda3646a422c5
BLAKE2b-256 f059abf1b2cb05eb5950427b3ea016039a252d7e8a3f0a463d013370c9965443

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0cd5c8cbccf50826376788d61e8cb0e7c47d789897ded2d587c2970e25b516ce
MD5 eb993de22d892cf4380c35bba92781c0
BLAKE2b-256 36f4db7b85fce1b280fb6a080d87d233a4a2d79be0ea5bfde7977a7bb40006bc

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 162a9dbaebd3ed1c64c535827153cdac5bd3ced95817590ee6fa6011018dfd1d
MD5 feee7ff18b24549b4acd1a23010523e0
BLAKE2b-256 52d079ba349308252d607e006e743e3a919a9fe6589d9dbc51c551d5c52824d6

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 505c879689a6bc6341a2e34db6940daaecd340547362e34826f61493f5862cfc
MD5 c5e18b86843b78d38ed9ed0169fa362e
BLAKE2b-256 6bb304f32d17e9bdf2b7cd358c957ee4d9aa21a74617168bf5cd09477d940b3d

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d864f8adfa3d5c74eef483b790da4ba043f461f89d043cacb45d72f92d85c17c
MD5 4e77b97c6bfe6aad76a4454b3ed835cc
BLAKE2b-256 d7a5e50e1444f03bb3ea264e262755c1574bde398f2b5fdfecee918a00ace37e

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d9d1973682ec82ea96a98ac7d78f40b348e3f795d2dafacb0e6e88330f86e7f2
MD5 bc8dd0875531a2adfafe919ce1b17270
BLAKE2b-256 2a95c38913639326faa3c2d0c6490c20a8780cfd7a3fa473dddf7d191a636c15

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 11d4100136ee9b5ccf0052c4505dc0a6971ec3a07975250f101b0ba59040b1ab
MD5 ed53d722be5c7e3d902bf3f9bd63f5a1
BLAKE2b-256 a27324eee79b9cf47b988069ca2727c6904789a9f8fff85d9d7d056bd596d693

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d78933a9112d2c77ef35778dd03d07ff7e7bd0e387505230c7e0915f271daaa9
MD5 249bd2093a2ff08d0671be43b3f956c7
BLAKE2b-256 3ebf16a33b0ba0a72a849c3d1de3e8de745b48581b1e50907afc9447736f03fd

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f5cfe8e44422c8756f41f4e56e2fb6a2f1d0a4a8d9ca43d856c336a87f444a2f
MD5 02dd547b544c7d9b7b79d7faea619583
BLAKE2b-256 f30377d7e3464bc58eb8579791dfe3fbe87376ca706118fa4e4dcfd675ada05c

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 457912b4fc27bac7c6a02ee0f9655eb9cebe257c9afb61c6cd76bb0974d0dbd7
MD5 d6ef8e024125a3e042a3c9be34f5b7c2
BLAKE2b-256 2a1d6406fce2605d468580e0b447ce8f62f0659a58a64a14dea84343f7456964

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4275b9838a796d33cff464ee13e90742c5074d1346fd2757fadac295bc8e0ad1
MD5 a53d8db9ba6e1a05151ec69ae70668ba
BLAKE2b-256 03dab41762eedacdfcbdcfe89732afa66bcfd7b3dfb0c3fff79d3a2a023a3c86

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f4653f074997adb45f59bac07ed44a59f2e616f7eb7d1b9fc50e0b1f854dc31
MD5 f3d7c0e73bcb36660e4863e02cca0ce1
BLAKE2b-256 2d9651dca982aec70d4e4f4356b4d612274118c06b909bc10c3686456045f1dc

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d7c820c58aa17182c57e9a26aef0aa6a49473774f4141d788dd4013683ec26c1
MD5 c3132610518e1b3491cf24cbd1d1901f
BLAKE2b-256 3885c82ab3bb0cb4620aac0e629f643323e530e12c47185eb6e592a9cd3ec0d1

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 198d35761365ed9153ff381a3303e03d3d8c05af3ad1db15e1fff5f8a6c102bf
MD5 99b8098e3fc855371a74b4ed9e8d77d7
BLAKE2b-256 9a508b3b49d7b5e369cd6a05e25d0d64cc1aa762abf26aeee11404fabe9bce04

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 b7ea80b0730708466db7d5d465e91da1dced860b0da033bdbc96ae7310a012a1
MD5 08d343be51ceea8fa8b31a58de1fd021
BLAKE2b-256 83da4346099bb48e5af957b61bd77651af8e05dabd12bf9dbc5936d5b6096131

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f53ac670ac924a039cabafdefa06e523a6f271f3751710072cc3ea3cd861a847
MD5 3183236f47d49a1e08a632c1c246333a
BLAKE2b-256 0cab5f9f7e3bc5846e23791ac187c5b7cfdfd4fc4b7b37df50f7954368f29f11

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 8d14fd3f03054e098960e22abccfab3bde4c27672a26536f1cab17ded094a1fc
MD5 fd510aa6ce589e219e118a1921fb4875
BLAKE2b-256 9e3d543d4ce3fcc4a0f2c2f21da456242e8820b78f14cf2e7b1541428a14e0c9

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3987f8088067990773120bb57facbfb45562655cb0cb1325c3d547f55f6cf3e9
MD5 5f59dcdfc506e07d687f18b63d97248c
BLAKE2b-256 cbab269bb27a323a6ee5f9339103fed4591564cfa1d683086795d05b85a3e4cf

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6ef09b9d4fc5be325cc67758584b9c583c04dd73650dc1fe5fd855e08aad2fce
MD5 9e601993ebe2d19a69ad2d0ad795e1b4
BLAKE2b-256 dd0802849948ae163e176e1c0202ddaf2042c4bcdca5afd92f2cf928550626b7

See more details on using hashes here.

File details

Details for the file csv_validation-0.0.18-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for csv_validation-0.0.18-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 36f28241b3ffc9745247cfe8d2fe49133daed3b16be438a5de6f3f3173e1f0b2
MD5 38dbdea149c5b949b189cd33c6cd9ec0
BLAKE2b-256 37c2b955c4f66ccc74c3f724a3d2eac80dbcc8ed96b7f01b08d5321b04bedf54

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