pointblank 0.9.0__tar.gz → 0.9.1__tar.gz

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