Awesome Open Source
Awesome Open Source


The pywhip package is a Python package to validate data against whip specifications, a human and machine-readable syntax to express specifications for data.

Build Status

Build Status


Check the documentation pages for more information.


To install pywhip, run this command in your terminal:

pip install pywhip

For more detailed installation instructions, see the documentation pages.

Test pywhip in jupyter notebook

Launch a jupyter notebook to interactively try out the pywhip package:



To validate a CSV data file with the field headers country, eventDate and individualCount, write whip specifications, according to the whip syntax:

specifications = """
       allowed: [BE, NL]
        dateformat: '%Y-%m-%d'
        mindate: 2016-01-01
        maxdate: 2018-12-31
        numberformat: x  # needs to be an integer value
        min: 1
        max: 100

To whip your data set, e.g. my_data.csv, pass the data to whip specifications:

from pywhip import whip_csv

example = whip_csv("my_data.csv", specifications, delimiter=',')

and write the output report to an html file:

with open("report_example.html", "w") as index_page:

Resulting in a report like this. For a more detailed introduction, see the documentaton tutorial.


This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Validation of data rows is using the Cerberus package.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (50,919
data-validation (16

Find Open Source By Browsing 7,000 Topics Across 59 Categories