pointblank 0.9.5__tar.gz → 0.9.6__tar.gz
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-0.9.5 → pointblank-0.9.6}/PKG-INFO +3 -1
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/_quarto.yml +1 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/advanced-in-sidebar.png +0 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/breadth-and-depth.png +0 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/explanation-of-visual.png +0 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/index.qmd +154 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/links-in-guide.png +0 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/segments.png +0 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/step-report.png +0 -0
- pointblank-0.9.6/docs/blog/overhauled-user-guide/validation-three-things.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/installation.qmd +3 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_constants.py +2 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_utils.py +2 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/actions.py +3 -3
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/column.py +4 -4
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/api-docs.txt +251 -13
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/thresholds.py +2 -2
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/validate.py +169 -5
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank.egg-info/PKG-INFO +3 -1
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank.egg-info/SOURCES.txt +8 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank.egg-info/requires.txt +3 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pyproject.toml +1 -2
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_validate.py +151 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/CODE_OF_CONDUCT.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/ISSUE_TEMPLATE/bug.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/SECURITY.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/workflows/ci-docs.yaml +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/workflows/ci-tests.yaml +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.github/workflows/code-checks.yaml +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.gitignore +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.pre-commit-config.yaml +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/.vscode/settings.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/CITATION.cff +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/CONTRIBUTING.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/LICENSE +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/Makefile +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/README.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/game_revenue.csv +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/global_sales.csv +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/global_sales_dataset.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/nycflights.csv +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/small_table.csv +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/x-01-parquet.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/x-02-duckdb.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/data_raw/x-03-sqlite.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/.gitignore +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/_extensions/machow/interlinks/.gitignore +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/_extensions/machow/interlinks/_extension.yml +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/_extensions/machow/interlinks/interlinks.lua +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/fav-logo.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.de.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.es.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.fr.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.it.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.ja.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.ko.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.nl.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.pt-BR.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-sales-data.zh-CN.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-step-report.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank-tabular-report.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/pointblank_logo.svg +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/validation-table-diagram.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/assets/validation-test-units.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/all-about-actions/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/intro-pointblank/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/intro-pointblank/pointblank-localized.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/intro-pointblank/step_report.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/intro-pointblank/validation-table-diagram.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/intro-pointblank/validation-test-units.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/blog/pointblank_blog_logo.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/01-starter/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/02-advanced/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/03-data-extracts/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/04-sundered-data/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/05-step-report-column-check/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/06-step-report-schema-check/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/apply-checks-to-several-columns/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/check-row-column-counts/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/checks-for-missing/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/col-vals-custom-expr/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/column-selector-functions/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/comparisons-across-columns/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/data/game_revenue.parquet +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/expect-no-duplicate-rows/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/expect-no-duplicate-values/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/expect-text-pattern/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/failure-thresholds/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/img/advanced_validation.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/img/data_extracts.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/img/starter_validation.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/img/step_report_column_schema.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/img/step_report_column_values.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/img/sundered_data.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/mutate-table-in-step/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/numeric-comparisons/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/schema-check/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/set-membership/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/demos/using-parquet-data/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/styles.css +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/actions.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/assertions.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/briefs.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/col-summary-tbl.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/column-selection-patterns.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/draft-validation.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/expressions.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/extracts.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/index.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/langs.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/missing-vals-tbl.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/preprocessing.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/preview.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/schema-validation.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/segmentation.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/step-reports.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/sundering.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/thresholds.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/validation-methods.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/docs/user-guide/validation-overview.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/images/pointblank-tabular-report.png +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/images/pointblank_logo.svg +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/__init__.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_constants_docs.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_constants_translations.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_interrogation.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_typing.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_utils_check_args.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/_utils_html.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/assistant.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/game_revenue-duckdb.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/game_revenue.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/global_sales-duckdb.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/global_sales.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/nycflights-duckdb.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/nycflights.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/polars-api-docs.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/small_table-duckdb.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/data/small_table.zip +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/datascan.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/draft.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/schema.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank/tf.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank.egg-info/dependency_links.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/pointblank.egg-info/top_level.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/setup.cfg +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/__init__.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/manual_tests/schema_step_reports.qmd +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_datascan/test_col_summary_tbl_duckdb_snap/col_summary_html_duckdb.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_datascan/test_col_summary_tbl_pandas_snap/col_summary_html_pandas.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_datascan/test_col_summary_tbl_polars_snap/col_summary_html_polars.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_comprehensive_validation_report_html_snap/comprehensive_validation_report.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_01/schema_step_report_01-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_01_1/schema_step_report_01-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_01_2/schema_step_report_01-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_01_3/schema_step_report_01-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_02/schema_step_report_02-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_02_1/schema_step_report_02-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_02_2/schema_step_report_02-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_02_3/schema_step_report_02-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_03/schema_step_report_03-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_03_1/schema_step_report_03-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_03_2/schema_step_report_03-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_03_3/schema_step_report_03-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_04/schema_step_report_04-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_05/schema_step_report_05-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_06/schema_step_report_06-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_07/schema_step_report_07-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_08/schema_step_report_08-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_09/schema_step_report_09-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_10/schema_step_report_10-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_11/schema_step_report_11-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_12/schema_step_report_12-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_13/schema_step_report_13-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_14/schema_step_report_14-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_14_1/schema_step_report_14-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_15/schema_step_report_15-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_15_1/schema_step_report_15-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_16/schema_step_report_16-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_16_1/schema_step_report_16-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_17/schema_step_report_17-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_17_1/schema_step_report_17-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_18/schema_step_report_18-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_18_1/schema_step_report_18-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_19/schema_step_report_19-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_19_1/schema_step_report_19-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_20/schema_step_report_20-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_20_1/schema_step_report_20-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_21/schema_step_report_21-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_21_1/schema_step_report_21-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_21_2/schema_step_report_21-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_21_3/schema_step_report_21-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_22/schema_step_report_22-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_22_1/schema_step_report_22-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_23/schema_step_report_23-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_23_1/schema_step_report_23-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_24/schema_step_report_24-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_24_1/schema_step_report_24-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_24_2/schema_step_report_24-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_24_3/schema_step_report_24-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_25/schema_step_report_25-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_25_1/schema_step_report_25-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_25_2/schema_step_report_25-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_25_3/schema_step_report_25-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_25_4/schema_step_report_25-4.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_step_report_25_5/schema_step_report_25-5.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_01-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_02-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_03-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_04-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_05-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_06-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_07-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_08-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_09-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_10-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_11-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_12-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_13-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-0.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-1.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-2.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-3.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-4.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-5.txt +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_no_interrogation_validation_report_html_snap/no_interrogation_validation_report.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_no_steps_validation_report_html_snap/no_steps_validation_report.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_briefs_global_local_html/validation_report_briefs_global_local.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_briefs_html/validation_report_with_briefs.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_segments_html/duckdb/validation_report_segments.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_segments_html/pandas/validation_report_segments.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_segments_html/polars/validation_report_segments.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/polars/validation_report_segments_with_pre.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/validation_report_segments_with_pre.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_memtable_variable_names/selector_helper_functions_no_match.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_pd_variable_names/selector_helper_functions_no_match.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_pl_variable_names/selector_helper_functions_no_match.html +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_dates_times_text.ddb +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_dates_times_text.parquet +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_dates_times_text.sqlite +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_true_dates_times.ddb +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_xyz.ddb +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_xyz.parquet +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_xyz.sqlite +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_xyz_missing.ddb +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_xyz_missing.parquet +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/tbl_files/tbl_xyz_missing.sqlite +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test__interrogation.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test__utils.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test__utils_check_args.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_actions.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_assistant.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_column.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_datascan.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_draft.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_schema.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_tf.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/tests/test_thresholds.py +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.ar.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.de.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.es.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.fr.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.hi.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.it.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.ja.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.ko.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.nl.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.pt-BR.md +0 -0
- {pointblank-0.9.5 → pointblank-0.9.6}/translations/README.zh-CN.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pointblank
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.6
|
|
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
|
|
@@ -55,6 +55,8 @@ Requires-Dist: chatlas>=0.3.0; extra == "generate"
|
|
|
55
55
|
Requires-Dist: anthropic[bedrock]>=0.45.2; extra == "generate"
|
|
56
56
|
Requires-Dist: openai>=1.63.0; extra == "generate"
|
|
57
57
|
Requires-Dist: shiny>=1.3.0; extra == "generate"
|
|
58
|
+
Provides-Extra: bigquery
|
|
59
|
+
Requires-Dist: ibis-framework[bigquery]>=9.5.0; extra == "bigquery"
|
|
58
60
|
Provides-Extra: databricks
|
|
59
61
|
Requires-Dist: ibis-framework[databricks]>=9.5.0; extra == "databricks"
|
|
60
62
|
Provides-Extra: duckdb
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
jupyter: python3
|
|
3
|
+
html-table-processing: none
|
|
4
|
+
title: Overhauling Pointblank's User Guide
|
|
5
|
+
author: Rich Iannone and Michael Chow
|
|
6
|
+
date: 2025-05-20
|
|
7
|
+
freeze: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
```{python}
|
|
11
|
+
#| echo: false
|
|
12
|
+
#| output: false
|
|
13
|
+
import pointblank as pb
|
|
14
|
+
pb.config(report_incl_footer=False)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The Pointblank documentation just got a major upgrade! We've completely overhauled our
|
|
18
|
+
[**User Guide**](../../user-guide/index.qmd). Our goal was to enable readers to start fast on
|
|
19
|
+
validation and work through the many pieces needed in realistic situations.
|
|
20
|
+
|
|
21
|
+
We realized that at the core of Pointblank is the validation plan. Its made up of rules, results,
|
|
22
|
+
and steps.
|
|
23
|
+
|
|
24
|
+
{width=80%}
|
|
25
|
+
|
|
26
|
+
For example, the first row is a step that checks whether values in column 'a' are less than `10`.
|
|
27
|
+
The `COLUMNS` and `VALUES` column contain the rules used to configure the step. The `PASS` column
|
|
28
|
+
for the first row indicates that all 13 values in the column passed.
|
|
29
|
+
|
|
30
|
+
In this post, we'll cover:
|
|
31
|
+
|
|
32
|
+
- using a spiral sequence to balance introductory breadth with subsequent depth
|
|
33
|
+
- improving examples with direct explanatory text
|
|
34
|
+
- rounding out API coverage for cross-linking
|
|
35
|
+
- surfacing advanced topics
|
|
36
|
+
|
|
37
|
+
Let us walk you through the key improvements in our refreshed [**User Guide**](../../user-guide/index.qmd)!
|
|
38
|
+
|
|
39
|
+
## Introduction: Embracing the Spiral Sequence
|
|
40
|
+
|
|
41
|
+
We chose to use a spiral sequence for our [Introduction](../../user-guide/index.qmd) and
|
|
42
|
+
*Validation Plan* section. The [Introduction](../../user-guide/index.qmd) quickly covers parts of
|
|
43
|
+
validation plan, while each article of the *Validation Plan* section dives
|
|
44
|
+
deeper into different aspects of defining validation rules.
|
|
45
|
+
|
|
46
|
+
<div style="text-align: center;">
|
|
47
|
+
|
|
48
|
+
{width=50%}
|
|
49
|
+
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
The introduction does a broad pass on the validation plan table diagram, identifying the core pieces
|
|
53
|
+
of the output and then giving a quick overview of the code that produced it. This sets people up for
|
|
54
|
+
the *Validation Plan* section in the guide, where each concept is discussed in depth.
|
|
55
|
+
|
|
56
|
+
## Improving Examples
|
|
57
|
+
|
|
58
|
+
Examples are everywhere in the [**User Guide**](../../user-guide/index.qmd). We've tightened up our
|
|
59
|
+
approach to examples by:
|
|
60
|
+
|
|
61
|
+
- presenting example code, output, or both, early in each section
|
|
62
|
+
- showing the actual output you'll see in your environment
|
|
63
|
+
- following up with explanatory text that guides attention to specific places in the output
|
|
64
|
+
|
|
65
|
+
This approach makes learning more intuitive. Here's an excerpt that shows this in practice.
|
|
66
|
+
|
|
67
|
+
{width=80%}
|
|
68
|
+
|
|
69
|
+
The blue arrow marks the flow of reading and the red arrows map where we anticipate people will look
|
|
70
|
+
from the text to the output. Focusing explicitly on where we think attention will go forces us to
|
|
71
|
+
think carefully about exactly what readers will get from the output. The hope is that readers get to
|
|
72
|
+
work more quickly on new concepts.
|
|
73
|
+
|
|
74
|
+
## Rounding Out API Coverage
|
|
75
|
+
|
|
76
|
+
Documentation has to balance jobs between a user guide and an API Reference:
|
|
77
|
+
|
|
78
|
+
- User Guide: explains concepts that cut across functions (like common arguments across
|
|
79
|
+
[validation methods](/user-guide/validation-methods.qmd))
|
|
80
|
+
- API Reference: explains each individual function
|
|
81
|
+
|
|
82
|
+
Importantly, user guides often link to the API reference so, as part of this work, we made sure that
|
|
83
|
+
all individual API entries are well-documented and linked to from the guide.
|
|
84
|
+
Here's an excerpt from the [**User Guide**](../../user-guide/index.qmd) that shows links marked:
|
|
85
|
+
|
|
86
|
+
{width=80%}
|
|
87
|
+
|
|
88
|
+
## Surfacing Advanced Topics
|
|
89
|
+
|
|
90
|
+
There's a lot of potential slicing and dicing involved in validation, as well as work after
|
|
91
|
+
validation (post interrogation) to make sense of the results. We added pages to the
|
|
92
|
+
[**User Guide**](../../user-guide/index.qmd) for some core situations.
|
|
93
|
+
In this section, I'll highlight two advanced topics we added pages for:
|
|
94
|
+
|
|
95
|
+
- segmentation: splitting a column into groups, and validating each group
|
|
96
|
+
- step reports: view failing cases (e.g., view rows of data that failed validation)
|
|
97
|
+
|
|
98
|
+
These are marked in the [**User Guide**](../../user-guide/index.qmd) sidebar screenshot below:
|
|
99
|
+
|
|
100
|
+
<div style="text-align: center;">
|
|
101
|
+
|
|
102
|
+
{width=35%}
|
|
103
|
+
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
### Segmentation
|
|
107
|
+
|
|
108
|
+
Here's a screenshot of a validation report with two validation steps, one for each segment (`"low"`
|
|
109
|
+
and `"high"`) in the `f` column of the `small_table` dataset.
|
|
110
|
+
|
|
111
|
+
{width=80%}
|
|
112
|
+
|
|
113
|
+
Notice that segments split columns into groups and apply the same validation to each of the groups.
|
|
114
|
+
Each group is given its own step.
|
|
115
|
+
|
|
116
|
+
Each of the 20+ validation methods accept a `segment=` argument. The value of the
|
|
117
|
+
[Segmentation article in the User Guide](../../user-guide/segmentation.qmd) is to describe this
|
|
118
|
+
cross-cutting behavior in a single place.
|
|
119
|
+
|
|
120
|
+
Compare the `segments=` parameter in the API Reference (e.g., look at
|
|
121
|
+
[`col_vals_gt()`](../../reference/Validate.col_vals_gt.qmd)) and the
|
|
122
|
+
[Segmentation article](../../user-guide/segmentation.qmd) to get a feel for how each location
|
|
123
|
+
documents the segments feature.
|
|
124
|
+
|
|
125
|
+
### Step Report
|
|
126
|
+
|
|
127
|
+
Step reports display failing cases (e.g., rows) for a validation step, so you can dig deeper into
|
|
128
|
+
validation failures. Here's a screenshot of a step report for some validation step 2:
|
|
129
|
+
|
|
130
|
+
{width=80%}
|
|
131
|
+
|
|
132
|
+
Notice the arrow pointing to 'Step 2' in the title. Failing values are highlighted in red. Once we
|
|
133
|
+
know we have failures, it's important to take action and discover *why* data is failing. Looking at
|
|
134
|
+
failing cases in step reports often uncovers obvious causes behind failures.
|
|
135
|
+
|
|
136
|
+
The `get_step_report()` entry is one of 50 in the API Reference. Here it is listed the API
|
|
137
|
+
Reference, in the [Interrogation and Reporting section](../../reference/index.qmd#interrogation-and-reporting).
|
|
138
|
+
Critically, it's only one of 20 entries in the [User Guide](../../user-guide/index.qmd), which
|
|
139
|
+
emphasizes its importance in validation workflows.
|
|
140
|
+
|
|
141
|
+
## Looking Forward
|
|
142
|
+
|
|
143
|
+
The refreshed **User Guide** is just the beginning of our documentation improvements. We're
|
|
144
|
+
committed to continuously enhancing our documentation to support your data validation needs.
|
|
145
|
+
|
|
146
|
+
Michael Chow gave feedback on this **User Guide** in preparation for his
|
|
147
|
+
[upcoming talk at SciPy 2025](https://cfp.scipy.org/scipy2025/talk/NRMNDX/).
|
|
148
|
+
|
|
149
|
+
We'd love to hear your feedback on the new User Guide! Feel free to open an issue on our
|
|
150
|
+
[GitHub repository](https://github.com/posit-dev/pointblank/issues) with suggestions, corrections,
|
|
151
|
+
or requests for additional topics you'd like to see covered. You can also join our community
|
|
152
|
+
discussions in the dedicated `#Documentation` channel on our
|
|
153
|
+
[Discord server](https://discord.com/invite/YH7CybCNCQ), where you can share ideas, ask questions,
|
|
154
|
+
and get help directly from the Pointblank team and other users.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -80,6 +80,7 @@ pip install pointblank[duckdb] # DuckDB
|
|
|
80
80
|
pip install pointblank[postgres] # PostgreSQL
|
|
81
81
|
pip install pointblank[mysql] # MySQL
|
|
82
82
|
pip install pointblank[mssql] # Microsoft SQL Server
|
|
83
|
+
pip install pointblank[bigquery] # BigQuery
|
|
83
84
|
pip install pointblank[pyspark] # Apache Spark
|
|
84
85
|
pip install pointblank[databricks] # Databricks
|
|
85
86
|
pip install pointblank[snowflake] # Snowflake
|
|
@@ -96,6 +97,7 @@ uv pip install pointblank[duckdb] # DuckDB
|
|
|
96
97
|
uv pip install pointblank[postgres] # PostgreSQL
|
|
97
98
|
uv pip install pointblank[mysql] # MySQL
|
|
98
99
|
uv pip install pointblank[mssql] # Microsoft SQL Server
|
|
100
|
+
uv pip install pointblank[bigquery] # BigQuery
|
|
99
101
|
uv pip install pointblank[pyspark] # Apache Spark
|
|
100
102
|
uv pip install pointblank[databricks] # Databricks
|
|
101
103
|
uv pip install pointblank[snowflake] # Snowflake
|
|
@@ -112,6 +114,7 @@ conda install -c conda-forge pointblank-duckdb # DuckDB
|
|
|
112
114
|
conda install -c conda-forge pointblank-postgres # PostgreSQL
|
|
113
115
|
conda install -c conda-forge pointblank-mysql # MySQL
|
|
114
116
|
conda install -c conda-forge pointblank-mssql # Microsoft SQL Server
|
|
117
|
+
conda install -c conda-forge pointblank-bigquery # BigQuery
|
|
115
118
|
conda install -c conda-forge pointblank-pyspark # Apache Spark
|
|
116
119
|
conda install -c conda-forge pointblank-databricks # Databricks
|
|
117
120
|
conda install -c conda-forge pointblank-snowflake # Snowflake
|
|
@@ -109,6 +109,7 @@ ROW_BASED_VALIDATION_TYPES = [
|
|
|
109
109
|
]
|
|
110
110
|
|
|
111
111
|
IBIS_BACKENDS = [
|
|
112
|
+
"bigquery",
|
|
112
113
|
"databricks",
|
|
113
114
|
"duckdb",
|
|
114
115
|
"memtable",
|
|
@@ -165,6 +166,7 @@ TABLE_TYPE_STYLES = {
|
|
|
165
166
|
"parquet": {"background": "#3F9FF9", "text": "#FFFFFF", "label": "Parquet"},
|
|
166
167
|
"memtable": {"background": "#2C3E50", "text": "#FFFFFF", "label": "Ibis memtable"},
|
|
167
168
|
"mssql": {"background": "#E2E2E2", "text": "#222222", "label": "MSSQL"},
|
|
169
|
+
"bigquery": {"background": "#4285F4", "text": "#FFFFFF", "label": "BigQuery"},
|
|
168
170
|
"pyspark": {"background": "#E66F21", "text": "#FFFFFF", "label": "Spark DataFrame"},
|
|
169
171
|
"databricks": {"background": "#FF3621", "text": "#FFFFFF", "label": "Databricks"},
|
|
170
172
|
}
|
|
@@ -514,6 +514,8 @@ def _get_api_text() -> str:
|
|
|
514
514
|
"Validate.get_data_extracts",
|
|
515
515
|
"Validate.all_passed",
|
|
516
516
|
"Validate.assert_passing",
|
|
517
|
+
"Validate.assert_below_threshold",
|
|
518
|
+
"Validate.above_threshold",
|
|
517
519
|
"Validate.n",
|
|
518
520
|
"Validate.n_passed",
|
|
519
521
|
"Validate.n_failed",
|
|
@@ -216,7 +216,7 @@ def send_slack_notification(
|
|
|
216
216
|
thresholds=pb.Thresholds(warning=0.05, error=0.10, critical=0.15),
|
|
217
217
|
actions=pb.Actions(critical=notify_slack),
|
|
218
218
|
)
|
|
219
|
-
.col_vals_regex(columns="player_id", pattern=r"[A-Z]{12}
|
|
219
|
+
.col_vals_regex(columns="player_id", pattern=r"[A-Z]{12}[0-9]{3}")
|
|
220
220
|
.col_vals_gt(columns="item_revenue", value=0.05)
|
|
221
221
|
.col_vals_gt(columns="session_duration", value=15)
|
|
222
222
|
.interrogate()
|
|
@@ -248,7 +248,7 @@ def send_slack_notification(
|
|
|
248
248
|
thresholds=pb.Thresholds(warning=0.05, error=0.10, critical=0.15),
|
|
249
249
|
final_actions=pb.FinalActions(notify_slack),
|
|
250
250
|
)
|
|
251
|
-
.col_vals_regex(columns="player_id", pattern=r"[A-Z]{12}
|
|
251
|
+
.col_vals_regex(columns="player_id", pattern=r"[A-Z]{12}[0-9]{3}")
|
|
252
252
|
.col_vals_gt(columns="item_revenue", value=0.05)
|
|
253
253
|
.col_vals_gt(columns="session_duration", value=15)
|
|
254
254
|
.interrogate()
|
|
@@ -316,7 +316,7 @@ def send_slack_notification(
|
|
|
316
316
|
actions=pb.Actions(default=notify_slack),
|
|
317
317
|
final_actions=pb.FinalActions(notify_slack),
|
|
318
318
|
)
|
|
319
|
-
.col_vals_regex(columns="player_id", pattern=r"[A-Z]{12}
|
|
319
|
+
.col_vals_regex(columns="player_id", pattern=r"[A-Z]{12}[0-9]{3}")
|
|
320
320
|
.col_vals_gt(columns="item_revenue", value=0.05)
|
|
321
321
|
.col_vals_gt(columns="session_duration", value=15)
|
|
322
322
|
.interrogate()
|
|
@@ -1007,7 +1007,7 @@ def matches(pattern: str, case_sensitive: bool = False) -> Matches:
|
|
|
1007
1007
|
`[rev_01, rev_02, profit_01, profit_02, age]`
|
|
1008
1008
|
|
|
1009
1009
|
and you want to validate columns that have two digits at the end of the name, you can use
|
|
1010
|
-
`columns=matches(r"
|
|
1010
|
+
`columns=matches(r"[0-9]{2}$")`. This will select the `rev_01`, `rev_02`, `profit_01`, and
|
|
1011
1011
|
`profit_02` columns.
|
|
1012
1012
|
|
|
1013
1013
|
There will be a validation step created for every resolved column. Note that if there aren't any
|
|
@@ -1061,7 +1061,7 @@ def matches(pattern: str, case_sensitive: bool = False) -> Matches:
|
|
|
1061
1061
|
[`col()`](`pointblank.col`) function, like this:
|
|
1062
1062
|
|
|
1063
1063
|
```python
|
|
1064
|
-
col(matches(r"
|
|
1064
|
+
col(matches(r"^[0-9]{5}") & ends_with("_id"))
|
|
1065
1065
|
```
|
|
1066
1066
|
|
|
1067
1067
|
There are four operators that can be used to compose column selectors:
|
|
@@ -1107,7 +1107,7 @@ def matches(pattern: str, case_sensitive: bool = False) -> Matches:
|
|
|
1107
1107
|
|
|
1108
1108
|
validation = (
|
|
1109
1109
|
pb.Validate(data=tbl)
|
|
1110
|
-
.col_vals_regex(columns=pb.matches("id|identifier"), pattern=r"ID
|
|
1110
|
+
.col_vals_regex(columns=pb.matches("id|identifier"), pattern=r"ID[0-9]{4}")
|
|
1111
1111
|
.interrogate()
|
|
1112
1112
|
)
|
|
1113
1113
|
|
|
@@ -1115,7 +1115,7 @@ def matches(pattern: str, case_sensitive: bool = False) -> Matches:
|
|
|
1115
1115
|
```
|
|
1116
1116
|
|
|
1117
1117
|
From the results of the validation table we get two validation steps, one for `id_old` and one
|
|
1118
|
-
for `new_identifier`. The values in both columns all match the pattern `"ID
|
|
1118
|
+
for `new_identifier`. The values in both columns all match the pattern `"ID[0-9]{4}"`.
|
|
1119
1119
|
|
|
1120
1120
|
We can also use the `matches()` function in combination with other column selectors (within
|
|
1121
1121
|
[`col()`](`pointblank.col`)) to create more complex column selection criteria (i.e., to select
|