{"repo":"benrutter/wimsey","free":true,"listed":false,"github":"https://github.com/benrutter/wimsey","clone":"git clone https://github.com/benrutter/wimsey.git","description":"Easy and flexible data contracts","language":"Python","stars":172,"topics":["data-analytics","data-contracts","data-engineering","data-science","python","testing"],"license":"MIT","category":"data-pipelines","readme_excerpt":"🔍 Wimsey Wimsey is lightweight, flexible and fully open-source data contract library. - 🐋 Bring your own dataframe library : Built on top of Narwhals so your tests are carried out natively in your own dataframe library (including Pandas, Polars, Pyspark, Dask, DuckDB, CuDF, Rapids, Arrow and Modin) - 🎍 Bring your own contract format : Write contracts in yaml, json or python - whichever you prefer! - 🪶 Ultra Lightweight : Built for fast imports and minimal overwhead with only two dependencies (Narwhals and FSSpec) - 🥔 Simple, easy API : Low mental overheads with two simple functions for testing dataframes, and a simple dataclass for results. Check out the handy test catalogue and quick start guide What is a data contract? As well as being a good buzzword to mention at your next data event, data contracts are a good way of testing data values at boundary points. Ideally, all data would be usable when you recieve it, but you probably already have figured that's not always the case. A data contract is an expression of what should be true of some data - we might want to check that the only columns that exist are first name , last name and rating , or we might want to check that rating is a number less than 10. Wimsey let's you write contracts in json, yaml or python, here's how the above checks would look in yaml: Wimsey then can execute tests for you in a couple of ways, validate - which will throw an error if tests fail, and otherwise pass back your dataframe - and test , w","default_branch":null,"files":null,"tree":[],"storefront":"/r/benrutter","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/benrutter/wimsey/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}