pointblank 0.9.0__tar.gz → 0.9.1__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.0 → pointblank-0.9.1}/PKG-INFO +1 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/_quarto.yml +4 -1
- pointblank-0.9.1/docs/assets/pointblank-sales-data.de.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.es.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.fr.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.it.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.ja.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.ko.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.nl.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.pt-BR.png +0 -0
- pointblank-0.9.1/docs/assets/pointblank-sales-data.zh-CN.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/user-guide/actions.qmd +60 -15
- pointblank-0.9.1/docs/user-guide/briefs.qmd +330 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/user-guide/col-summary-tbl.qmd +1 -0
- pointblank-0.9.1/docs/user-guide/columns.qmd +356 -0
- pointblank-0.9.1/docs/user-guide/extracts.qmd +334 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/user-guide/index.qmd +5 -1
- pointblank-0.9.1/docs/user-guide/langs.qmd +39 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/user-guide/missing-vals-tbl.qmd +3 -0
- pointblank-0.9.1/docs/user-guide/preprocessing.qmd +282 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/user-guide/preview.qmd +4 -0
- pointblank-0.9.1/docs/user-guide/segmentation.qmd +273 -0
- pointblank-0.9.1/docs/user-guide/step-reports.qmd +371 -0
- pointblank-0.9.1/docs/user-guide/sundering.qmd +301 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/user-guide/thresholds.qmd +8 -2
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/user-guide/types.qmd +59 -14
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_constants.py +15 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_constants_translations.py +162 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_interrogation.py +117 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_utils.py +1 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/api-docs.txt +306 -3
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/validate.py +401 -7
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank.egg-info/PKG-INFO +1 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank.egg-info/SOURCES.txt +13 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_comprehensive_validation_report_html_snap/comprehensive_validation_report.html +90 -2
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_validate.py +46 -16
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.de.md +2 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.es.md +2 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.fr.md +2 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.it.md +2 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.ja.md +2 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.ko.md +2 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.nl.md +3 -2
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.pt-BR.md +2 -1
- {pointblank-0.9.0 → pointblank-0.9.1}/translations/README.zh-CN.md +2 -1
- pointblank-0.9.0/docs/user-guide/across.qmd +0 -130
- pointblank-0.9.0/docs/user-guide/columns.qmd +0 -236
- pointblank-0.9.0/docs/user-guide/extracts.qmd +0 -127
- pointblank-0.9.0/docs/user-guide/preprocessing.qmd +0 -183
- pointblank-0.9.0/docs/user-guide/sundering.qmd +0 -163
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/CODE_OF_CONDUCT.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/ISSUE_TEMPLATE/bug.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/SECURITY.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/workflows/ci-docs.yaml +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/workflows/ci-tests.yaml +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.github/workflows/code-checks.yaml +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.gitignore +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.pre-commit-config.yaml +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/.vscode/settings.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/CITATION.cff +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/CONTRIBUTING.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/LICENSE +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/Makefile +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/README.md +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/data_raw/game_revenue.csv +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/data_raw/nycflights.csv +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/data_raw/nycflights.ddb +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/data_raw/small_table.csv +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/data_raw/x-01-parquet.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/data_raw/x-02-duckdb.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/data_raw/x-03-sqlite.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/.gitignore +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/_extensions/machow/interlinks/.gitignore +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/_extensions/machow/interlinks/_extension.yml +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/_extensions/machow/interlinks/interlinks.lua +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/assets/fav-logo.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/assets/pointblank-sales-data.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/assets/pointblank-step-report.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/assets/pointblank-tabular-report.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/assets/pointblank_logo.svg +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/assets/validation-table-diagram.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/blog/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/blog/intro-pointblank/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/blog/intro-pointblank/pointblank-localized.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/blog/intro-pointblank/step_report.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/blog/intro-pointblank/validation-table-diagram.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/blog/intro-pointblank/validation-test-units.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/blog/pointblank_blog_logo.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/01-starter/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/02-advanced/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/03-data-extracts/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/04-sundered-data/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/05-step-report-column-check/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/06-step-report-schema-check/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/apply-checks-to-several-columns/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/check-row-column-counts/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/checks-for-missing/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/col-vals-custom-expr/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/column-selector-functions/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/comparisons-across-columns/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/data/game_revenue.parquet +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/expect-no-duplicate-rows/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/expect-no-duplicate-values/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/expect-text-pattern/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/failure-thresholds/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/img/advanced_validation.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/img/data_extracts.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/img/starter_validation.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/img/step_report_column_schema.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/img/step_report_column_values.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/img/sundered_data.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/mutate-table-in-step/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/numeric-comparisons/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/schema-check/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/set-membership/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/demos/using-parquet-data/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/index.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/docs/styles.css +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/images/pointblank-tabular-report.png +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/images/pointblank_logo.svg +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/__init__.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_constants_docs.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_typing.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_utils_check_args.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/_utils_html.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/actions.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/assistant.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/column.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/game_revenue-duckdb.zip +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/game_revenue.zip +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/nycflights-duckdb.zip +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/nycflights.zip +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/polars-api-docs.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/small_table-duckdb.zip +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/data/small_table.zip +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/datascan.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/draft.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/schema.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/tf.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank/thresholds.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank.egg-info/dependency_links.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank.egg-info/requires.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pointblank.egg-info/top_level.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/pyproject.toml +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/setup.cfg +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/__init__.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/manual_tests/schema_step_reports.qmd +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_datascan/test_col_summary_tbl_duckdb_snap/col_summary_html_duckdb.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_datascan/test_col_summary_tbl_pandas_snap/col_summary_html_pandas.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_datascan/test_col_summary_tbl_polars_snap/col_summary_html_polars.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_01/schema_step_report_01-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_01_1/schema_step_report_01-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_01_2/schema_step_report_01-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_01_3/schema_step_report_01-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_02/schema_step_report_02-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_02_1/schema_step_report_02-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_02_2/schema_step_report_02-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_02_3/schema_step_report_02-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_03/schema_step_report_03-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_03_1/schema_step_report_03-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_03_2/schema_step_report_03-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_03_3/schema_step_report_03-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_04/schema_step_report_04-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_05/schema_step_report_05-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_06/schema_step_report_06-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_07/schema_step_report_07-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_08/schema_step_report_08-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_09/schema_step_report_09-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_10/schema_step_report_10-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_11/schema_step_report_11-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_12/schema_step_report_12-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_13/schema_step_report_13-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_14/schema_step_report_14-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_14_1/schema_step_report_14-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_15/schema_step_report_15-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_15_1/schema_step_report_15-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_16/schema_step_report_16-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_16_1/schema_step_report_16-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_17/schema_step_report_17-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_17_1/schema_step_report_17-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_18/schema_step_report_18-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_18_1/schema_step_report_18-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_19/schema_step_report_19-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_19_1/schema_step_report_19-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_20/schema_step_report_20-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_20_1/schema_step_report_20-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_21/schema_step_report_21-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_21_1/schema_step_report_21-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_21_2/schema_step_report_21-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_21_3/schema_step_report_21-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_22/schema_step_report_22-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_22_1/schema_step_report_22-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_23/schema_step_report_23-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_23_1/schema_step_report_23-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_24/schema_step_report_24-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_24_1/schema_step_report_24-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_24_2/schema_step_report_24-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_24_3/schema_step_report_24-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_25/schema_step_report_25-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_1/schema_step_report_25-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_2/schema_step_report_25-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_3/schema_step_report_25-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_4/schema_step_report_25-4.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_5/schema_step_report_25-5.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_01-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_02-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_03-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_04-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_05-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_06-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_07-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_08-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_09-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_10-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_11-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_12-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_13-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-0.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-1.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-2.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-3.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-4.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-5.txt +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_no_interrogation_validation_report_html_snap/no_interrogation_validation_report.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_no_steps_validation_report_html_snap/no_steps_validation_report.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_briefs_global_local_html/validation_report_briefs_global_local.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_briefs_html/validation_report_with_briefs.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_segments_html/duckdb/validation_report_segments.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_segments_html/pandas/validation_report_segments.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_segments_html/polars/validation_report_segments.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/polars/validation_report_segments_with_pre.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/validation_report_segments_with_pre.html +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/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.0 → pointblank-0.9.1}/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.0 → pointblank-0.9.1}/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.0 → pointblank-0.9.1}/tests/tbl_files/tbl_dates_times_text.ddb +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_dates_times_text.parquet +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_dates_times_text.sqlite +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_true_dates_times.ddb +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_xyz.ddb +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_xyz.parquet +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_xyz.sqlite +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_xyz_missing.ddb +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_xyz_missing.parquet +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/tbl_files/tbl_xyz_missing.sqlite +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test__interrogation.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test__utils.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test__utils_check_args.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_actions.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_assistant.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_column.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_datascan.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_draft.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_schema.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_tf.py +0 -0
- {pointblank-0.9.0 → pointblank-0.9.1}/tests/test_thresholds.py +0 -0
|
@@ -61,10 +61,12 @@ website:
|
|
|
61
61
|
contents:
|
|
62
62
|
- user-guide/types.qmd
|
|
63
63
|
- user-guide/columns.qmd
|
|
64
|
-
- user-guide/across.qmd
|
|
65
64
|
- user-guide/preprocessing.qmd
|
|
65
|
+
- user-guide/segmentation.qmd
|
|
66
|
+
- user-guide/briefs.qmd
|
|
66
67
|
- section: "Post Interrogation"
|
|
67
68
|
contents:
|
|
69
|
+
- user-guide/step-reports.qmd
|
|
68
70
|
- user-guide/extracts.qmd
|
|
69
71
|
- user-guide/sundering.qmd
|
|
70
72
|
- section: "Data Inspection"
|
|
@@ -126,6 +128,7 @@ quartodoc:
|
|
|
126
128
|
- name: Validate.col_vals_expr
|
|
127
129
|
- name: Validate.col_exists
|
|
128
130
|
- name: Validate.rows_distinct
|
|
131
|
+
- name: Validate.rows_complete
|
|
129
132
|
- name: Validate.col_schema_match
|
|
130
133
|
- name: Validate.row_count_match
|
|
131
134
|
- name: Validate.col_count_match
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -107,9 +107,18 @@ validation_2 = (
|
|
|
107
107
|
thresholds=pb.Thresholds(warning=0.05, error=0.10, critical=0.15),
|
|
108
108
|
actions=pb.Actions(critical=action_str),
|
|
109
109
|
)
|
|
110
|
-
.col_vals_regex(
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
.col_vals_regex(
|
|
111
|
+
columns="player_id",
|
|
112
|
+
pattern=r"[A-Z]{12}\d{3}"
|
|
113
|
+
)
|
|
114
|
+
.col_vals_gt(
|
|
115
|
+
columns="item_revenue",
|
|
116
|
+
value=0.10
|
|
117
|
+
)
|
|
118
|
+
.col_vals_ge(
|
|
119
|
+
columns="session_duration",
|
|
120
|
+
value=15
|
|
121
|
+
)
|
|
113
122
|
.interrogate()
|
|
114
123
|
)
|
|
115
124
|
|
|
@@ -139,8 +148,14 @@ validation_3 = (
|
|
|
139
148
|
data=pb.load_dataset(dataset="game_revenue", tbl_type="duckdb"),
|
|
140
149
|
thresholds=pb.Thresholds(warning=0.05, error=0.10, critical=0.15),
|
|
141
150
|
)
|
|
142
|
-
.col_vals_regex(
|
|
143
|
-
|
|
151
|
+
.col_vals_regex(
|
|
152
|
+
columns="player_id",
|
|
153
|
+
pattern=r"[A-Z]{12}\d{3}"
|
|
154
|
+
)
|
|
155
|
+
.col_vals_gt(
|
|
156
|
+
columns="item_revenue",
|
|
157
|
+
value=0.05
|
|
158
|
+
)
|
|
144
159
|
.col_vals_gt(
|
|
145
160
|
columns="session_duration",
|
|
146
161
|
value=15,
|
|
@@ -191,8 +206,14 @@ validation = (
|
|
|
191
206
|
actions=pb.Actions(default=print_problem),
|
|
192
207
|
brief=True,
|
|
193
208
|
)
|
|
194
|
-
.col_vals_regex(
|
|
195
|
-
|
|
209
|
+
.col_vals_regex(
|
|
210
|
+
columns="player_id",
|
|
211
|
+
pattern=r"[A-Z]{12}\d{3}"
|
|
212
|
+
)
|
|
213
|
+
.col_vals_gt(
|
|
214
|
+
columns="item_revenue",
|
|
215
|
+
value=0.05
|
|
216
|
+
)
|
|
196
217
|
.col_vals_gt(
|
|
197
218
|
columns="session_duration",
|
|
198
219
|
value=15,
|
|
@@ -253,8 +274,14 @@ validation_with_final = (
|
|
|
253
274
|
send_alert # a callable function
|
|
254
275
|
)
|
|
255
276
|
)
|
|
256
|
-
.col_vals_regex(
|
|
257
|
-
|
|
277
|
+
.col_vals_regex(
|
|
278
|
+
columns="player_id",
|
|
279
|
+
pattern=r"[A-Z]{12}\d{3}"
|
|
280
|
+
)
|
|
281
|
+
.col_vals_gt(
|
|
282
|
+
columns="item_revenue",
|
|
283
|
+
value=0.10
|
|
284
|
+
)
|
|
258
285
|
.interrogate()
|
|
259
286
|
)
|
|
260
287
|
|
|
@@ -320,8 +347,14 @@ validation = (
|
|
|
320
347
|
tbl_name="game_revenue",
|
|
321
348
|
final_actions=pb.FinalActions(comprehensive_report),
|
|
322
349
|
)
|
|
323
|
-
.col_vals_regex(
|
|
324
|
-
|
|
350
|
+
.col_vals_regex(
|
|
351
|
+
columns="player_id",
|
|
352
|
+
pattern=r"[A-Z]{12}\d{3}"
|
|
353
|
+
)
|
|
354
|
+
.col_vals_gt(
|
|
355
|
+
columns="item_revenue",
|
|
356
|
+
value=0.05
|
|
357
|
+
)
|
|
325
358
|
.interrogate()
|
|
326
359
|
)
|
|
327
360
|
|
|
@@ -336,8 +369,14 @@ validation = (
|
|
|
336
369
|
data=pb.load_dataset(dataset="game_revenue", tbl_type="duckdb"),
|
|
337
370
|
tbl_name="game_revenue",
|
|
338
371
|
)
|
|
339
|
-
.col_vals_regex(
|
|
340
|
-
|
|
372
|
+
.col_vals_regex(
|
|
373
|
+
columns="player_id",
|
|
374
|
+
pattern=r"[A-Z]{12}\d{3}"
|
|
375
|
+
)
|
|
376
|
+
.col_vals_gt(
|
|
377
|
+
columns="item_revenue",
|
|
378
|
+
value=0.05
|
|
379
|
+
)
|
|
341
380
|
.interrogate()
|
|
342
381
|
)
|
|
343
382
|
|
|
@@ -376,8 +415,14 @@ validation_combined = (
|
|
|
376
415
|
actions=pb.Actions(default=log_step_failure),
|
|
377
416
|
final_actions=pb.FinalActions(generate_summary),
|
|
378
417
|
)
|
|
379
|
-
.col_vals_regex(
|
|
380
|
-
|
|
418
|
+
.col_vals_regex(
|
|
419
|
+
columns="player_id",
|
|
420
|
+
pattern=r"[A-Z]{12}\d{3}"
|
|
421
|
+
)
|
|
422
|
+
.col_vals_gt(
|
|
423
|
+
columns="item_revenue",
|
|
424
|
+
value=0.05
|
|
425
|
+
)
|
|
381
426
|
.interrogate()
|
|
382
427
|
)
|
|
383
428
|
```
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Enhancing Validation Reports with Briefs
|
|
3
|
+
jupyter: python3
|
|
4
|
+
html-table-processing: none
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```{python}
|
|
8
|
+
#| echo: false
|
|
9
|
+
#| output: false
|
|
10
|
+
import pointblank as pb
|
|
11
|
+
pb.config(report_incl_footer=False)
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
When validating data with Pointblank, it's often helpful to have descriptive labels for each
|
|
15
|
+
validation step. This is where *briefs* come in. A brief is a short description of what a validation
|
|
16
|
+
step is checking and it appears in the `STEP` column of the validation report table. Briefs make
|
|
17
|
+
your validation reports more readable and they help others understand what each step is verifying
|
|
18
|
+
without needing to look at the code.
|
|
19
|
+
|
|
20
|
+
Briefs can be set in two ways:
|
|
21
|
+
|
|
22
|
+
1. **Globally**: applied to all validation steps via the `brief=` parameter in
|
|
23
|
+
[`Validate()`](https://posit-dev.github.io/pointblank/reference/Validate.html)
|
|
24
|
+
2. **Locally**: set for individual validation steps via the `brief=` parameter in each validation
|
|
25
|
+
method
|
|
26
|
+
|
|
27
|
+
Understanding these two approaches to adding briefs gives you flexibility in how you document your
|
|
28
|
+
validation process. Global briefs provide consistency across all steps and save time when you want
|
|
29
|
+
similar descriptions throughout, while step-level briefs allow for precise customization when
|
|
30
|
+
specific validations need more detailed or unique explanations. In practice, many validation
|
|
31
|
+
workflows will combine both approaches (i.e., setting a useful global brief template while
|
|
32
|
+
overriding it for steps that require special attention).
|
|
33
|
+
|
|
34
|
+
## Global Briefs
|
|
35
|
+
|
|
36
|
+
To set a global brief that applies to all validation steps, use the `Validate(brief=)` parameter
|
|
37
|
+
when creating a `Validate` object:
|
|
38
|
+
|
|
39
|
+
```{python}
|
|
40
|
+
import pointblank as pb
|
|
41
|
+
import polars as pl
|
|
42
|
+
|
|
43
|
+
# Sample data
|
|
44
|
+
data = pl.DataFrame({
|
|
45
|
+
"id": [1, 2, 3, 4, 5],
|
|
46
|
+
"value": [10, 20, 30, 40, 50],
|
|
47
|
+
"category": ["A", "B", "C", "A", "B"]
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
# Create a validation with a global brief
|
|
51
|
+
validation_1 = (
|
|
52
|
+
pb.Validate(
|
|
53
|
+
data=data,
|
|
54
|
+
tbl_name="example_data",
|
|
55
|
+
brief="Step {step}: {auto}" # Global brief template
|
|
56
|
+
)
|
|
57
|
+
.col_vals_gt(
|
|
58
|
+
columns="value",
|
|
59
|
+
value=5
|
|
60
|
+
)
|
|
61
|
+
.col_vals_in_set(
|
|
62
|
+
columns="category",
|
|
63
|
+
set=["A", "B", "C"]
|
|
64
|
+
)
|
|
65
|
+
.interrogate()
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
validation_1
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
In this example, every validation step will have a brief description that follows the pattern
|
|
72
|
+
`"Step X: [auto-generated description]"`.
|
|
73
|
+
|
|
74
|
+
This is a simple example of template-based briefs. Later in this guide, we'll explore the full range
|
|
75
|
+
of templating elements available for creating custom brief descriptions that precisely communicate
|
|
76
|
+
what each validation step is checking.
|
|
77
|
+
|
|
78
|
+
## Step-level Briefs
|
|
79
|
+
|
|
80
|
+
You can also set briefs for individual validation steps:
|
|
81
|
+
|
|
82
|
+
```{python}
|
|
83
|
+
validation_2 = (
|
|
84
|
+
pb.Validate(data=data, tbl_name="example_data")
|
|
85
|
+
.col_vals_gt(
|
|
86
|
+
columns="value",
|
|
87
|
+
value=5,
|
|
88
|
+
brief="Check if values exceed minimum threshold of 5"
|
|
89
|
+
)
|
|
90
|
+
.col_vals_in_set(
|
|
91
|
+
columns="category",
|
|
92
|
+
set=["A", "B", "C"],
|
|
93
|
+
brief="Verify categories are valid"
|
|
94
|
+
)
|
|
95
|
+
.interrogate()
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
validation_2
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Local briefs override any global briefs that might be set.
|
|
102
|
+
|
|
103
|
+
## Brief Templating
|
|
104
|
+
|
|
105
|
+
Briefs support templating elements that get replaced with specific values:
|
|
106
|
+
|
|
107
|
+
- `{auto}`: an auto-generated description of the validation
|
|
108
|
+
- `{step}`: the step number in the validation plan
|
|
109
|
+
- `{col}`: the column name(s) being validated
|
|
110
|
+
- `{value}`: the comparison value used in the validation (when applicable)
|
|
111
|
+
- `{set}`: the set of values used in set-based validations
|
|
112
|
+
- `{operator}`: the logical operator used in the validation (e.g., `>`, `<`, etc.)
|
|
113
|
+
- `{threshold}`: the threshold values defined for the validation step (if any)
|
|
114
|
+
|
|
115
|
+
Here's how to use these templates:
|
|
116
|
+
|
|
117
|
+
```{python}
|
|
118
|
+
validation_3 = (
|
|
119
|
+
pb.Validate(data=data, tbl_name="example_data")
|
|
120
|
+
.col_vals_gt(
|
|
121
|
+
columns="value",
|
|
122
|
+
value=5,
|
|
123
|
+
brief="Step {step}: Checking column '{col}' for values `> 5`"
|
|
124
|
+
)
|
|
125
|
+
.col_vals_in_set(
|
|
126
|
+
columns="category",
|
|
127
|
+
set=["A", "B", "C"],
|
|
128
|
+
brief="{auto} **(Step {step})**"
|
|
129
|
+
)
|
|
130
|
+
.interrogate()
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
validation_3
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
These template elements make briefs highly flexible and customizable. You can combine multiple
|
|
137
|
+
templating elements in a single brief to create descriptive yet concise validation step
|
|
138
|
+
descriptions. The templates help maintain consistency across your validation reports while providing
|
|
139
|
+
enough detail to understand what each step is checking.
|
|
140
|
+
|
|
141
|
+
Note that not all templating elements will be relevant for every validation step. For instance,
|
|
142
|
+
`{set}` is only applicable to validation functions like
|
|
143
|
+
[`col_vals_in_set()`](https://posit-dev.github.io/pointblank/reference/Validate.col_vals_in_set.html)
|
|
144
|
+
that use a set of values, while `{value}` would be used in comparisons like
|
|
145
|
+
[`col_vals_gt()`](https://posit-dev.github.io/pointblank/reference/Validate.col_vals_gt.html). If
|
|
146
|
+
you include a templating element that isn't relevant to a particular step, it will simply be
|
|
147
|
+
ignored.
|
|
148
|
+
|
|
149
|
+
Briefs support the use of Markdown formatting, allowing you to add emphasis with **bold** or
|
|
150
|
+
_italic_ text, include `inline code` formatting, or other Markdown elements to make your briefs more
|
|
151
|
+
visually distinctive and informative. This can be especially helpful when you want certain parts of
|
|
152
|
+
your briefs to stand out in the validation report.
|
|
153
|
+
|
|
154
|
+
## Automatic Briefs
|
|
155
|
+
|
|
156
|
+
If you want Pointblank to generate briefs for you automatically, you can set `brief=True`. Here,
|
|
157
|
+
we'll make that setting at the global level (by using `Validate(brief=True)`):
|
|
158
|
+
|
|
159
|
+
```{python}
|
|
160
|
+
validation_4 = (
|
|
161
|
+
pb.Validate(
|
|
162
|
+
data=data,
|
|
163
|
+
tbl_name="example_data",
|
|
164
|
+
brief=True
|
|
165
|
+
)
|
|
166
|
+
.col_vals_gt(
|
|
167
|
+
columns="value",
|
|
168
|
+
value=5
|
|
169
|
+
)
|
|
170
|
+
.col_vals_in_set(
|
|
171
|
+
columns="category",
|
|
172
|
+
set=["A", "B", "C"]
|
|
173
|
+
)
|
|
174
|
+
.interrogate()
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
validation_4
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Automatic briefs are descriptive and include information about what's being validated, including the
|
|
181
|
+
column names and the validation conditions.
|
|
182
|
+
|
|
183
|
+
## Briefs Localized to a Specified Language
|
|
184
|
+
|
|
185
|
+
When using the `lang=` parameter in `Validate()`, automatically generated briefs will be created in
|
|
186
|
+
the specified language (along with other elements of the validation report table):
|
|
187
|
+
|
|
188
|
+
```{python}
|
|
189
|
+
validation_5 = (
|
|
190
|
+
pb.Validate(
|
|
191
|
+
data=data,
|
|
192
|
+
tbl_name="example_data",
|
|
193
|
+
lang="es", # Spanish
|
|
194
|
+
brief=True # Auto-generate all briefs in Spanish
|
|
195
|
+
)
|
|
196
|
+
.col_vals_gt(
|
|
197
|
+
columns="value",
|
|
198
|
+
value=5
|
|
199
|
+
)
|
|
200
|
+
.col_vals_in_set(
|
|
201
|
+
columns="category",
|
|
202
|
+
set=["A", "B", "C"]
|
|
203
|
+
)
|
|
204
|
+
.interrogate()
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
validation_5
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
When using the `lang=` parameter in combination with the `{auto}` templating element, the
|
|
211
|
+
auto-generated portion of the brief will also be translated to the specified language. This makes it
|
|
212
|
+
possible to create fully localized validation reports where both custom text and auto-generated
|
|
213
|
+
descriptions appear in the same language.
|
|
214
|
+
|
|
215
|
+
Pointblank supports several languages for localized briefs, including French (`"fr"`), German
|
|
216
|
+
(`"de"`), Spanish (`"es"`), Italian (`"it"`), and Portuguese (`"pt"`). For the complete list of
|
|
217
|
+
supported languages, refer to the
|
|
218
|
+
[`Validate()`](https://posit-dev.github.io/pointblank/reference/Validate.html) documentation.
|
|
219
|
+
|
|
220
|
+
## Disabling Briefs
|
|
221
|
+
|
|
222
|
+
If you've set a global brief but want to disable it for specific validation steps, you can set
|
|
223
|
+
`brief=False`:
|
|
224
|
+
|
|
225
|
+
```{python}
|
|
226
|
+
validation_6 = (
|
|
227
|
+
pb.Validate(
|
|
228
|
+
data=data,
|
|
229
|
+
tbl_name="example_data",
|
|
230
|
+
brief="Step {step}: {auto}" # Global brief template
|
|
231
|
+
)
|
|
232
|
+
.col_vals_gt(columns="value", value=5) # Uses global brief
|
|
233
|
+
.col_vals_in_set(
|
|
234
|
+
columns="category",
|
|
235
|
+
set=["A", "B", "C"],
|
|
236
|
+
brief=False # No brief for this step
|
|
237
|
+
)
|
|
238
|
+
.interrogate()
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
validation_6
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Best Practices for Using Briefs
|
|
245
|
+
|
|
246
|
+
Well-crafted briefs can significantly enhance the readability and usefulness of your validation
|
|
247
|
+
reports. Here are some guidelines to follow:
|
|
248
|
+
|
|
249
|
+
1. **Be concise**: briefs should be short and to the point; they're meant to quickly communicate the
|
|
250
|
+
purpose of a validation step
|
|
251
|
+
|
|
252
|
+
2. **Be specific**: include relevant details or conditions that make the validation meaningful
|
|
253
|
+
|
|
254
|
+
3. **Use templates consistently**: if you're using template elements like `"{step}"` or `"{col}"`,
|
|
255
|
+
try to use them consistently across all briefs for a cleaner look
|
|
256
|
+
|
|
257
|
+
4. **Use auto-generated briefs as a starting point**: you can start with `Validate(brief=True)` to
|
|
258
|
+
see what Pointblank generates automatically, then customize as needed
|
|
259
|
+
|
|
260
|
+
5. **Add custom briefs for complex validations**: custom briefs are especially useful for complex
|
|
261
|
+
validations where the purpose might not be immediately obvious from the code
|
|
262
|
+
|
|
263
|
+
Following these best practices will help ensure your validation reports are easy to understand for
|
|
264
|
+
everyone who needs to review them.
|
|
265
|
+
|
|
266
|
+
## Example: Comprehensive Validation with Briefs
|
|
267
|
+
|
|
268
|
+
In real-world data validation scenarios, you'll likely work with more complex datasets and apply
|
|
269
|
+
various types of validation checks. This final example brings together many of the brief-generating
|
|
270
|
+
techniques we've covered, showing how you can mix different approaches in a single validation
|
|
271
|
+
workflow.
|
|
272
|
+
|
|
273
|
+
The example below demonstrates:
|
|
274
|
+
|
|
275
|
+
- custom text briefs with direct messages
|
|
276
|
+
- template-based briefs with Markdown formatting
|
|
277
|
+
- automatically generated briefs
|
|
278
|
+
|
|
279
|
+
By combining these different brief styles, you can create validation reports that are informative,
|
|
280
|
+
consistent, and tailored to your specific data quality requirements.
|
|
281
|
+
|
|
282
|
+
```{python}
|
|
283
|
+
# Create a more complex dataset
|
|
284
|
+
complex_data = pl.DataFrame({
|
|
285
|
+
"id": [1, 2, 3, 4, 5, 6, 7, 8],
|
|
286
|
+
"value": [10, 20, 30, 40, 50, 60, 70, 80],
|
|
287
|
+
"ratio": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8],
|
|
288
|
+
"category": ["A", "B", "C", "A", "B", "C", "A", "B"],
|
|
289
|
+
"date": ["2023-01-01", "2023-01-02", "2023-01-03", "2023-01-04",
|
|
290
|
+
"2023-01-05", "2023-01-06", "2023-01-07", "2023-01-08"]
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
# Create a comprehensive validation
|
|
294
|
+
validation_7 = (
|
|
295
|
+
pb.Validate(
|
|
296
|
+
data=complex_data,
|
|
297
|
+
tbl_name="complex_data",
|
|
298
|
+
label="Complex Data Validation"
|
|
299
|
+
)
|
|
300
|
+
.col_vals_gt(
|
|
301
|
+
columns="value",
|
|
302
|
+
value=0,
|
|
303
|
+
brief="All values must be positive."
|
|
304
|
+
)
|
|
305
|
+
.col_vals_between(
|
|
306
|
+
columns="ratio",
|
|
307
|
+
left=0,
|
|
308
|
+
right=1,
|
|
309
|
+
brief="**Step {step}**: Ratios should be between `0` and `1`."
|
|
310
|
+
)
|
|
311
|
+
.col_vals_in_set(
|
|
312
|
+
columns="category",
|
|
313
|
+
set=["A", "B", "C"],
|
|
314
|
+
brief=True # Auto-generate brief
|
|
315
|
+
)
|
|
316
|
+
.interrogate()
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
validation_7
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Conclusion
|
|
323
|
+
|
|
324
|
+
Briefs help make validation reports more readable and understandable. By using global briefs,
|
|
325
|
+
step-level briefs, or a combination of both, you can create validation reports that clearly
|
|
326
|
+
communicate what each validation step is checking.
|
|
327
|
+
|
|
328
|
+
Whether you want automatically generated descriptions or precisely tailored custom messages, the
|
|
329
|
+
brief system provides the flexibility to make your data validation work more transparent and easier
|
|
330
|
+
to interpret for all stakeholders.
|