pointblank 0.9.5__tar.gz → 0.9.6__tar.gz

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