pointblank 0.12.2__tar.gz → 0.13.0__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.12.2 → pointblank-0.13.0}/.gitignore +1 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/CITATION.cff +1 -1
- {pointblank-0.12.2 → pointblank-0.13.0}/Makefile +9 -1
- {pointblank-0.12.2 → pointblank-0.13.0}/PKG-INFO +8 -1
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/_quarto.yml +3 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/installation.qmd +26 -0
- pointblank-0.13.0/docs/user-guide/mcp-quick-start.qmd +248 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/thresholds.qmd +14 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_interrogation.py +11 -17
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/validate.py +110 -139
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/yaml.py +0 -20
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/PKG-INFO +8 -1
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/SOURCES.txt +5 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/requires.txt +9 -0
- pointblank-0.13.0/pointblank_mcp_server/pointblank_server.py +2077 -0
- pointblank-0.13.0/pointblank_mcp_server/readme.md +218 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pyproject.toml +18 -1
- pointblank-0.13.0/tests/test__interrogation.py +540 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test__utils.py +248 -0
- pointblank-0.13.0/tests/test_mcp_integration.py +251 -0
- pointblank-0.13.0/tests/test_mcp_server.py +162 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_segments.py +10 -5
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_validate.py +499 -267
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_yaml.py +935 -21
- pointblank-0.12.2/tests/test__interrogation.py +0 -272
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/ISSUE_TEMPLATE/bug.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/ISSUE_TEMPLATE/feature.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/SECURITY.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/workflows/ci-docs.yaml +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/workflows/ci-tests.yaml +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.github/workflows/code-checks.yaml +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.pre-commit-config.yaml +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/.vscode/settings.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/CONTRIBUTING.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/LICENSE +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/README.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/game_revenue.csv +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/global_sales.csv +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/global_sales_dataset.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/nycflights.csv +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/small_table.csv +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/worldcities.csv +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/x-01-parquet.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/x-02-duckdb.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/x-03-sqlite.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/.gitignore +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/_extensions/machow/interlinks/.gitignore +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/_extensions/machow/interlinks/_extension.yml +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/_extensions/machow/interlinks/interlinks.lua +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/fav-logo.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-info-worldcities-csv.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-info-worldcities-github-csv.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-make-template.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-missing-worldcities-csv.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-game_revenue-all-columns.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-game_revenue-column-names.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-game_revenue-column-range.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-worldcities-csv-no-row-numbers.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-worldcities-csv.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation-extracts.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation-fail-on-warning.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation-output.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-scan-worldcities-csv.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-exit-code.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-multi-check.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-rows-complete-worldcities-csv.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-rows-distinct-worldcities-csv.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-show-extract.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-worldcities-gt-0-population.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-worldcities-not-null-city_name.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-write-extract.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.de.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.es.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.fr.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.it.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.ja.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.ko.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.nl.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.pt-BR.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.zh-CN.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-step-report.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-tabular-report.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank_logo.svg +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/posit-logo-black.svg +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/validation-table-diagram.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/validation-test-units.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/.gitignore +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-cicd-workflows.gif +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-cicd-workflows.tape +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-complete-workflow.gif +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-complete-workflow.tape +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-data-exploration.gif +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-data-exploration.tape +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-essential-validations.gif +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-essential-validations.tape +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-getting-started.gif +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-getting-started.tape +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-using-polars.gif +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-using-polars.tape +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/validation.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/all-about-actions/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/pointblank-localized.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/step_report.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/validation-table-diagram.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/validation-test-units.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/lets-workshop-together/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/advanced-in-sidebar.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/breadth-and-depth.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/explanation-of-visual.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/links-in-guide.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/segments.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/step-report.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/validation-three-things.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/pointblank_blog_logo.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/validation-libs-2025/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/01-starter/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/02-advanced/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/03-data-extracts/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/04-sundered-data/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/05-step-report-column-check/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/06-step-report-schema-check/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/07-validation-with-actions/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/08-validation-with-final-actions/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/apply-checks-to-several-columns/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/check-for-freshness/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/check-row-column-counts/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/checks-for-missing/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/cli-interactive/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/col-vals-custom-expr/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/column-selector-functions/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/comparisons-across-columns/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/custom-validation-specially/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/data/game_revenue.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/expect-no-duplicate-rows/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/expect-no-duplicate-values/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/expect-text-pattern/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/failure-thresholds/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/advanced_validation.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/data_extracts.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/starter_validation.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/step_report_column_schema.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/step_report_column_values.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/sundered_data.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/validation_with_actions.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/validation_with_final_actions.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/mutate-table-in-step/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/numeric-comparisons/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/schema-check/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/set-membership/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/using-parquet-data/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/scripts/post-render.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/styles.css +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/actions.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/assertions.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/briefs.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/cli-data-inspection.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/cli-data-validation.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/cli-reference.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/col-summary-tbl.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/column-selection-patterns.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/draft-validation.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/expressions.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/extracts.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/index.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/langs.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/missing-vals-tbl.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/preprocessing.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/preview.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/schema-validation.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/segmentation.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/step-reports.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/sundering.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/validation-methods.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/validation-overview.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/yaml-reference.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/yaml-validation-workflows.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/images/pointblank-tabular-report.png +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/images/pointblank_logo.svg +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/__init__.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_constants.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_constants_docs.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_constants_translations.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_datascan_utils.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_typing.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_utils.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_utils_check_args.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_utils_html.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/actions.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/assistant.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/cli.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/column.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/compare.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/api-docs.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/game_revenue-duckdb.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/game_revenue.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/global_sales-duckdb.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/global_sales.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/nycflights-duckdb.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/nycflights.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/polars-api-docs.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/small_table-duckdb.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/small_table.zip +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/datascan.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/draft.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/scan_profile.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/scan_profile_stats.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/schema.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/segments.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/tf.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/thresholds.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/dependency_links.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/entry_points.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/top_level.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/setup.cfg +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/__init__.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/manual_tests/schema_step_reports.qmd +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_datascan/test_col_summary_tbl_duckdb_snap/col_summary_html_duckdb.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_datascan/test_col_summary_tbl_pandas_snap/col_summary_html_pandas.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_datascan/test_col_summary_tbl_polars_snap/col_summary_html_polars.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_comprehensive_validation_report_html_snap/comprehensive_validation_report.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_01/schema_step_report_01-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_01_1/schema_step_report_01-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_01_2/schema_step_report_01-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_01_3/schema_step_report_01-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_02/schema_step_report_02-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_02_1/schema_step_report_02-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_02_2/schema_step_report_02-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_02_3/schema_step_report_02-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_03/schema_step_report_03-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_03_1/schema_step_report_03-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_03_2/schema_step_report_03-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_03_3/schema_step_report_03-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_04/schema_step_report_04-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_05/schema_step_report_05-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_06/schema_step_report_06-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_07/schema_step_report_07-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_08/schema_step_report_08-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_09/schema_step_report_09-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_10/schema_step_report_10-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_11/schema_step_report_11-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_12/schema_step_report_12-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_13/schema_step_report_13-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_14/schema_step_report_14-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_14_1/schema_step_report_14-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_15/schema_step_report_15-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_15_1/schema_step_report_15-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_16/schema_step_report_16-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_16_1/schema_step_report_16-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_17/schema_step_report_17-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_17_1/schema_step_report_17-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_18/schema_step_report_18-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_18_1/schema_step_report_18-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_19/schema_step_report_19-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_19_1/schema_step_report_19-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_20/schema_step_report_20-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_20_1/schema_step_report_20-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_21/schema_step_report_21-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_21_1/schema_step_report_21-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_21_2/schema_step_report_21-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_21_3/schema_step_report_21-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_22/schema_step_report_22-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_22_1/schema_step_report_22-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_23/schema_step_report_23-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_23_1/schema_step_report_23-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_24/schema_step_report_24-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_24_1/schema_step_report_24-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_24_2/schema_step_report_24-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_24_3/schema_step_report_24-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_25/schema_step_report_25-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_1/schema_step_report_25-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_2/schema_step_report_25-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_3/schema_step_report_25-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_4/schema_step_report_25-4.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_5/schema_step_report_25-5.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_01-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_02-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_03-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_04-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_05-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_06-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_07-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_08-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_09-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_10-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_11-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_12-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_13-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-0.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-1.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-2.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-3.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-4.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-5.txt +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_no_interrogation_validation_report_html_snap/no_interrogation_validation_report.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_no_steps_validation_report_html_snap/no_steps_validation_report.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_briefs_global_local_html/validation_report_briefs_global_local.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_briefs_html/validation_report_with_briefs.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pyspark/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pyspark/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_html/duckdb/validation_report_segments.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_html/pandas/validation_report_segments.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_html/polars/validation_report_segments.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/polars/validation_report_segments_with_pre.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/validation_report_segments_with_pre.html +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_duckdb/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_parquet/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pd/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pl/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pyspark/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_sqlite/validation_report.json +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/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.12.2 → pointblank-0.13.0}/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.12.2 → pointblank-0.13.0}/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.12.2 → pointblank-0.13.0}/tests/tbl_files/parquet_data/data_a.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/parquet_data/data_b.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/parquet_data/subdir/nested_data.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=cancelled/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=delivered/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=pending/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=returned/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=shipped/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_small_table/f=high/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_small_table/f=low/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_small_table/f=mid/0.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_part_01.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_part_02.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_part_03.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_sample.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_dates_times_text.ddb +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_dates_times_text.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_dates_times_text.sqlite +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_true_dates_times.ddb +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz.ddb +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz.sqlite +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz_missing.ddb +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz_missing.parquet +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz_missing.sqlite +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test__utils_check_args.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_actions.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_assistant.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_cli.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_column.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_compare.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_datascan.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_draft.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_meta.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_schema.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_tf.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_thresholds.py +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.ar.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.de.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.es.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.fr.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.hi.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.it.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.ja.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.ko.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.nl.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.pt-BR.md +0 -0
- {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.zh-CN.md +0 -0
|
@@ -3,7 +3,7 @@ message: 'If you wish to cite the "Pointblank" package use:'
|
|
|
3
3
|
type: software
|
|
4
4
|
license: MIT
|
|
5
5
|
title: "Pointblank: Find out if your data is what you think it is"
|
|
6
|
-
version: 0.
|
|
6
|
+
version: 0.12.2
|
|
7
7
|
abstract: Validate data in Polars and Pandas DataFrames and database tables.
|
|
8
8
|
Validation pipelines can be made using easily-readable, consecutive validation
|
|
9
9
|
steps. Upon execution of the validation plan, several reporting options are available.
|
|
@@ -13,11 +13,19 @@ test:
|
|
|
13
13
|
test-update:
|
|
14
14
|
pytest --snapshot-update
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
.PHONY: lint
|
|
17
17
|
lint: ## Run ruff formatter and linter
|
|
18
18
|
@uv run ruff format
|
|
19
19
|
@uv run ruff check --fix
|
|
20
20
|
|
|
21
|
+
.PHONY: install-pre-commit
|
|
22
|
+
install-pre-commit: # Install pre-commit hooks
|
|
23
|
+
@uvx pre-commit install
|
|
24
|
+
|
|
25
|
+
.PHONY: run-pre-commit
|
|
26
|
+
run-pre-commit: # Run pre-commit hooks
|
|
27
|
+
@uvx pre-commit run --all-files
|
|
28
|
+
|
|
21
29
|
check:
|
|
22
30
|
pyright --pythonversion 3.8 pointblank
|
|
23
31
|
pyright --pythonversion 3.9 pointblank
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pointblank
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0
|
|
4
4
|
Summary: Find out if your data is what you think it is.
|
|
5
5
|
Author-email: Richard Iannone <riannone@me.com>
|
|
6
6
|
License: MIT License
|
|
@@ -60,6 +60,12 @@ Requires-Dist: chatlas>=0.3.0; extra == "generate"
|
|
|
60
60
|
Requires-Dist: anthropic[bedrock]>=0.45.2; extra == "generate"
|
|
61
61
|
Requires-Dist: openai>=1.63.0; extra == "generate"
|
|
62
62
|
Requires-Dist: shiny>=1.3.0; extra == "generate"
|
|
63
|
+
Provides-Extra: mcp
|
|
64
|
+
Requires-Dist: mcp[cli]>=1.10.1; extra == "mcp"
|
|
65
|
+
Requires-Dist: fastmcp>=2.11.3; extra == "mcp"
|
|
66
|
+
Requires-Dist: pytest-asyncio>=1.0.0; extra == "mcp"
|
|
67
|
+
Provides-Extra: excel
|
|
68
|
+
Requires-Dist: openpyxl>=3.0.0; extra == "excel"
|
|
63
69
|
Provides-Extra: bigquery
|
|
64
70
|
Requires-Dist: ibis-framework[bigquery]>=9.5.0; extra == "bigquery"
|
|
65
71
|
Provides-Extra: databricks
|
|
@@ -84,6 +90,7 @@ Requires-Dist: quartodoc>=0.8.1; python_version >= "3.9" and extra == "docs"
|
|
|
84
90
|
Requires-Dist: pandas>=2.2.3; extra == "docs"
|
|
85
91
|
Requires-Dist: polars>=1.17.1; extra == "docs"
|
|
86
92
|
Requires-Dist: pyspark==3.5.6; extra == "docs"
|
|
93
|
+
Requires-Dist: openpyxl>=3.0.0; extra == "docs"
|
|
87
94
|
Dynamic: license-file
|
|
88
95
|
|
|
89
96
|
<div align="center">
|
|
@@ -98,6 +98,9 @@ website:
|
|
|
98
98
|
- user-guide/cli-data-inspection.qmd
|
|
99
99
|
- user-guide/cli-data-validation.qmd
|
|
100
100
|
- user-guide/cli-reference.qmd
|
|
101
|
+
- section: "MCP Server"
|
|
102
|
+
contents:
|
|
103
|
+
- user-guide/mcp-quick-start.qmd
|
|
101
104
|
|
|
102
105
|
page-footer:
|
|
103
106
|
left: 'Proudly supported by <a href="https://www.posit.co/" class="no-icon"><img src="/assets/posit-logo-black.svg" alt="Posit" width="80" style="padding-left: 3px;vertical-align:text-top;"></a>'
|
|
@@ -32,6 +32,15 @@ uv pip install pointblank
|
|
|
32
32
|
```bash
|
|
33
33
|
conda install -c conda-forge pointblank
|
|
34
34
|
```
|
|
35
|
+
|
|
36
|
+
## pixi
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# add pointblank to project
|
|
40
|
+
pixi init name-of-project
|
|
41
|
+
cd name-of-project
|
|
42
|
+
pixi add pointblank
|
|
43
|
+
```
|
|
35
44
|
:::
|
|
36
45
|
|
|
37
46
|
## DataFrame Libraries
|
|
@@ -122,6 +131,23 @@ conda install -c conda-forge pointblank-snowflake # Snowflake
|
|
|
122
131
|
# Example of installing multiple backends
|
|
123
132
|
conda install -c conda-forge pointblank-duckdb pointblank-postgres pointblank-sqlite
|
|
124
133
|
```
|
|
134
|
+
|
|
135
|
+
## pixi
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
pixi add pointblank-sqlite # SQLite
|
|
139
|
+
pixi add pointblank-duckdb # DuckDB
|
|
140
|
+
pixi add pointblank-postgres # PostgreSQL
|
|
141
|
+
pixi add pointblank-mysql # MySQL
|
|
142
|
+
pixi add pointblank-mssql # Microsoft SQL Server
|
|
143
|
+
pixi add pointblank-bigquery # BigQuery
|
|
144
|
+
pixi add pointblank-pyspark # Apache Spark
|
|
145
|
+
pixi add pointblank-databricks # Databricks
|
|
146
|
+
pixi add pointblank-snowflake # Snowflake
|
|
147
|
+
|
|
148
|
+
# Example of installing multiple backends
|
|
149
|
+
pixi add pointblank-duckdb pointblank-postgres pointblank-sqlite
|
|
150
|
+
```
|
|
125
151
|
:::
|
|
126
152
|
|
|
127
153
|
::: {.callout-note}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "MCP Quick Start"
|
|
3
|
+
jupyter: python3
|
|
4
|
+
toc-expand: 2
|
|
5
|
+
html-table-processing: none
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Getting Started in 5 Minutes
|
|
9
|
+
|
|
10
|
+
Transform your data validation workflow with conversational AI in VS Code or Positron IDE. Here are three simple steps to start validating data through conversation (and no complex configuration required).
|
|
11
|
+
|
|
12
|
+
### 1. Install
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install pointblank[mcp,pd,excel]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**What this installs:**
|
|
19
|
+
|
|
20
|
+
- `mcp` - Model Context Protocol server dependencies
|
|
21
|
+
- `pd` - pandas backend for data processing
|
|
22
|
+
- `excel` - Excel file support (`openpyxl`)
|
|
23
|
+
|
|
24
|
+
**Alternative installs based on your needs:**
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Minimal MCP server only
|
|
28
|
+
pip install pointblank[mcp]
|
|
29
|
+
|
|
30
|
+
# Add Polars for faster data processing
|
|
31
|
+
pip install pointblank[mcp,pd,pl]
|
|
32
|
+
|
|
33
|
+
# Full installation with all backends
|
|
34
|
+
pip install pointblank[mcp,pd,pl,excel]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2. Configure Your IDE
|
|
38
|
+
|
|
39
|
+
**For VS Code**:
|
|
40
|
+
|
|
41
|
+
**Option 1: Workspace Configuration (Recommended for teams)**
|
|
42
|
+
|
|
43
|
+
1. Create a `.vscode/mcp.json` file in your project folder
|
|
44
|
+
2. Add this configuration:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"servers": {
|
|
49
|
+
"pointblank": {
|
|
50
|
+
"command": "python",
|
|
51
|
+
"args": ["-m", "pointblank_mcp_server.pointblank_server"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Option 2: User Configuration (Personal use)**
|
|
58
|
+
|
|
59
|
+
1. Run command: `MCP: Open User Configuration` (Cmd/Ctrl + Shift + P)
|
|
60
|
+
2. Add the same JSON configuration above
|
|
61
|
+
|
|
62
|
+
> ⚠️ **Security Note**: Only add MCP servers from trusted sources. VS Code will ask you to confirm trust when starting the server for the first time.
|
|
63
|
+
|
|
64
|
+
**For Positron**:
|
|
65
|
+
|
|
66
|
+
1. Open Positron Settings
|
|
67
|
+
2. Navigate to MCP Server configuration
|
|
68
|
+
3. Add the configuration (format may vary)
|
|
69
|
+
|
|
70
|
+
> **Note**: If you don't see MCP settings, you may need to install an MCP extension first. Search for "MCP" in the Extensions marketplace.
|
|
71
|
+
|
|
72
|
+
### 3. Start Chatting
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
"Load my sales data and check its quality"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
That's basically how you get started.
|
|
79
|
+
|
|
80
|
+
## Essential Commands
|
|
81
|
+
|
|
82
|
+
Master these four command patterns and you'll be able to handle most data validation scenarios. Think of these as your fundamental vocabulary for talking to Pointblank.
|
|
83
|
+
|
|
84
|
+
### Load Data
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
"Load the file /path/to/data.csv"
|
|
88
|
+
"Open my customer data from Downloads"
|
|
89
|
+
"Load the Excel file with sales metrics"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Check Quality
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
"Analyze the data quality"
|
|
96
|
+
"What issues should I worry about?"
|
|
97
|
+
"Check for missing values and duplicates"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Create Data Validations
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
"Set up validation rules for this data"
|
|
104
|
+
"Check that all emails are valid"
|
|
105
|
+
"Make sure amounts are positive"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Run and Export
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
"Run the validation"
|
|
112
|
+
"Show me what failed"
|
|
113
|
+
"Export problem rows to CSV"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Top Three Use Cases
|
|
119
|
+
|
|
120
|
+
Once you have Pointblank set up, these scenarios show the most common and powerful ways to use natural language data validation. Each example demonstrates the conversational flow and immediate value you'll experience.
|
|
121
|
+
|
|
122
|
+
### 1. 📊 Quick Data Check
|
|
123
|
+
|
|
124
|
+
**When**: You get a new dataset
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
👤 "I just got customer_data.csv. Is it clean?"
|
|
128
|
+
🤖 "Loading... Found 15K customers. Issues:
|
|
129
|
+
- ✅ No duplicate IDs
|
|
130
|
+
- ⚠️ 2% missing phones
|
|
131
|
+
- ❌ 234 invalid emails
|
|
132
|
+
Want me to fix the emails?"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 2. 🔄 Daily Validation
|
|
136
|
+
|
|
137
|
+
**When**: Regular data quality checks
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
👤 "Run our standard sales validation"
|
|
141
|
+
🤖 "Running daily_sales template...
|
|
142
|
+
✅ All checks passed!
|
|
143
|
+
3,247 transactions validated
|
|
144
|
+
Ready for dashboard update"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 3. 🚨 Issue Investigation
|
|
148
|
+
|
|
149
|
+
**When**: Something looks wrong
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
👤 "Conversion rates jumped to 95%. That's impossible"
|
|
153
|
+
🤖 "Found the problem! Test data contamination:
|
|
154
|
+
- 1,247 test emails with 100% conversion
|
|
155
|
+
- Real rate is 4.2% (normal)
|
|
156
|
+
Should I clean the data?"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
These examples show how natural conversation can quickly identify and resolve data quality issues that might take hours to diagnose manually.
|
|
160
|
+
|
|
161
|
+
## Common Validation Rules
|
|
162
|
+
|
|
163
|
+
Understanding what validation rules to ask for will help you quickly build comprehensive data quality checks. These examples cover the most frequent validation scenarios across different industries and data types.
|
|
164
|
+
|
|
165
|
+
### Data Integrity
|
|
166
|
+
|
|
167
|
+
- "Check for duplicate IDs"
|
|
168
|
+
- "Ensure no missing required fields"
|
|
169
|
+
- "Validate that dates are reasonable"
|
|
170
|
+
|
|
171
|
+
### Business Logic
|
|
172
|
+
|
|
173
|
+
- "Amounts must be positive"
|
|
174
|
+
- "Email addresses must be valid format"
|
|
175
|
+
- "Status must be active, inactive, or pending"
|
|
176
|
+
|
|
177
|
+
### Cross-Field Validation
|
|
178
|
+
|
|
179
|
+
- "End date must be after start date"
|
|
180
|
+
- "Discount percentage between 0 and 100"
|
|
181
|
+
- "Age must match birth date"
|
|
182
|
+
|
|
183
|
+
These rule patterns can be combined and customized for your specific data and business requirements. The natural language interface makes it easy to express complex validation logic without learning technical syntax.
|
|
184
|
+
|
|
185
|
+
## Some Tips and Tricks
|
|
186
|
+
|
|
187
|
+
These recommendations will help you get more value from your Pointblank MCP server and avoid some common pitfalls.
|
|
188
|
+
|
|
189
|
+
### Talk Naturally
|
|
190
|
+
|
|
191
|
+
✅ **Good:** "Check if customer emails look valid"
|
|
192
|
+
|
|
193
|
+
❌ **Avoid:** "Execute col_vals_regex on email column"
|
|
194
|
+
|
|
195
|
+
### Provide Context
|
|
196
|
+
|
|
197
|
+
✅ **Good:** "This is for the board presentation"
|
|
198
|
+
|
|
199
|
+
❌ **Avoid:** Just asking for validation without explanation
|
|
200
|
+
|
|
201
|
+
### Build Incrementally
|
|
202
|
+
|
|
203
|
+
1. Start with data profiling
|
|
204
|
+
2. Add basic validation rules
|
|
205
|
+
3. Create templates for reuse
|
|
206
|
+
4. Set up automated checks
|
|
207
|
+
|
|
208
|
+
### Save Templates
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
"Save these rules as 'customer_validation'"
|
|
212
|
+
"Apply the financial_data template"
|
|
213
|
+
"Use our standard survey validation"
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
These practices help you build data quality workflows that scale with your needs while remaining accessible to those with varying technical backgrounds.
|
|
217
|
+
|
|
218
|
+
## File Support
|
|
219
|
+
|
|
220
|
+
Pointblank works with many major data file formats, making it easy to validate data regardless of how it's stored. This support means you can maintain consistent validation practices across your entire data ecosystem.
|
|
221
|
+
|
|
222
|
+
| Type | Extensions | Example |
|
|
223
|
+
|------|------------|---------|
|
|
224
|
+
| **CSV** | `.csv` | `sales_data.csv` |
|
|
225
|
+
| **Excel** | `.xlsx`, `.xls` | `monthly_report.xlsx` |
|
|
226
|
+
| **Parquet** | `.parquet` | `big_data.parquet` |
|
|
227
|
+
| **JSON** | `.json`, `.jsonl` | `api_response.json` |
|
|
228
|
+
|
|
229
|
+
The consistent natural language interface works the same regardless of file format, so you can focus on validation logic rather than technical details.
|
|
230
|
+
|
|
231
|
+
## Quick Troubleshooting
|
|
232
|
+
|
|
233
|
+
When you encounter issues, these quick fixes resolve the most common problems. Furthermore, the natural language interface means you can always ask for help and explanations.
|
|
234
|
+
|
|
235
|
+
| Problem | Quick Fix |
|
|
236
|
+
|---------|-----------|
|
|
237
|
+
| "File not found" | Use full file path: `/Users/name/data.csv` |
|
|
238
|
+
| Validation too slow | "Use a sample for testing" |
|
|
239
|
+
| Don't understand error | "Explain why validation failed" |
|
|
240
|
+
| Need help | "Show me examples of data quality checks" |
|
|
241
|
+
|
|
242
|
+
Remember, you can always ask the AI to explain what's happening or suggest solutions when you run into problems.
|
|
243
|
+
|
|
244
|
+
## Now You're Ready!
|
|
245
|
+
|
|
246
|
+
You now have everything needed to start validating data through conversation. The beauty of Pointblank's MCP server is that it grows with your expertise: start simple and gradually build more sophisticated validation workflows as you become comfortable with the interface.
|
|
247
|
+
|
|
248
|
+
Start with simple commands and build up to more complex validation workflows. The AI will guide you through the process and help you create robust data quality checks!
|
|
@@ -86,6 +86,20 @@ thresholds_proportional = pb.Thresholds(error=0.1)
|
|
|
86
86
|
With this configuration, the 'error' threshold would be triggered if 10% or more of the test units
|
|
87
87
|
fail.
|
|
88
88
|
|
|
89
|
+
### Boolean Shorthand
|
|
90
|
+
|
|
91
|
+
For cases where you want to allow exactly 1 failing test unit, you can use `True` as a convenient
|
|
92
|
+
shorthand:
|
|
93
|
+
|
|
94
|
+
```python
|
|
95
|
+
# Critical threshold of exactly 1 failing test unit
|
|
96
|
+
thresholds_boolean = pb.Thresholds(critical=True)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
This is equivalent to setting `critical=1` but provides a more intuitive way to express "allow at
|
|
100
|
+
most one failure". This shorthand is particularly useful for strict validations where any failure
|
|
101
|
+
beyond a single edge case should trigger immediate attention.
|
|
102
|
+
|
|
89
103
|
## Understanding Severity Levels
|
|
90
104
|
|
|
91
105
|
The three threshold levels in Pointblank ('warning', 'error', and 'critical') are inspired by
|
|
@@ -1388,6 +1388,17 @@ class RowsDistinct:
|
|
|
1388
1388
|
def get_test_results(self):
|
|
1389
1389
|
return self.test_unit_res
|
|
1390
1390
|
|
|
1391
|
+
def test(self):
|
|
1392
|
+
# Get the number of failing test units by counting instances of `False` in the `pb_is_good_`
|
|
1393
|
+
# column and then determine if the test passes overall by comparing the number of failing
|
|
1394
|
+
# test units to the threshold for failing test units
|
|
1395
|
+
|
|
1396
|
+
results_list = nw.from_native(self.test_unit_res)["pb_is_good_"].to_list()
|
|
1397
|
+
|
|
1398
|
+
return _threshold_check(
|
|
1399
|
+
failing_test_units=results_list.count(False), threshold=self.threshold
|
|
1400
|
+
)
|
|
1401
|
+
|
|
1391
1402
|
|
|
1392
1403
|
@dataclass
|
|
1393
1404
|
class RowsComplete:
|
|
@@ -2029,23 +2040,6 @@ def _column_has_null_values(table: FrameT, column: str) -> bool:
|
|
|
2029
2040
|
return True
|
|
2030
2041
|
|
|
2031
2042
|
|
|
2032
|
-
def _check_nulls_across_columns_ibis(table, columns_subset):
|
|
2033
|
-
# Get all column names from the table
|
|
2034
|
-
column_names = columns_subset if columns_subset else table.columns
|
|
2035
|
-
|
|
2036
|
-
# Build the expression by combining each column's isnull() with OR operations
|
|
2037
|
-
null_expr = functools.reduce(
|
|
2038
|
-
lambda acc, col: acc | table[col].isnull() if acc is not None else table[col].isnull(),
|
|
2039
|
-
column_names,
|
|
2040
|
-
None,
|
|
2041
|
-
)
|
|
2042
|
-
|
|
2043
|
-
# Add the expression as a new column to the table
|
|
2044
|
-
result = table.mutate(_any_is_null_=null_expr)
|
|
2045
|
-
|
|
2046
|
-
return result
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
2043
|
def _check_nulls_across_columns_nw(table, columns_subset):
|
|
2050
2044
|
# Get all column names from the table
|
|
2051
2045
|
column_names = columns_subset if columns_subset else table.columns
|