pointblank 0.11.6__py3-none-any.whl → 0.12.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pointblank/__init__.py +2 -0
- pointblank/_constants.py +0 -1
- pointblank/_interrogation.py +181 -38
- pointblank/_utils.py +29 -2
- pointblank/assistant.py +9 -0
- pointblank/cli.py +39 -24
- pointblank/data/api-docs.txt +658 -29
- pointblank/schema.py +17 -0
- pointblank/segments.py +163 -0
- pointblank/validate.py +317 -56
- {pointblank-0.11.6.dist-info → pointblank-0.12.0.dist-info}/METADATA +58 -5
- {pointblank-0.11.6.dist-info → pointblank-0.12.0.dist-info}/RECORD +16 -15
- {pointblank-0.11.6.dist-info → pointblank-0.12.0.dist-info}/WHEEL +0 -0
- {pointblank-0.11.6.dist-info → pointblank-0.12.0.dist-info}/entry_points.txt +0 -0
- {pointblank-0.11.6.dist-info → pointblank-0.12.0.dist-info}/licenses/LICENSE +0 -0
- {pointblank-0.11.6.dist-info → pointblank-0.12.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pointblank
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.0
|
|
4
4
|
Summary: Find out if your data is what you think it is.
|
|
5
5
|
Author-email: Richard Iannone <riannone@me.com>
|
|
6
6
|
License: MIT License
|
|
@@ -43,7 +43,7 @@ License-File: LICENSE
|
|
|
43
43
|
Requires-Dist: commonmark>=0.9.1
|
|
44
44
|
Requires-Dist: importlib-metadata
|
|
45
45
|
Requires-Dist: great_tables>=0.17.0
|
|
46
|
-
Requires-Dist: narwhals>=
|
|
46
|
+
Requires-Dist: narwhals>=2.0.1
|
|
47
47
|
Requires-Dist: typing_extensions>=3.10.0.0
|
|
48
48
|
Requires-Dist: requests>=2.31.0
|
|
49
49
|
Requires-Dist: click>=8.0.0
|
|
@@ -53,6 +53,8 @@ Provides-Extra: pd
|
|
|
53
53
|
Requires-Dist: pandas>=2.2.3; extra == "pd"
|
|
54
54
|
Provides-Extra: pl
|
|
55
55
|
Requires-Dist: polars>=1.24.0; extra == "pl"
|
|
56
|
+
Provides-Extra: pyspark
|
|
57
|
+
Requires-Dist: pyspark==3.5.6; extra == "pyspark"
|
|
56
58
|
Provides-Extra: generate
|
|
57
59
|
Requires-Dist: chatlas>=0.3.0; extra == "generate"
|
|
58
60
|
Requires-Dist: anthropic[bedrock]>=0.45.2; extra == "generate"
|
|
@@ -70,8 +72,6 @@ Provides-Extra: mssql
|
|
|
70
72
|
Requires-Dist: ibis-framework[mssql]>=9.5.0; extra == "mssql"
|
|
71
73
|
Provides-Extra: postgres
|
|
72
74
|
Requires-Dist: ibis-framework[postgres]>=9.5.0; extra == "postgres"
|
|
73
|
-
Provides-Extra: pyspark
|
|
74
|
-
Requires-Dist: ibis-framework[pyspark]>=9.5.0; extra == "pyspark"
|
|
75
75
|
Provides-Extra: snowflake
|
|
76
76
|
Requires-Dist: ibis-framework[snowflake]>=9.5.0; extra == "snowflake"
|
|
77
77
|
Provides-Extra: sqlite
|
|
@@ -83,6 +83,7 @@ Requires-Dist: nbformat>=5.10.4; extra == "docs"
|
|
|
83
83
|
Requires-Dist: quartodoc>=0.8.1; python_version >= "3.9" and extra == "docs"
|
|
84
84
|
Requires-Dist: pandas>=2.2.3; extra == "docs"
|
|
85
85
|
Requires-Dist: polars>=1.17.1; extra == "docs"
|
|
86
|
+
Requires-Dist: pyspark==3.5.6; extra == "docs"
|
|
86
87
|
Dynamic: license-file
|
|
87
88
|
|
|
88
89
|
<div align="center">
|
|
@@ -236,6 +237,48 @@ validation.get_step_report(i=3).show("browser") # Get failing records from step
|
|
|
236
237
|
|
|
237
238
|
<br>
|
|
238
239
|
|
|
240
|
+
## YAML Configuration
|
|
241
|
+
|
|
242
|
+
For teams that need portable, version-controlled validation workflows, Pointblank supports YAML configuration files. This makes it easy to share validation logic across different environments and team members, ensuring everyone is on the same page.
|
|
243
|
+
|
|
244
|
+
**validation.yaml**
|
|
245
|
+
|
|
246
|
+
```yaml
|
|
247
|
+
validate:
|
|
248
|
+
data: small_table
|
|
249
|
+
tbl_name: "small_table"
|
|
250
|
+
label: "Getting started validation"
|
|
251
|
+
|
|
252
|
+
steps:
|
|
253
|
+
- col_vals_gt:
|
|
254
|
+
columns: "d"
|
|
255
|
+
value: 100
|
|
256
|
+
- col_vals_le:
|
|
257
|
+
columns: "c"
|
|
258
|
+
value: 5
|
|
259
|
+
- col_exists:
|
|
260
|
+
columns: ["date", "date_time"]
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Execute the YAML validation**
|
|
264
|
+
|
|
265
|
+
```python
|
|
266
|
+
import pointblank as pb
|
|
267
|
+
|
|
268
|
+
# Run validation from YAML configuration
|
|
269
|
+
validation = pb.yaml_interrogate("validation.yaml")
|
|
270
|
+
|
|
271
|
+
# Get the results just like any other validation
|
|
272
|
+
validation.get_tabular_report().show()
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
This approach is perfect for:
|
|
276
|
+
|
|
277
|
+
- **CI/CD pipelines**: Store validation rules alongside your code
|
|
278
|
+
- **Team collaboration**: Share validation logic in a readable format
|
|
279
|
+
- **Environment consistency**: Use the same validation across dev, staging, and production
|
|
280
|
+
- **Documentation**: YAML files serve as living documentation of your data quality requirements
|
|
281
|
+
|
|
239
282
|
## Command Line Interface (CLI)
|
|
240
283
|
|
|
241
284
|
Pointblank includes a powerful CLI utility called `pb` that lets you run data validation workflows directly from the command line. Perfect for CI/CD pipelines, scheduled data quality checks, or quick validation tasks.
|
|
@@ -263,6 +306,12 @@ pb scan "duckdb:///data/sales.ddb::customers"
|
|
|
263
306
|
**Run Essential Validations**
|
|
264
307
|
|
|
265
308
|
```bash
|
|
309
|
+
# Run validation from YAML configuration file
|
|
310
|
+
pb run validation.yaml
|
|
311
|
+
|
|
312
|
+
# Run validation from Python file
|
|
313
|
+
pb run validation.py
|
|
314
|
+
|
|
266
315
|
# Check for duplicate rows
|
|
267
316
|
pb validate small_table --check rows-distinct
|
|
268
317
|
|
|
@@ -279,8 +328,12 @@ pb validate small_table --check col-vals-gt --column a --value 5 --show-extract
|
|
|
279
328
|
**Integrate with CI/CD**
|
|
280
329
|
|
|
281
330
|
```bash
|
|
282
|
-
# Use exit codes for automation (0 = pass, 1 = fail)
|
|
331
|
+
# Use exit codes for automation in one-liner validations (0 = pass, 1 = fail)
|
|
283
332
|
pb validate small_table --check rows-distinct --exit-code
|
|
333
|
+
|
|
334
|
+
# Run validation workflows with exit codes
|
|
335
|
+
pb run validation.yaml --exit-code
|
|
336
|
+
pb run validation.py --exit-code
|
|
284
337
|
```
|
|
285
338
|
|
|
286
339
|
Click the following headings to see some video demonstrations of the CLI:
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
pointblank/__init__.py,sha256=
|
|
2
|
-
pointblank/_constants.py,sha256=
|
|
1
|
+
pointblank/__init__.py,sha256=Qt6HEcSoduSkphatxf2Bqy4KNP-wXssRv9zlEslhTJk,1915
|
|
2
|
+
pointblank/_constants.py,sha256=rB8qTnhabwmSQURevHqokC1pp5lfaWMCzhmbMZ0CP8A,81512
|
|
3
3
|
pointblank/_constants_docs.py,sha256=JBmtt16zTYQ-zaM4ElLExtKs-dKlnN553Ys2ML1Y1C8,2099
|
|
4
4
|
pointblank/_constants_translations.py,sha256=HXcCYmKoMjoaFv-Ym4UWv3AsIVXik2zDyAy7xvTvv0Y,186710
|
|
5
5
|
pointblank/_datascan_utils.py,sha256=EMfeabXm_ZsCUKPROB7rFhyOpjtRs8jcnZ_9nBtMyws,1750
|
|
6
|
-
pointblank/_interrogation.py,sha256=
|
|
6
|
+
pointblank/_interrogation.py,sha256=hTC8G0f_FBzEua_u1ZaDZAtbyf4cuJp2B7ss8TDwz-s,95498
|
|
7
7
|
pointblank/_typing.py,sha256=aItbCbzhbzqjK3lCbL27ltRyXoAH1c3-U6xQdRzg-lU,1594
|
|
8
|
-
pointblank/_utils.py,sha256=
|
|
8
|
+
pointblank/_utils.py,sha256=0UuwPJCJCeo09k9IqZ-oncXAyFvI_1Ntc76CtwbyZYo,29466
|
|
9
9
|
pointblank/_utils_check_args.py,sha256=rFEc1nbCN8ftsQQWVjCNWmQ2QmUDxkfgmoJclrZeTLs,5489
|
|
10
10
|
pointblank/_utils_html.py,sha256=uJWvS9JwQVEZgwsGmScA_u_EBRND75rzUvnJPalbRVs,3731
|
|
11
11
|
pointblank/actions.py,sha256=D6o9B2_ES9PNQg9HZwREacrrt-3A5bhdrBkL1UXz__s,18281
|
|
12
|
-
pointblank/assistant.py,sha256=
|
|
13
|
-
pointblank/cli.py,sha256=
|
|
12
|
+
pointblank/assistant.py,sha256=vcdFgXmdVSiylQgTW3e62c13X3vAicBPjyG8OTZXmGM,15902
|
|
13
|
+
pointblank/cli.py,sha256=p2cO-NKInQ41hqRMy6TNmxOj48pR5vq8s7JTLXfcP4M,228188
|
|
14
14
|
pointblank/column.py,sha256=_FJjpjv760D1p6YGgqbwmKYktouG7AJ2A9uIMYQBTYA,76560
|
|
15
15
|
pointblank/compare.py,sha256=kFd18CehHz7g-2MF1kSmJSdOoAP80q_9PaF6QzHC1ds,866
|
|
16
16
|
pointblank/datascan.py,sha256=nmTcRLW8nAZfvRS_Nf00Wgx4oUX-o6WFOZqLDbedbu8,24563
|
|
17
17
|
pointblank/draft.py,sha256=cusr4fBiNncCKIOU8UwvJcvkBeBuUnqH_UfYp9dtNss,15777
|
|
18
18
|
pointblank/scan_profile.py,sha256=lZU5hlnzznDATNn9W3gNdyuFm05WDP8y1RjDJEcE5zg,10426
|
|
19
19
|
pointblank/scan_profile_stats.py,sha256=qdzoGXB-zi2hmpA4mTz6LLTqMnb-NRG9ndxU9cxS72w,4461
|
|
20
|
-
pointblank/schema.py,sha256=
|
|
20
|
+
pointblank/schema.py,sha256=vwGF8UKy2riRSQzcwatcI6L0t_6ccdbOayrKonvyodE,45777
|
|
21
|
+
pointblank/segments.py,sha256=RXp3lPr3FboVseadNqLgIeoMBh_mykrQSFp1WtV41Yg,5570
|
|
21
22
|
pointblank/tf.py,sha256=8o_8m4i01teulEe3-YYMotSNf3tImjBMInsvdjSAO5Q,8844
|
|
22
23
|
pointblank/thresholds.py,sha256=mybeLzTVdmN04NLKoV-jiSBXsWknwHO0Gox0ttVN_MU,25766
|
|
23
|
-
pointblank/validate.py,sha256=
|
|
24
|
+
pointblank/validate.py,sha256=0AP7Dm9HH0i-gnlZ_d9Wg1abovpO6tPLE3Sn1z7ju0Y,693119
|
|
24
25
|
pointblank/yaml.py,sha256=4DrkOJwCQ3CaXQ7ESNIW72pp-dL1ctlX6ONU30Vh1Fs,57901
|
|
25
|
-
pointblank/data/api-docs.txt,sha256=
|
|
26
|
+
pointblank/data/api-docs.txt,sha256=0wXk__xYwgKeS24ZjbaTPFeJ3ZO7AIyMQoFClCcvPTc,529897
|
|
26
27
|
pointblank/data/game_revenue-duckdb.zip,sha256=tKIVx48OGLYGsQPS3h5AjA2Nyq_rfEpLCjBiFUWhagU,35880
|
|
27
28
|
pointblank/data/game_revenue.zip,sha256=7c9EvHLyi93CHUd4p3dM4CZ-GucFCtXKSPxgLojL32U,33749
|
|
28
29
|
pointblank/data/global_sales-duckdb.zip,sha256=2ok_cvJ1ZuSkXnw0R6_OkKYRTWhJ-jJEMq2VYsv5fqY,1336390
|
|
@@ -32,9 +33,9 @@ pointblank/data/nycflights.zip,sha256=yVjbUaKUz2LydSdF9cABuir0VReHBBgV7shiNWSd0m
|
|
|
32
33
|
pointblank/data/polars-api-docs.txt,sha256=KGcS-BOtUs9zgpkWfXD-GFdFh4O_zjdkpX7msHjztLg,198045
|
|
33
34
|
pointblank/data/small_table-duckdb.zip,sha256=BhTaZ2CRS4-9Z1uVhOU6HggvW3XCar7etMznfENIcOc,2028
|
|
34
35
|
pointblank/data/small_table.zip,sha256=lmFb90Nb-v5X559Ikjg31YLAXuRyMkD9yLRElkXPMzQ,472
|
|
35
|
-
pointblank-0.
|
|
36
|
-
pointblank-0.
|
|
37
|
-
pointblank-0.
|
|
38
|
-
pointblank-0.
|
|
39
|
-
pointblank-0.
|
|
40
|
-
pointblank-0.
|
|
36
|
+
pointblank-0.12.0.dist-info/licenses/LICENSE,sha256=apLF-HWPNU7pT5bmf5KmZpD5Cklpy2u-BN_0xBoRMLY,1081
|
|
37
|
+
pointblank-0.12.0.dist-info/METADATA,sha256=eKVOvRdSQMDFuvOKyMjHZ4s5P3vsVmQaqO7lZCR7P3g,19246
|
|
38
|
+
pointblank-0.12.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
39
|
+
pointblank-0.12.0.dist-info/entry_points.txt,sha256=GqqqOTOH8uZe22wLcvYjzpizqk_j4MNcUo2YM14ryCw,42
|
|
40
|
+
pointblank-0.12.0.dist-info/top_level.txt,sha256=-wHrS1SvV8-nhvc3w-PPYs1C1WtEc1pK-eGjubbCCKc,11
|
|
41
|
+
pointblank-0.12.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|