Pointblank v0.27.0 brings referential integrity validation, statistical drift detection, and expanded data profiling capabilities. The new col_vals_in_table() validation method enables cross-table foreign key checks, while DataScan.compare() and the DataScanDiff class make it possible to detect schema and statistical drift between data profiles over time. Several skills are now packaged with the library for immediate use, contract adapters received important additions and fixes, and the MCP integration has been cleaned up with a leaner dependency footprint.
New Features
-
Referential integrity validation with
col_vals_in_table()— New validation method that checks whether each value (or composite key) in a column exists in a reference table column. Supports single and multi-column keys,na_pass, segmentation, and all standard thresholds and actions, making foreign key–style consistency checks a first-class validation step. (#419) -
Statistical drift measures via
DataScanDiff—DataScan.compare(baseline)now returns aDataScanDiffobject that provides programmatic access to schema changes (columns added, removed, or type-changed) and per-column statistical drift metrics — Population Stability Index (PSI) for numeric and categorical columns, and Kolmogorov-Smirnov statistic for numerics (with a pure-Python fallback when SciPy is unavailable). Results are surfaced viaget_tabular_report(), which renders a styled Great Tables report with schema and drift columns. (#421) -
Packaged skills — A set of skills is now distributed with the package (e.g., defining contracts, drafting validations, scanning and profiling data, writing validations, and more). (#417)
Enhancements
-
Extended
DataScanclass —DataScancan now be serialized and restored without access to the original data. New methods includeto_dict(),to_json(),save_to_json(),from_dict(),from_json(), andload_from_json()for round-trip persistence of data profiles. Stored scans can then be compared against new scans usingcompare()to track drift over time. (#420) -
Contract adapter additions and fixes — The contract adapter system received expanded functionality and correctness fixes across the supported formats (dbt, Frictionless, JSON Schema, ODCS). Adapter import and export coverage was improved, and
ContractImport.to_contract()andContractImport.to_python()output is now more reliable. (#418)
Bug Fixes
- Removed the direct
mcp[cli]dependency and replaced it with an updatedfastmcp>=2.14.2pin, resolving installation conflicts in environments that use the MCP optional extra. (#416)
New Contributors
- @FBruzzezi made their first contribution in #416.