Skip to content

Commit 1f0fb23

Browse files
authored
Merge pull request #127 from posit-dev/feat-add-brief-to-report
feat: add text of brief to validation report table; enable more templating features for `brief=`
2 parents 2a69672 + ae4827a commit 1f0fb23

File tree

8 files changed

+861
-218
lines changed

8 files changed

+861
-218
lines changed

pointblank/validate.py

Lines changed: 218 additions & 65 deletions
Large diffs are not rendered by default.

tests/snapshots/test_validate/test_comprehensive_validation_report_html_snap/comprehensive_validation_report.html

Lines changed: 150 additions & 75 deletions
Large diffs are not rendered by default.

tests/snapshots/test_validate/test_no_interrogation_validation_report_html_snap/no_interrogation_validation_report.html

Lines changed: 102 additions & 51 deletions
Large diffs are not rendered by default.

tests/snapshots/test_validate/test_validation_report_briefs_html/validation_report_with_briefs.html

Lines changed: 309 additions & 0 deletions
Large diffs are not rendered by default.

tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_memtable_variable_names/selector_helper_functions_no_match.html

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@
9696
<td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
9797
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
9898
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
99-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
100-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
99+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
100+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
101101
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
102102
<title>col_vals_lte</title>
103103
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -108,7 +108,10 @@
108108
</g>
109109
</svg>
110110
</div>
111-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_le()</span>
111+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
112+
<div>col_vals_le()</div>
113+
</div>
114+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
112115
</td>
113116
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">high_floats</td>
114117
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">100</td>
@@ -134,8 +137,8 @@
134137
<td style="height: 40px; background-color: #4CA64C66; color: transparent;font-size: 0px; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">#4CA64C66</td>
135138
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_right">2</td>
136139
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">
137-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
138-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
140+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
141+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
139142
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
140143
<title>col_vals_gt</title>
141144
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -146,7 +149,10 @@
146149
</g>
147150
</svg>
148151
</div>
149-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_gt()</span>
152+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
153+
<div>col_vals_gt()</div>
154+
</div>
155+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
150156
</td>
151157
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; background-color: #F2F2F2; background-color: #FFC1C159; color: #B22222;" class="gt_row gt_left">Contains(text='not_present', case_sensitive=False)</td>
152158
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">10</td>
@@ -172,8 +178,8 @@
172178
<td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
173179
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">3</td>
174180
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
175-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
176-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
181+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
182+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
177183
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
178184
<title>col_vals_lt</title>
179185
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -184,7 +190,10 @@
184190
</g>
185191
</svg>
186192
</div>
187-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_lt()</span>
193+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
194+
<div>col_vals_lt()</div>
195+
</div>
196+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
188197
</td>
189198
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">low_numbers</td>
190199
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">5</td>

tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_pd_variable_names/selector_helper_functions_no_match.html

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@
9696
<td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
9797
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
9898
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
99-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
100-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
99+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
100+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
101101
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
102102
<title>col_vals_lte</title>
103103
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -108,7 +108,10 @@
108108
</g>
109109
</svg>
110110
</div>
111-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_le()</span>
111+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
112+
<div>col_vals_le()</div>
113+
</div>
114+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
112115
</td>
113116
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">high_floats</td>
114117
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">100</td>
@@ -134,8 +137,8 @@
134137
<td style="height: 40px; background-color: #4CA64C66; color: transparent;font-size: 0px; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">#4CA64C66</td>
135138
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_right">2</td>
136139
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">
137-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
138-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
140+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
141+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
139142
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
140143
<title>col_vals_gt</title>
141144
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -146,7 +149,10 @@
146149
</g>
147150
</svg>
148151
</div>
149-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_gt()</span>
152+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
153+
<div>col_vals_gt()</div>
154+
</div>
155+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
150156
</td>
151157
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; background-color: #F2F2F2; background-color: #FFC1C159; color: #B22222;" class="gt_row gt_left">Contains(text='not_present', case_sensitive=False)</td>
152158
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">10</td>
@@ -172,8 +178,8 @@
172178
<td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
173179
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">3</td>
174180
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
175-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
176-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
181+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
182+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
177183
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
178184
<title>col_vals_lt</title>
179185
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -184,7 +190,10 @@
184190
</g>
185191
</svg>
186192
</div>
187-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_lt()</span>
193+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
194+
<div>col_vals_lt()</div>
195+
</div>
196+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
188197
</td>
189198
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">low_numbers</td>
190199
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">5</td>

tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_pl_variable_names/selector_helper_functions_no_match.html

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@
9696
<td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
9797
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
9898
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
99-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
100-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
99+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
100+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
101101
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
102102
<title>col_vals_lte</title>
103103
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -108,7 +108,10 @@
108108
</g>
109109
</svg>
110110
</div>
111-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_le()</span>
111+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
112+
<div>col_vals_le()</div>
113+
</div>
114+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
112115
</td>
113116
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">high_floats</td>
114117
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">100</td>
@@ -134,8 +137,8 @@
134137
<td style="height: 40px; background-color: #4CA64C66; color: transparent;font-size: 0px; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">#4CA64C66</td>
135138
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_right">2</td>
136139
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">
137-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
138-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
140+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
141+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
139142
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
140143
<title>col_vals_gt</title>
141144
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -146,7 +149,10 @@
146149
</g>
147150
</svg>
148151
</div>
149-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_gt()</span>
152+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
153+
<div>col_vals_gt()</div>
154+
</div>
155+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
150156
</td>
151157
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; background-color: #F2F2F2; background-color: #FFC1C159; color: #B22222;" class="gt_row gt_left">Contains(text='not_present', case_sensitive=False)</td>
152158
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; background-color: #F2F2F2; background-color: #FFC1C159;" class="gt_row gt_left">10</td>
@@ -172,8 +178,8 @@
172178
<td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
173179
<td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">3</td>
174180
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
175-
<div style="margin:0;padding:0;display:inline-block;height:30px;vertical-align:middle;">
176-
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
181+
<div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
182+
<!--?xml version="1.0" encoding="UTF-8"?--><?xml version="1.0" encoding="UTF-8"?>
177183
<svg width="30px" height="30px" viewBox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
178184
<title>col_vals_lt</title>
179185
<g id="All-Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
@@ -184,7 +190,10 @@
184190
</g>
185191
</svg>
186192
</div>
187-
<span style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size:11px;"> col_vals_lt()</span>
193+
<div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
194+
<div>col_vals_lt()</div>
195+
</div>
196+
<div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"></div>
188197
</td>
189198
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">low_numbers</td>
190199
<td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">5</td>

0 commit comments

Comments
 (0)