Skip to content

Commit 226b69d

Browse files
committed
deploy: 230f130
1 parent 81de722 commit 226b69d

239 files changed

Lines changed: 2021 additions & 2045 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

blog/all-about-actions/index.html

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

blog/all-about-actions/index.md

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

blog/index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@
263263
</thead>
264264
<tbody class="list">
265265

266-
<tr data-index="0" data-listing-date-sort="1748995200000" data-listing-file-modified-sort="1776227991564" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="24" data-listing-word-count-sort="4706" data-listing-title-sort="Data Validation Libraries for Polars (2025 Edition)" data-listing-filename-sort="index.qmd">
266+
<tr data-index="0" data-listing-date-sort="1748995200000" data-listing-file-modified-sort="1776296206321" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="24" data-listing-word-count-sort="4706" data-listing-title-sort="Data Validation Libraries for Polars (2025 Edition)" data-listing-filename-sort="index.qmd">
267267
<td>
268268
<span class="listing-date">Jun 4, 2025</span>
269269
</td>
@@ -276,7 +276,7 @@
276276

277277
</tr>
278278

279-
<tr data-index="1" data-listing-date-sort="1748908800000" data-listing-file-modified-sort="1776227991563" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="251" data-listing-title-sort="C'mon C'mon: Let's Do a Pointblank Workshop!" data-listing-filename-sort="index.qmd">
279+
<tr data-index="1" data-listing-date-sort="1748908800000" data-listing-file-modified-sort="1776296206320" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="251" data-listing-title-sort="C'mon C'mon: Let's Do a Pointblank Workshop!" data-listing-filename-sort="index.qmd">
280280
<td>
281281
<span class="listing-date">Jun 3, 2025</span>
282282
</td>
@@ -289,7 +289,7 @@
289289

290290
</tr>
291291

292-
<tr data-index="2" data-listing-date-sort="1747699200000" data-listing-file-modified-sort="1776227991564" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="814" data-listing-title-sort="Overhauling Pointblank's User Guide" data-listing-filename-sort="index.qmd">
292+
<tr data-index="2" data-listing-date-sort="1747699200000" data-listing-file-modified-sort="1776296206321" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="814" data-listing-title-sort="Overhauling Pointblank's User Guide" data-listing-filename-sort="index.qmd">
293293
<td>
294294
<span class="listing-date">May 20, 2025</span>
295295
</td>
@@ -302,7 +302,7 @@
302302

303303
</tr>
304304

305-
<tr data-index="3" data-listing-date-sort="1746144000000" data-listing-file-modified-sort="1776227991563" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2204" data-listing-title-sort="Level Up Your Data Validation with `Actions` and `FinalActions`" data-listing-filename-sort="index.qmd">
305+
<tr data-index="3" data-listing-date-sort="1746144000000" data-listing-file-modified-sort="1776296206319" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2204" data-listing-title-sort="Level Up Your Data Validation with `Actions` and `FinalActions`" data-listing-filename-sort="index.qmd">
306306
<td>
307307
<span class="listing-date">May 2, 2025</span>
308308
</td>
@@ -315,7 +315,7 @@
315315

316316
</tr>
317317

318-
<tr data-index="4" data-listing-date-sort="1743724800000" data-listing-file-modified-sort="1776227991563" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2026" data-listing-title-sort="Introducing Pointblank" data-listing-filename-sort="index.qmd">
318+
<tr data-index="4" data-listing-date-sort="1743724800000" data-listing-file-modified-sort="1776296206320" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2026" data-listing-title-sort="Introducing Pointblank" data-listing-filename-sort="index.qmd">
319319
<td>
320320
<span class="listing-date">Apr 4, 2025</span>
321321
</td>

blog/intro-pointblank/index.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ <h1>How Pointblank Transforms Your Data Validation Workflow</h1>
259259
<section id="the-data-validation-workflow" class="level1">
260260
<h1>The Data Validation Workflow</h1>
261261
<p>Let’s get right to performing a basic check of a Polars DataFrame. We’ll make use of the included <code>small_table</code> dataset.</p>
262-
<div id="6600d4ed" class="cell" data-execution_count="1">
262+
<div id="81e6148b" class="cell" data-execution_count="1">
263263
<div class="sourceCode cell-code" id="cb2"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> pointblank <span class="im">as</span> pb</span>
264264
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
265265
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a>small_table <span class="op">=</span> pb.load_dataset(dataset<span class="op">=</span><span class="st">"small_table"</span>, tbl_type<span class="op">=</span><span class="st">"polars"</span>)</span>
@@ -547,7 +547,7 @@ <h1>The Data Validation Workflow</h1>
547547
<tfoot class="gt_sourcenotes">
548548

549549
<tr>
550-
<td class="gt_sourcenote" colspan="14" style="text-align: left;"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 04:54:19 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 04:54:19 UTC</span></div></td>
550+
<td class="gt_sourcenote" colspan="14" style="text-align: left;"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 23:51:05 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 23:51:05 UTC</span></div></td>
551551
</tr>
552552

553553
</tfoot>
@@ -571,7 +571,7 @@ <h1>The Data Validation Workflow</h1>
571571
<p>All of those numbers under the <code>UNITS</code>, <code>PASS</code>, and <code>FAIL</code> columns have to do with test units, a measure of central importance in Pointblank. Each validation step will execute a type of validation test on the target table. For example, a <a href="../../reference/Validate.col_vals_lt.html#pointblank.Validate.col_vals_lt" class="gdls-link"><code>col_vals_lt()</code></a> validation step can test that each value in a column is less than a specified number. The key finding that’s reported as a result of this test is the number of test units that pass or fail. This little diagram explains what those numbers mean:</p>
572572
<p><img src="validation-test-units.png" class="img-fluid" data-text-align="center"></p>
573573
<p>Failing test units can be tied to threshold levels, which can provide a better indication of whether failures should raise some basic awareness or spur you into action. Here’s a validation workflow that sets three failure threshold levels that signal the severity of data quality problems:</p>
574-
<div id="364f04dd" class="cell" data-execution_count="2">
574+
<div id="c7511e23" class="cell" data-execution_count="2">
575575
<div class="sourceCode cell-code" id="cb3"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> pointblank <span class="im">as</span> pb</span>
576576
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> polars <span class="im">as</span> pl</span>
577577
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a></span>
@@ -1132,7 +1132,7 @@ <h1>The Data Validation Workflow</h1>
11321132
<tfoot class="gt_sourcenotes">
11331133

11341134
<tr>
1135-
<td class="gt_sourcenote" colspan="14" style="text-align: left;"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 04:54:19 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 04:54:19 UTC</span></div></td>
1135+
<td class="gt_sourcenote" colspan="14" style="text-align: left;"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 23:51:05 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 23:51:05 UTC</span></div></td>
11361136
</tr>
11371137

11381138

@@ -1157,7 +1157,7 @@ <h1>The Data Validation Workflow</h1>
11571157
<h1>Reporting for Individual Validation Steps</h1>
11581158
<p>The second validation step of the previous data validation showed 18 failing test units. That translates to 18 spots in a 2,000 row DataFrame where a data quality assertion failed. We often would like to know exactly what that failing data is; it’s usually the next step toward addressing data quality issues.</p>
11591159
<p>Pointblank offers a method that gives you a tabular report on a specific step: <a href="../../reference/Validate.get_step_report.html#pointblank.Validate.get_step_report" class="gdls-link"><code>get_step_report()</code></a>. The previous tables you’ve seen (the validation report table) dealt with providing a summary of all validation steps. In contrast, a focused report on a single step can help to get to the heart of a data quality issue. Here’s how that looks for Step 2:</p>
1160-
<div id="2b9e25b8" class="cell" data-execution_count="3">
1160+
<div id="2fde91e7" class="cell" data-execution_count="3">
11611161
<div class="sourceCode cell-code" id="cb4"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>validation_2.get_step_report(i<span class="op">=</span><span class="dv">2</span>)</span></code></pre></div>
11621162
<div class="cell-output cell-output-display" data-execution_count="3">
11631163
<div id="pb_preview_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
@@ -1401,7 +1401,7 @@ <h1>Reporting for Individual Validation Steps</h1>
14011401
</div>
14021402
<p>This report provides the 18 rows where the failure occurred. If you scroll the table to the right you’ll see the column that underwent testing (<code>session_duration</code>) is highlighted in red. All of these values are <code>5.0</code> or less, which is in violation of the assertion (in the header) that <code>session_duration &gt; 5</code>.</p>
14031403
<p>These types of bespoke reports are useful for finding a needle in a haystack. Another good use for a step report is when validating a table schema. Using the <a href="../../reference/Validate.col_schema_match.html#pointblank.Validate.col_schema_match" class="gdls-link"><code>col_schema_match()</code></a> validation method with a table schema prepared with the <a href="../../reference/Schema.html#pointblank.Schema" class="gdls-link"><code>Schema</code></a> class allows us to verify our understanding of the table structure. Here is a validation that performs a schema validation with the <code>small_table</code> dataset prepared as a DuckDB table:</p>
1404-
<div id="8ed9e5cd" class="cell" data-execution_count="4">
1404+
<div id="fd594c0c" class="cell" data-execution_count="4">
14051405
<div class="sourceCode cell-code" id="cb5"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="im">import</span> pointblank <span class="im">as</span> pb</span>
14061406
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a></span>
14071407
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a><span class="co"># Create a schema for the target table (`small_table` as a DuckDB table)</span></span>
@@ -1578,7 +1578,7 @@ <h1>Reporting for Individual Validation Steps</h1>
15781578
<tfoot class="gt_sourcenotes">
15791579

15801580
<tr>
1581-
<td class="gt_sourcenote" colspan="14" style="text-align: left;"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 04:54:20 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 04:54:20 UTC</span></div></td>
1581+
<td class="gt_sourcenote" colspan="14" style="text-align: left;"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 23:51:06 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-04-15 23:51:06 UTC</span></div></td>
15821582
</tr>
15831583

15841584

@@ -1780,7 +1780,7 @@ <h1>Reporting for Individual Validation Steps</h1>
17801780
</div>
17811781
</div>
17821782
<p>This step fails, but the validation report table doesn’t tell us how (or where). Using <a href="../../reference/Validate.get_step_report.html#pointblank.Validate.get_step_report" class="gdls-link"><code>get_step_report()</code></a> will show us what the underlying issues are:</p>
1783-
<div id="c6463fb7" class="cell" data-execution_count="5">
1783+
<div id="050289c8" class="cell" data-execution_count="5">
17841784
<div class="sourceCode cell-code" id="cb6"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a>validation_3.get_step_report(i<span class="op">=</span><span class="dv">1</span>)</span></code></pre></div>
17851785
<div class="cell-output cell-output-display" data-execution_count="5">
17861786
<div id="pb_step_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">

0 commit comments

Comments
 (0)