Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
cc6c8a1
Add util functions to resolve/infer dimensions
rich-iannone Jul 3, 2026
26c8734
Add dimensions to global config
rich-iannone Jul 3, 2026
a7b1957
Add dimensions to PointblankConfig
rich-iannone Jul 3, 2026
47c0288
Update validate.py
rich-iannone Jul 3, 2026
4228132
Update validate.py
rich-iannone Jul 3, 2026
95755bf
Add DIMENSION constants
rich-iannone Jul 3, 2026
286b13b
Update _constants.py
rich-iannone Jul 3, 2026
8526933
Add several translations for dimensions labels
rich-iannone Jul 3, 2026
fb51be1
Import several constants
rich-iannone Jul 3, 2026
1c2edb1
Add the get_dimension_scores() method
rich-iannone Jul 3, 2026
72c24c5
Add the assert_dimension_scores() method
rich-iannone Jul 3, 2026
1dd780f
Add the get_scorecard() method
rich-iannone Jul 3, 2026
6cb4b45
Add _aggregate_dimension_units()
rich-iannone Jul 3, 2026
a2f7dbe
Add _compute_dimension_scores()
rich-iannone Jul 3, 2026
2341448
Add _compute_health_score()
rich-iannone Jul 3, 2026
9e235be
Add _get_dimension_label()
rich-iannone Jul 3, 2026
e014279
Add _transform_step_number_with_dimension()
rich-iannone Jul 3, 2026
c479ae4
Add _get_report_text()
rich-iannone Jul 3, 2026
739ae8e
Add _health_score_color()
rich-iannone Jul 3, 2026
ab4fea1
Add _create_health_score_html()
rich-iannone Jul 3, 2026
7b2f3b5
Add dimension to make_agg_validator()
rich-iannone Jul 3, 2026
66a3426
Add dimension and health info to Validate
rich-iannone Jul 3, 2026
9acdf75
Update validate.py
rich-iannone Jul 3, 2026
c8e6f28
Auto infer the DQ dimension from the assertion type
rich-iannone Jul 3, 2026
86c764f
Add the health-score summary block
rich-iannone Jul 3, 2026
03a9824
Overlay 2-letter dimension badges next to step nos.
rich-iannone Jul 3, 2026
ff2daf8
Add dimension parameter to validation step methods
rich-iannone Jul 3, 2026
0453be2
Update validate.pyi
rich-iannone Jul 3, 2026
d9d34b9
Update generate_agg_validate_pyi.py
rich-iannone Jul 3, 2026
4fbb663
Add tests for data quality dimensions
rich-iannone Jul 3, 2026
13ea3f7
Update test_validate.py
rich-iannone Jul 3, 2026
545d029
Update comprehensive_validation_report.html
rich-iannone Jul 3, 2026
d3c8a6f
Update no_interrogation_validation_report.html
rich-iannone Jul 3, 2026
2c04f54
Update validation_report_briefs_global_local.html
rich-iannone Jul 3, 2026
3527f60
Update validation_report_with_briefs.html
rich-iannone Jul 3, 2026
05aace9
Update validation_report.json
rich-iannone Jul 3, 2026
e708cba
Update validation_report.json
rich-iannone Jul 3, 2026
c2dda1f
Update validation_report.json
rich-iannone Jul 3, 2026
ee1699f
Update validation_report.json
rich-iannone Jul 3, 2026
4b07ea5
Update validation_report.json
rich-iannone Jul 3, 2026
de69223
Update validation_report.json
rich-iannone Jul 3, 2026
82ae028
Update validation_report.json
rich-iannone Jul 3, 2026
e55e282
Update validation_report.json
rich-iannone Jul 3, 2026
055724e
Update validation_report.json
rich-iannone Jul 3, 2026
3206530
Update validation_report.json
rich-iannone Jul 3, 2026
a874bf4
Update validation_report.json
rich-iannone Jul 3, 2026
cac3161
Update validation_report.json
rich-iannone Jul 3, 2026
7bff62d
Update validation_report_segments.html
rich-iannone Jul 3, 2026
5b2b953
Update validation_report_segments.html
rich-iannone Jul 3, 2026
d02f279
Update validation_report_segments.html
rich-iannone Jul 3, 2026
ff63cd1
Update validation_report_segments_with_pre.html
rich-iannone Jul 3, 2026
55e389c
Update selector_helper_functions_no_match.html
rich-iannone Jul 3, 2026
c754453
Update selector_helper_functions_no_match.html
rich-iannone Jul 3, 2026
b150e53
Update selector_helper_functions_no_match.html
rich-iannone Jul 3, 2026
fe34893
Create .gitignore
rich-iannone Jul 3, 2026
71dff62
Create 05-quality-dimensions-and-scoring.qmd
rich-iannone Jul 3, 2026
a6d5550
Update validate.py
rich-iannone Jul 3, 2026
6a6ce26
Add small fixes for quality metrics
rich-iannone Jul 3, 2026
53a6027
Update test_quality_dimensions.py
rich-iannone Jul 3, 2026
701d40a
Update great-docs.yml
rich-iannone Jul 3, 2026
4a5ddc2
Update test_quality_dimensions.py
rich-iannone Jul 3, 2026
a799d0d
Update 05-quality-dimensions-and-scoring.qmd
rich-iannone Jul 3, 2026
43b2cac
Change default of displaying DQ dimensions in reports
rich-iannone Jul 3, 2026
55dfbc4
Update test_quality_dimensions.py
rich-iannone Jul 3, 2026
26c678a
Update test_validate.py
rich-iannone Jul 3, 2026
7330090
Update 05-quality-dimensions-and-scoring.qmd
rich-iannone Jul 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions great-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,11 @@ reference:
- Validate.all_passed
- Validate.assert_passing
- Validate.assert_below_threshold
- Validate.assert_dimension_scores
- Validate.above_threshold
- Validate.get_dimension_scores
- Validate.get_health_score
- Validate.get_scorecard
- Validate.n
- Validate.n_passed
- Validate.n_failed
Expand Down
84 changes: 84 additions & 0 deletions pointblank/_constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,89 @@
"col_sum_eq": "sum_eq",
}

# The canonical set of data quality dimension names used for health scoring. These are the
# categories that each validation step is tagged with (either inferred automatically from the
# `assertion_type` or set explicitly via the `dimension=` parameter on a validation method).
DIMENSION_NAMES: list[str] = [
"completeness",
"consistency",
"validity",
"uniqueness",
"timeliness",
"volume",
]

# Default mapping of `assertion_type` to a data quality dimension. This enables automatic
# dimension inference for every validation step with no user effort. Users can remap globally
# via `pb.config(dimension_map=...)` or override per step via a validation method's `dimension=`
# parameter. Any assertion type not present here falls back to `"unknown"`.
ASSERTION_TYPE_TO_DIMENSION: dict[str, str] = {
# Completeness: presence/absence of values
"col_vals_null": "completeness",
"col_vals_not_null": "completeness",
"col_pct_null": "completeness",
"col_pct_missing": "completeness",
"col_missing_coded": "completeness",
"col_missing_only_coded": "completeness",
"rows_complete": "completeness",
# Consistency: internal agreement across columns/rows/tables
"col_missing_consistent": "consistency",
"conjointly": "consistency",
"tbl_match": "consistency",
# Validity: values conform to expected rules, ranges, formats, or schema
"col_vals_gt": "validity",
"col_vals_lt": "validity",
"col_vals_eq": "validity",
"col_vals_ne": "validity",
"col_vals_ge": "validity",
"col_vals_le": "validity",
"col_vals_between": "validity",
"col_vals_outside": "validity",
"col_vals_in_set": "validity",
"col_vals_not_in_set": "validity",
"col_vals_regex": "validity",
"col_vals_within_spec": "validity",
"col_vals_increasing": "validity",
"col_vals_decreasing": "validity",
"col_vals_expr": "validity",
"col_exists": "validity",
"col_schema_match": "validity",
"col_sum_eq": "validity",
"prompt": "validity",
"specially": "validity",
# Uniqueness: absence of duplicate rows
"rows_distinct": "uniqueness",
# Timeliness: data recency/freshness
"data_freshness": "timeliness",
# Volume: expected row/column counts
"row_count_match": "volume",
"col_count_match": "volume",
}

# Two-letter abbreviations used for the compact, color-coded dimension badge shown in the corner of
# the step-number cell in the validation report.
DIMENSION_ABBR: dict[str, str] = {
"completeness": "CM",
"consistency": "CS",
"validity": "VA",
"uniqueness": "UQ",
"timeliness": "TM",
"volume": "VO",
"unknown": "??",
}

# Accent colors used to color-code the dimension badge in the validation report. Hues are chosen
# to read as categorical (distinct from the warning/error/critical severity palette).
DIMENSION_COLORS: dict[str, str] = {
"completeness": "#3C6E9A", # blue
"consistency": "#C57B3C", # amber
"validity": "#4E9A6B", # green
"uniqueness": "#8E6FB5", # purple
"timeliness": "#3F9C9C", # teal
"volume": "#7A7A8C", # slate
"unknown": "#B0B0B0", # gray
}

COMPARISON_OPERATORS = {
"col_vals_gt": ">",
"col_vals_ge": ">=",
Expand Down Expand Up @@ -130,6 +213,7 @@
"thresholds",
"label",
"brief",
"dimension",
"active",
"all_passed",
"n",
Expand Down
Loading
Loading