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.
Files changed (407) hide show
  1. {pointblank-0.12.2 → pointblank-0.13.0}/.gitignore +1 -0
  2. {pointblank-0.12.2 → pointblank-0.13.0}/CITATION.cff +1 -1
  3. {pointblank-0.12.2 → pointblank-0.13.0}/Makefile +9 -1
  4. {pointblank-0.12.2 → pointblank-0.13.0}/PKG-INFO +8 -1
  5. {pointblank-0.12.2 → pointblank-0.13.0}/docs/_quarto.yml +3 -0
  6. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/installation.qmd +26 -0
  7. pointblank-0.13.0/docs/user-guide/mcp-quick-start.qmd +248 -0
  8. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/thresholds.qmd +14 -0
  9. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_interrogation.py +11 -17
  10. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/validate.py +110 -139
  11. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/yaml.py +0 -20
  12. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/PKG-INFO +8 -1
  13. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/SOURCES.txt +5 -0
  14. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/requires.txt +9 -0
  15. pointblank-0.13.0/pointblank_mcp_server/pointblank_server.py +2077 -0
  16. pointblank-0.13.0/pointblank_mcp_server/readme.md +218 -0
  17. {pointblank-0.12.2 → pointblank-0.13.0}/pyproject.toml +18 -1
  18. pointblank-0.13.0/tests/test__interrogation.py +540 -0
  19. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test__utils.py +248 -0
  20. pointblank-0.13.0/tests/test_mcp_integration.py +251 -0
  21. pointblank-0.13.0/tests/test_mcp_server.py +162 -0
  22. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_segments.py +10 -5
  23. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_validate.py +499 -267
  24. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_yaml.py +935 -21
  25. pointblank-0.12.2/tests/test__interrogation.py +0 -272
  26. {pointblank-0.12.2 → pointblank-0.13.0}/.github/CODE_OF_CONDUCT.md +0 -0
  27. {pointblank-0.12.2 → pointblank-0.13.0}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  28. {pointblank-0.12.2 → pointblank-0.13.0}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  29. {pointblank-0.12.2 → pointblank-0.13.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  30. {pointblank-0.12.2 → pointblank-0.13.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  31. {pointblank-0.12.2 → pointblank-0.13.0}/.github/SECURITY.md +0 -0
  32. {pointblank-0.12.2 → pointblank-0.13.0}/.github/workflows/ci-docs.yaml +0 -0
  33. {pointblank-0.12.2 → pointblank-0.13.0}/.github/workflows/ci-tests.yaml +0 -0
  34. {pointblank-0.12.2 → pointblank-0.13.0}/.github/workflows/code-checks.yaml +0 -0
  35. {pointblank-0.12.2 → pointblank-0.13.0}/.pre-commit-config.yaml +0 -0
  36. {pointblank-0.12.2 → pointblank-0.13.0}/.vscode/settings.json +0 -0
  37. {pointblank-0.12.2 → pointblank-0.13.0}/CONTRIBUTING.md +0 -0
  38. {pointblank-0.12.2 → pointblank-0.13.0}/LICENSE +0 -0
  39. {pointblank-0.12.2 → pointblank-0.13.0}/README.md +0 -0
  40. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/game_revenue.csv +0 -0
  41. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/global_sales.csv +0 -0
  42. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/global_sales_dataset.qmd +0 -0
  43. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/nycflights.csv +0 -0
  44. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/small_table.csv +0 -0
  45. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/worldcities.csv +0 -0
  46. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/x-01-parquet.qmd +0 -0
  47. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/x-02-duckdb.qmd +0 -0
  48. {pointblank-0.12.2 → pointblank-0.13.0}/data_raw/x-03-sqlite.qmd +0 -0
  49. {pointblank-0.12.2 → pointblank-0.13.0}/docs/.gitignore +0 -0
  50. {pointblank-0.12.2 → pointblank-0.13.0}/docs/_extensions/machow/interlinks/.gitignore +0 -0
  51. {pointblank-0.12.2 → pointblank-0.13.0}/docs/_extensions/machow/interlinks/_extension.yml +0 -0
  52. {pointblank-0.12.2 → pointblank-0.13.0}/docs/_extensions/machow/interlinks/interlinks.lua +0 -0
  53. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/fav-logo.png +0 -0
  54. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-info-worldcities-csv.png +0 -0
  55. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-info-worldcities-github-csv.png +0 -0
  56. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-make-template.png +0 -0
  57. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-missing-worldcities-csv.png +0 -0
  58. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-game_revenue-all-columns.png +0 -0
  59. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-game_revenue-column-names.png +0 -0
  60. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-game_revenue-column-range.png +0 -0
  61. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-worldcities-csv-no-row-numbers.png +0 -0
  62. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-preview-worldcities-csv.png +0 -0
  63. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation-extracts.png +0 -0
  64. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation-fail-on-warning.png +0 -0
  65. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation-output.png +0 -0
  66. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-run-worldcities_validation.png +0 -0
  67. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-scan-worldcities-csv.png +0 -0
  68. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-exit-code.png +0 -0
  69. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-multi-check.png +0 -0
  70. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-rows-complete-worldcities-csv.png +0 -0
  71. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-rows-distinct-worldcities-csv.png +0 -0
  72. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-show-extract.png +0 -0
  73. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-worldcities-gt-0-population.png +0 -0
  74. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-worldcities-not-null-city_name.png +0 -0
  75. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pb-validate-write-extract.png +0 -0
  76. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.de.png +0 -0
  77. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.es.png +0 -0
  78. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.fr.png +0 -0
  79. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.it.png +0 -0
  80. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.ja.png +0 -0
  81. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.ko.png +0 -0
  82. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.nl.png +0 -0
  83. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.png +0 -0
  84. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.pt-BR.png +0 -0
  85. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-sales-data.zh-CN.png +0 -0
  86. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-step-report.png +0 -0
  87. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank-tabular-report.png +0 -0
  88. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/pointblank_logo.svg +0 -0
  89. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/posit-logo-black.svg +0 -0
  90. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/validation-table-diagram.png +0 -0
  91. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/validation-test-units.png +0 -0
  92. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/.gitignore +0 -0
  93. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-cicd-workflows.gif +0 -0
  94. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-cicd-workflows.tape +0 -0
  95. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-complete-workflow.gif +0 -0
  96. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-complete-workflow.tape +0 -0
  97. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-data-exploration.gif +0 -0
  98. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-data-exploration.tape +0 -0
  99. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-essential-validations.gif +0 -0
  100. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-essential-validations.tape +0 -0
  101. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-getting-started.gif +0 -0
  102. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-getting-started.tape +0 -0
  103. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-using-polars.gif +0 -0
  104. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/cli-using-polars.tape +0 -0
  105. {pointblank-0.12.2 → pointblank-0.13.0}/docs/assets/vhs/validation.py +0 -0
  106. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/all-about-actions/index.qmd +0 -0
  107. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/index.qmd +0 -0
  108. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/index.qmd +0 -0
  109. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/pointblank-localized.png +0 -0
  110. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/step_report.png +0 -0
  111. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/validation-table-diagram.png +0 -0
  112. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/intro-pointblank/validation-test-units.png +0 -0
  113. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/lets-workshop-together/index.qmd +0 -0
  114. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/advanced-in-sidebar.png +0 -0
  115. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/breadth-and-depth.png +0 -0
  116. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/explanation-of-visual.png +0 -0
  117. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/index.qmd +0 -0
  118. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/links-in-guide.png +0 -0
  119. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/segments.png +0 -0
  120. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/step-report.png +0 -0
  121. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/overhauled-user-guide/validation-three-things.png +0 -0
  122. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/pointblank_blog_logo.png +0 -0
  123. {pointblank-0.12.2 → pointblank-0.13.0}/docs/blog/validation-libs-2025/index.qmd +0 -0
  124. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/01-starter/index.qmd +0 -0
  125. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/02-advanced/index.qmd +0 -0
  126. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/03-data-extracts/index.qmd +0 -0
  127. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/04-sundered-data/index.qmd +0 -0
  128. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/05-step-report-column-check/index.qmd +0 -0
  129. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/06-step-report-schema-check/index.qmd +0 -0
  130. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/07-validation-with-actions/index.qmd +0 -0
  131. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/08-validation-with-final-actions/index.qmd +0 -0
  132. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/apply-checks-to-several-columns/index.qmd +0 -0
  133. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/check-for-freshness/index.qmd +0 -0
  134. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/check-row-column-counts/index.qmd +0 -0
  135. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/checks-for-missing/index.qmd +0 -0
  136. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/cli-interactive/index.qmd +0 -0
  137. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/col-vals-custom-expr/index.qmd +0 -0
  138. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/column-selector-functions/index.qmd +0 -0
  139. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/comparisons-across-columns/index.qmd +0 -0
  140. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/custom-validation-specially/index.qmd +0 -0
  141. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/data/game_revenue.parquet +0 -0
  142. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/expect-no-duplicate-rows/index.qmd +0 -0
  143. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/expect-no-duplicate-values/index.qmd +0 -0
  144. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/expect-text-pattern/index.qmd +0 -0
  145. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/failure-thresholds/index.qmd +0 -0
  146. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/advanced_validation.png +0 -0
  147. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/data_extracts.png +0 -0
  148. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/starter_validation.png +0 -0
  149. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/step_report_column_schema.png +0 -0
  150. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/step_report_column_values.png +0 -0
  151. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/sundered_data.png +0 -0
  152. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/validation_with_actions.png +0 -0
  153. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/img/validation_with_final_actions.png +0 -0
  154. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/index.qmd +0 -0
  155. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/mutate-table-in-step/index.qmd +0 -0
  156. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/numeric-comparisons/index.qmd +0 -0
  157. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/schema-check/index.qmd +0 -0
  158. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/set-membership/index.qmd +0 -0
  159. {pointblank-0.12.2 → pointblank-0.13.0}/docs/demos/using-parquet-data/index.qmd +0 -0
  160. {pointblank-0.12.2 → pointblank-0.13.0}/docs/index.qmd +0 -0
  161. {pointblank-0.12.2 → pointblank-0.13.0}/docs/scripts/post-render.py +0 -0
  162. {pointblank-0.12.2 → pointblank-0.13.0}/docs/styles.css +0 -0
  163. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/actions.qmd +0 -0
  164. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/assertions.qmd +0 -0
  165. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/briefs.qmd +0 -0
  166. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/cli-data-inspection.qmd +0 -0
  167. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/cli-data-validation.qmd +0 -0
  168. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/cli-reference.qmd +0 -0
  169. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/col-summary-tbl.qmd +0 -0
  170. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/column-selection-patterns.qmd +0 -0
  171. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/draft-validation.qmd +0 -0
  172. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/expressions.qmd +0 -0
  173. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/extracts.qmd +0 -0
  174. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/index.qmd +0 -0
  175. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/langs.qmd +0 -0
  176. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/missing-vals-tbl.qmd +0 -0
  177. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/preprocessing.qmd +0 -0
  178. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/preview.qmd +0 -0
  179. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/schema-validation.qmd +0 -0
  180. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/segmentation.qmd +0 -0
  181. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/step-reports.qmd +0 -0
  182. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/sundering.qmd +0 -0
  183. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/validation-methods.qmd +0 -0
  184. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/validation-overview.qmd +0 -0
  185. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/yaml-reference.qmd +0 -0
  186. {pointblank-0.12.2 → pointblank-0.13.0}/docs/user-guide/yaml-validation-workflows.qmd +0 -0
  187. {pointblank-0.12.2 → pointblank-0.13.0}/images/pointblank-tabular-report.png +0 -0
  188. {pointblank-0.12.2 → pointblank-0.13.0}/images/pointblank_logo.svg +0 -0
  189. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/__init__.py +0 -0
  190. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_constants.py +0 -0
  191. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_constants_docs.py +0 -0
  192. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_constants_translations.py +0 -0
  193. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_datascan_utils.py +0 -0
  194. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_typing.py +0 -0
  195. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_utils.py +0 -0
  196. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_utils_check_args.py +0 -0
  197. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/_utils_html.py +0 -0
  198. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/actions.py +0 -0
  199. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/assistant.py +0 -0
  200. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/cli.py +0 -0
  201. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/column.py +0 -0
  202. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/compare.py +0 -0
  203. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/api-docs.txt +0 -0
  204. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/game_revenue-duckdb.zip +0 -0
  205. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/game_revenue.zip +0 -0
  206. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/global_sales-duckdb.zip +0 -0
  207. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/global_sales.zip +0 -0
  208. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/nycflights-duckdb.zip +0 -0
  209. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/nycflights.zip +0 -0
  210. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/polars-api-docs.txt +0 -0
  211. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/small_table-duckdb.zip +0 -0
  212. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/data/small_table.zip +0 -0
  213. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/datascan.py +0 -0
  214. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/draft.py +0 -0
  215. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/scan_profile.py +0 -0
  216. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/scan_profile_stats.py +0 -0
  217. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/schema.py +0 -0
  218. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/segments.py +0 -0
  219. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/tf.py +0 -0
  220. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank/thresholds.py +0 -0
  221. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/dependency_links.txt +0 -0
  222. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/entry_points.txt +0 -0
  223. {pointblank-0.12.2 → pointblank-0.13.0}/pointblank.egg-info/top_level.txt +0 -0
  224. {pointblank-0.12.2 → pointblank-0.13.0}/setup.cfg +0 -0
  225. {pointblank-0.12.2 → pointblank-0.13.0}/tests/__init__.py +0 -0
  226. {pointblank-0.12.2 → pointblank-0.13.0}/tests/manual_tests/schema_step_reports.qmd +0 -0
  227. {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
  228. {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
  229. {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
  230. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_comprehensive_validation_report_html_snap/comprehensive_validation_report.html +0 -0
  231. {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
  232. {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
  233. {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
  234. {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
  235. {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
  236. {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
  237. {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
  238. {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
  239. {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
  240. {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
  241. {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
  242. {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
  243. {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
  244. {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
  245. {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
  246. {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
  247. {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
  248. {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
  249. {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
  250. {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
  251. {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
  252. {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
  253. {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
  254. {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
  255. {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
  256. {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
  257. {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
  258. {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
  259. {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
  260. {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
  261. {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
  262. {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
  263. {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
  264. {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
  265. {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
  266. {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
  267. {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
  268. {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
  269. {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
  270. {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
  271. {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
  272. {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
  273. {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
  274. {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
  275. {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
  276. {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
  277. {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
  278. {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
  279. {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
  280. {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
  281. {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
  282. {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
  283. {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
  284. {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
  285. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_01-0.txt +0 -0
  286. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_02-0.txt +0 -0
  287. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_03-0.txt +0 -0
  288. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_04-0.txt +0 -0
  289. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_05-0.txt +0 -0
  290. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_06-0.txt +0 -0
  291. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_07-0.txt +0 -0
  292. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_08-0.txt +0 -0
  293. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_09-0.txt +0 -0
  294. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_10-0.txt +0 -0
  295. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_11-0.txt +0 -0
  296. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_12-0.txt +0 -0
  297. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_13-0.txt +0 -0
  298. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-0.txt +0 -0
  299. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-1.txt +0 -0
  300. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-0.txt +0 -0
  301. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-1.txt +0 -0
  302. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-0.txt +0 -0
  303. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-1.txt +0 -0
  304. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-0.txt +0 -0
  305. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-1.txt +0 -0
  306. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-0.txt +0 -0
  307. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-1.txt +0 -0
  308. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-0.txt +0 -0
  309. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-1.txt +0 -0
  310. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-0.txt +0 -0
  311. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-1.txt +0 -0
  312. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-0.txt +0 -0
  313. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-1.txt +0 -0
  314. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-2.txt +0 -0
  315. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-3.txt +0 -0
  316. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-0.txt +0 -0
  317. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-1.txt +0 -0
  318. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-0.txt +0 -0
  319. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-1.txt +0 -0
  320. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-0.txt +0 -0
  321. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-1.txt +0 -0
  322. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-2.txt +0 -0
  323. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-3.txt +0 -0
  324. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-0.txt +0 -0
  325. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-1.txt +0 -0
  326. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-2.txt +0 -0
  327. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-3.txt +0 -0
  328. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-4.txt +0 -0
  329. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-5.txt +0 -0
  330. {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
  331. {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
  332. {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
  333. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_briefs_html/validation_report_with_briefs.html +0 -0
  334. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
  335. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_parquet/validation_report.json +0 -0
  336. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pd/validation_report.json +0 -0
  337. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pl/validation_report.json +0 -0
  338. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pyspark/validation_report.json +0 -0
  339. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
  340. {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
  341. {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
  342. {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
  343. {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
  344. {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
  345. {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
  346. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_html/duckdb/validation_report_segments.html +0 -0
  347. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_html/pandas/validation_report_segments.html +0 -0
  348. {pointblank-0.12.2 → pointblank-0.13.0}/tests/snapshots/test_validate/test_validation_report_segments_html/polars/validation_report_segments.html +0 -0
  349. {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
  350. {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
  351. {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
  352. {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
  353. {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
  354. {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
  355. {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
  356. {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
  357. {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
  358. {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
  359. {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
  360. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/parquet_data/data_a.parquet +0 -0
  361. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/parquet_data/data_b.parquet +0 -0
  362. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/parquet_data/subdir/nested_data.parquet +0 -0
  363. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=cancelled/0.parquet +0 -0
  364. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=delivered/0.parquet +0 -0
  365. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=pending/0.parquet +0 -0
  366. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=returned/0.parquet +0 -0
  367. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_sales/status=shipped/0.parquet +0 -0
  368. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_small_table/f=high/0.parquet +0 -0
  369. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_small_table/f=low/0.parquet +0 -0
  370. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/partitioned_small_table/f=mid/0.parquet +0 -0
  371. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_part_01.parquet +0 -0
  372. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_part_02.parquet +0 -0
  373. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_part_03.parquet +0 -0
  374. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/taxi_sample.parquet +0 -0
  375. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_dates_times_text.ddb +0 -0
  376. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_dates_times_text.parquet +0 -0
  377. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_dates_times_text.sqlite +0 -0
  378. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_true_dates_times.ddb +0 -0
  379. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz.ddb +0 -0
  380. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz.parquet +0 -0
  381. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz.sqlite +0 -0
  382. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz_missing.ddb +0 -0
  383. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz_missing.parquet +0 -0
  384. {pointblank-0.12.2 → pointblank-0.13.0}/tests/tbl_files/tbl_xyz_missing.sqlite +0 -0
  385. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test__utils_check_args.py +0 -0
  386. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_actions.py +0 -0
  387. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_assistant.py +0 -0
  388. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_cli.py +0 -0
  389. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_column.py +0 -0
  390. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_compare.py +0 -0
  391. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_datascan.py +0 -0
  392. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_draft.py +0 -0
  393. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_meta.py +0 -0
  394. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_schema.py +0 -0
  395. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_tf.py +0 -0
  396. {pointblank-0.12.2 → pointblank-0.13.0}/tests/test_thresholds.py +0 -0
  397. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.ar.md +0 -0
  398. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.de.md +0 -0
  399. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.es.md +0 -0
  400. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.fr.md +0 -0
  401. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.hi.md +0 -0
  402. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.it.md +0 -0
  403. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.ja.md +0 -0
  404. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.ko.md +0 -0
  405. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.nl.md +0 -0
  406. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.pt-BR.md +0 -0
  407. {pointblank-0.12.2 → pointblank-0.13.0}/translations/README.zh-CN.md +0 -0
@@ -133,3 +133,4 @@ benchmark/data/*.json
133
133
  .swp
134
134
 
135
135
  uv.lock
136
+ memory
@@ -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.11.3
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.12.2
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