pointblank 0.10.0__tar.gz → 0.11.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 (366) hide show
  1. {pointblank-0.10.0 → pointblank-0.11.1}/PKG-INFO +52 -1
  2. {pointblank-0.10.0 → pointblank-0.11.1}/README.md +49 -0
  3. {pointblank-0.10.0 → pointblank-0.11.1}/docs/_quarto.yml +7 -0
  4. pointblank-0.11.1/docs/assets/vhs/.gitignore +1 -0
  5. pointblank-0.11.1/docs/assets/vhs/cli-cicd-workflows.gif +0 -0
  6. pointblank-0.11.1/docs/assets/vhs/cli-cicd-workflows.tape +45 -0
  7. pointblank-0.11.1/docs/assets/vhs/cli-complete-workflow.gif +0 -0
  8. pointblank-0.11.1/docs/assets/vhs/cli-complete-workflow.tape +75 -0
  9. pointblank-0.11.1/docs/assets/vhs/cli-data-exploration.gif +0 -0
  10. pointblank-0.11.1/docs/assets/vhs/cli-data-exploration.tape +51 -0
  11. pointblank-0.11.1/docs/assets/vhs/cli-essential-validations.gif +0 -0
  12. pointblank-0.11.1/docs/assets/vhs/cli-essential-validations.tape +51 -0
  13. pointblank-0.11.1/docs/assets/vhs/cli-getting-started.gif +0 -0
  14. pointblank-0.11.1/docs/assets/vhs/cli-getting-started.tape +51 -0
  15. pointblank-0.11.1/docs/demos/cli-interactive/index.qmd +138 -0
  16. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/index.qmd +3 -0
  17. {pointblank-0.10.0 → pointblank-0.11.1}/docs/index.qmd +59 -4
  18. pointblank-0.11.1/docs/user-guide/cli-data-inspection.qmd +122 -0
  19. pointblank-0.11.1/docs/user-guide/cli-data-validation.qmd +172 -0
  20. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/installation.qmd +30 -2
  21. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/assistant.py +14 -3
  22. pointblank-0.11.1/pointblank/cli.py +3644 -0
  23. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/compare.py +9 -0
  24. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/datascan.py +25 -3
  25. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/validate.py +346 -37
  26. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank.egg-info/PKG-INFO +52 -1
  27. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank.egg-info/SOURCES.txt +17 -0
  28. pointblank-0.11.1/pointblank.egg-info/entry_points.txt +2 -0
  29. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank.egg-info/requires.txt +2 -0
  30. {pointblank-0.10.0 → pointblank-0.11.1}/pyproject.toml +5 -0
  31. pointblank-0.11.1/tests/test_cli.py +1383 -0
  32. pointblank-0.11.1/tests/test_compare.py +73 -0
  33. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_datascan.py +208 -2
  34. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_validate.py +403 -0
  35. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.ar.md +49 -0
  36. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.de.md +49 -0
  37. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.es.md +49 -0
  38. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.fr.md +49 -0
  39. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.hi.md +49 -0
  40. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.it.md +49 -0
  41. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.ja.md +49 -0
  42. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.ko.md +49 -0
  43. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.nl.md +50 -1
  44. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.pt-BR.md +49 -0
  45. {pointblank-0.10.0 → pointblank-0.11.1}/translations/README.zh-CN.md +67 -4
  46. pointblank-0.10.0/tests/test_compare.py +0 -15
  47. {pointblank-0.10.0 → pointblank-0.11.1}/.github/CODE_OF_CONDUCT.md +0 -0
  48. {pointblank-0.10.0 → pointblank-0.11.1}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  49. {pointblank-0.10.0 → pointblank-0.11.1}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  50. {pointblank-0.10.0 → pointblank-0.11.1}/.github/ISSUE_TEMPLATE/question.md +0 -0
  51. {pointblank-0.10.0 → pointblank-0.11.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  52. {pointblank-0.10.0 → pointblank-0.11.1}/.github/SECURITY.md +0 -0
  53. {pointblank-0.10.0 → pointblank-0.11.1}/.github/workflows/ci-docs.yaml +0 -0
  54. {pointblank-0.10.0 → pointblank-0.11.1}/.github/workflows/ci-tests.yaml +0 -0
  55. {pointblank-0.10.0 → pointblank-0.11.1}/.github/workflows/code-checks.yaml +0 -0
  56. {pointblank-0.10.0 → pointblank-0.11.1}/.gitignore +0 -0
  57. {pointblank-0.10.0 → pointblank-0.11.1}/.pre-commit-config.yaml +0 -0
  58. {pointblank-0.10.0 → pointblank-0.11.1}/.vscode/settings.json +0 -0
  59. {pointblank-0.10.0 → pointblank-0.11.1}/CITATION.cff +0 -0
  60. {pointblank-0.10.0 → pointblank-0.11.1}/CONTRIBUTING.md +0 -0
  61. {pointblank-0.10.0 → pointblank-0.11.1}/LICENSE +0 -0
  62. {pointblank-0.10.0 → pointblank-0.11.1}/Makefile +0 -0
  63. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/game_revenue.csv +0 -0
  64. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/global_sales.csv +0 -0
  65. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/global_sales_dataset.qmd +0 -0
  66. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/nycflights.csv +0 -0
  67. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/small_table.csv +0 -0
  68. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/x-01-parquet.qmd +0 -0
  69. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/x-02-duckdb.qmd +0 -0
  70. {pointblank-0.10.0 → pointblank-0.11.1}/data_raw/x-03-sqlite.qmd +0 -0
  71. {pointblank-0.10.0 → pointblank-0.11.1}/docs/.gitignore +0 -0
  72. {pointblank-0.10.0 → pointblank-0.11.1}/docs/_extensions/machow/interlinks/.gitignore +0 -0
  73. {pointblank-0.10.0 → pointblank-0.11.1}/docs/_extensions/machow/interlinks/_extension.yml +0 -0
  74. {pointblank-0.10.0 → pointblank-0.11.1}/docs/_extensions/machow/interlinks/interlinks.lua +0 -0
  75. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/fav-logo.png +0 -0
  76. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.de.png +0 -0
  77. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.es.png +0 -0
  78. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.fr.png +0 -0
  79. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.it.png +0 -0
  80. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.ja.png +0 -0
  81. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.ko.png +0 -0
  82. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.nl.png +0 -0
  83. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.png +0 -0
  84. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.pt-BR.png +0 -0
  85. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-sales-data.zh-CN.png +0 -0
  86. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-step-report.png +0 -0
  87. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank-tabular-report.png +0 -0
  88. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/pointblank_logo.svg +0 -0
  89. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/posit-logo-black.svg +0 -0
  90. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/validation-table-diagram.png +0 -0
  91. {pointblank-0.10.0 → pointblank-0.11.1}/docs/assets/validation-test-units.png +0 -0
  92. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/all-about-actions/index.qmd +0 -0
  93. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/index.qmd +0 -0
  94. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/intro-pointblank/index.qmd +0 -0
  95. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/intro-pointblank/pointblank-localized.png +0 -0
  96. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/intro-pointblank/step_report.png +0 -0
  97. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/intro-pointblank/validation-table-diagram.png +0 -0
  98. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/intro-pointblank/validation-test-units.png +0 -0
  99. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/lets-workshop-together/index.qmd +0 -0
  100. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/advanced-in-sidebar.png +0 -0
  101. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/breadth-and-depth.png +0 -0
  102. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/explanation-of-visual.png +0 -0
  103. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/index.qmd +0 -0
  104. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/links-in-guide.png +0 -0
  105. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/segments.png +0 -0
  106. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/step-report.png +0 -0
  107. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/overhauled-user-guide/validation-three-things.png +0 -0
  108. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/pointblank_blog_logo.png +0 -0
  109. {pointblank-0.10.0 → pointblank-0.11.1}/docs/blog/validation-libs-2025/index.qmd +0 -0
  110. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/01-starter/index.qmd +0 -0
  111. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/02-advanced/index.qmd +0 -0
  112. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/03-data-extracts/index.qmd +0 -0
  113. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/04-sundered-data/index.qmd +0 -0
  114. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/05-step-report-column-check/index.qmd +0 -0
  115. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/06-step-report-schema-check/index.qmd +0 -0
  116. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/07-validation-with-actions/index.qmd +0 -0
  117. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/08-validation-with-final-actions/index.qmd +0 -0
  118. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/apply-checks-to-several-columns/index.qmd +0 -0
  119. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/check-for-freshness/index.qmd +0 -0
  120. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/check-row-column-counts/index.qmd +0 -0
  121. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/checks-for-missing/index.qmd +0 -0
  122. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/col-vals-custom-expr/index.qmd +0 -0
  123. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/column-selector-functions/index.qmd +0 -0
  124. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/comparisons-across-columns/index.qmd +0 -0
  125. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/custom-validation-specially/index.qmd +0 -0
  126. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/data/game_revenue.parquet +0 -0
  127. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/expect-no-duplicate-rows/index.qmd +0 -0
  128. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/expect-no-duplicate-values/index.qmd +0 -0
  129. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/expect-text-pattern/index.qmd +0 -0
  130. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/failure-thresholds/index.qmd +0 -0
  131. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/advanced_validation.png +0 -0
  132. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/data_extracts.png +0 -0
  133. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/starter_validation.png +0 -0
  134. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/step_report_column_schema.png +0 -0
  135. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/step_report_column_values.png +0 -0
  136. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/sundered_data.png +0 -0
  137. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/validation_with_actions.png +0 -0
  138. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/img/validation_with_final_actions.png +0 -0
  139. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/mutate-table-in-step/index.qmd +0 -0
  140. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/numeric-comparisons/index.qmd +0 -0
  141. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/schema-check/index.qmd +0 -0
  142. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/set-membership/index.qmd +0 -0
  143. {pointblank-0.10.0 → pointblank-0.11.1}/docs/demos/using-parquet-data/index.qmd +0 -0
  144. {pointblank-0.10.0 → pointblank-0.11.1}/docs/scripts/post-render.py +0 -0
  145. {pointblank-0.10.0 → pointblank-0.11.1}/docs/styles.css +0 -0
  146. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/actions.qmd +0 -0
  147. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/assertions.qmd +0 -0
  148. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/briefs.qmd +0 -0
  149. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/col-summary-tbl.qmd +0 -0
  150. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/column-selection-patterns.qmd +0 -0
  151. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/draft-validation.qmd +0 -0
  152. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/expressions.qmd +0 -0
  153. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/extracts.qmd +0 -0
  154. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/index.qmd +0 -0
  155. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/langs.qmd +0 -0
  156. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/missing-vals-tbl.qmd +0 -0
  157. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/preprocessing.qmd +0 -0
  158. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/preview.qmd +0 -0
  159. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/schema-validation.qmd +0 -0
  160. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/segmentation.qmd +0 -0
  161. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/step-reports.qmd +0 -0
  162. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/sundering.qmd +0 -0
  163. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/thresholds.qmd +0 -0
  164. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/validation-methods.qmd +0 -0
  165. {pointblank-0.10.0 → pointblank-0.11.1}/docs/user-guide/validation-overview.qmd +0 -0
  166. {pointblank-0.10.0 → pointblank-0.11.1}/images/pointblank-tabular-report.png +0 -0
  167. {pointblank-0.10.0 → pointblank-0.11.1}/images/pointblank_logo.svg +0 -0
  168. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/__init__.py +0 -0
  169. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_constants.py +0 -0
  170. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_constants_docs.py +0 -0
  171. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_constants_translations.py +0 -0
  172. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_datascan_utils.py +0 -0
  173. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_interrogation.py +0 -0
  174. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_typing.py +0 -0
  175. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_utils.py +0 -0
  176. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_utils_check_args.py +0 -0
  177. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/_utils_html.py +0 -0
  178. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/actions.py +0 -0
  179. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/column.py +0 -0
  180. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/api-docs.txt +0 -0
  181. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/game_revenue-duckdb.zip +0 -0
  182. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/game_revenue.zip +0 -0
  183. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/global_sales-duckdb.zip +0 -0
  184. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/global_sales.zip +0 -0
  185. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/nycflights-duckdb.zip +0 -0
  186. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/nycflights.zip +0 -0
  187. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/polars-api-docs.txt +0 -0
  188. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/small_table-duckdb.zip +0 -0
  189. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/data/small_table.zip +0 -0
  190. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/draft.py +0 -0
  191. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/scan_profile.py +0 -0
  192. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/scan_profile_stats.py +0 -0
  193. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/schema.py +0 -0
  194. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/tf.py +0 -0
  195. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank/thresholds.py +0 -0
  196. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank.egg-info/dependency_links.txt +0 -0
  197. {pointblank-0.10.0 → pointblank-0.11.1}/pointblank.egg-info/top_level.txt +0 -0
  198. {pointblank-0.10.0 → pointblank-0.11.1}/setup.cfg +0 -0
  199. {pointblank-0.10.0 → pointblank-0.11.1}/tests/__init__.py +0 -0
  200. {pointblank-0.10.0 → pointblank-0.11.1}/tests/manual_tests/schema_step_reports.qmd +0 -0
  201. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_datascan/test_col_summary_tbl_duckdb_snap/col_summary_html_duckdb.html +0 -0
  202. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_datascan/test_col_summary_tbl_pandas_snap/col_summary_html_pandas.html +0 -0
  203. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_datascan/test_col_summary_tbl_polars_snap/col_summary_html_polars.html +0 -0
  204. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_comprehensive_validation_report_html_snap/comprehensive_validation_report.html +0 -0
  205. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_01/schema_step_report_01-0.txt +0 -0
  206. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_01_1/schema_step_report_01-1.txt +0 -0
  207. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_01_2/schema_step_report_01-2.txt +0 -0
  208. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_01_3/schema_step_report_01-3.txt +0 -0
  209. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_02/schema_step_report_02-0.txt +0 -0
  210. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_02_1/schema_step_report_02-1.txt +0 -0
  211. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_02_2/schema_step_report_02-2.txt +0 -0
  212. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_02_3/schema_step_report_02-3.txt +0 -0
  213. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_03/schema_step_report_03-0.txt +0 -0
  214. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_03_1/schema_step_report_03-1.txt +0 -0
  215. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_03_2/schema_step_report_03-2.txt +0 -0
  216. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_03_3/schema_step_report_03-3.txt +0 -0
  217. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_04/schema_step_report_04-0.txt +0 -0
  218. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_05/schema_step_report_05-0.txt +0 -0
  219. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_06/schema_step_report_06-0.txt +0 -0
  220. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_07/schema_step_report_07-0.txt +0 -0
  221. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_08/schema_step_report_08-0.txt +0 -0
  222. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_09/schema_step_report_09-0.txt +0 -0
  223. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_10/schema_step_report_10-0.txt +0 -0
  224. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_11/schema_step_report_11-0.txt +0 -0
  225. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_12/schema_step_report_12-0.txt +0 -0
  226. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_13/schema_step_report_13-0.txt +0 -0
  227. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_14/schema_step_report_14-0.txt +0 -0
  228. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_14_1/schema_step_report_14-1.txt +0 -0
  229. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_15/schema_step_report_15-0.txt +0 -0
  230. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_15_1/schema_step_report_15-1.txt +0 -0
  231. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_16/schema_step_report_16-0.txt +0 -0
  232. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_16_1/schema_step_report_16-1.txt +0 -0
  233. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_17/schema_step_report_17-0.txt +0 -0
  234. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_17_1/schema_step_report_17-1.txt +0 -0
  235. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_18/schema_step_report_18-0.txt +0 -0
  236. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_18_1/schema_step_report_18-1.txt +0 -0
  237. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_19/schema_step_report_19-0.txt +0 -0
  238. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_19_1/schema_step_report_19-1.txt +0 -0
  239. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_20/schema_step_report_20-0.txt +0 -0
  240. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_20_1/schema_step_report_20-1.txt +0 -0
  241. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_21/schema_step_report_21-0.txt +0 -0
  242. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_21_1/schema_step_report_21-1.txt +0 -0
  243. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_21_2/schema_step_report_21-2.txt +0 -0
  244. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_21_3/schema_step_report_21-3.txt +0 -0
  245. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_22/schema_step_report_22-0.txt +0 -0
  246. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_22_1/schema_step_report_22-1.txt +0 -0
  247. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_23/schema_step_report_23-0.txt +0 -0
  248. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_23_1/schema_step_report_23-1.txt +0 -0
  249. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_24/schema_step_report_24-0.txt +0 -0
  250. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_24_1/schema_step_report_24-1.txt +0 -0
  251. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_24_2/schema_step_report_24-2.txt +0 -0
  252. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_24_3/schema_step_report_24-3.txt +0 -0
  253. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_25/schema_step_report_25-0.txt +0 -0
  254. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_1/schema_step_report_25-1.txt +0 -0
  255. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_2/schema_step_report_25-2.txt +0 -0
  256. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_3/schema_step_report_25-3.txt +0 -0
  257. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_4/schema_step_report_25-4.txt +0 -0
  258. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_step_report_25_5/schema_step_report_25-5.txt +0 -0
  259. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_01-0.txt +0 -0
  260. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_02-0.txt +0 -0
  261. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_03-0.txt +0 -0
  262. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_04-0.txt +0 -0
  263. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_05-0.txt +0 -0
  264. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_06-0.txt +0 -0
  265. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_07-0.txt +0 -0
  266. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_08-0.txt +0 -0
  267. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_09-0.txt +0 -0
  268. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_10-0.txt +0 -0
  269. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_11-0.txt +0 -0
  270. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_12-0.txt +0 -0
  271. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_13-0.txt +0 -0
  272. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-0.txt +0 -0
  273. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-1.txt +0 -0
  274. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-0.txt +0 -0
  275. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-1.txt +0 -0
  276. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-0.txt +0 -0
  277. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-1.txt +0 -0
  278. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-0.txt +0 -0
  279. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-1.txt +0 -0
  280. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-0.txt +0 -0
  281. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-1.txt +0 -0
  282. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-0.txt +0 -0
  283. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-1.txt +0 -0
  284. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-0.txt +0 -0
  285. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-1.txt +0 -0
  286. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-0.txt +0 -0
  287. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-1.txt +0 -0
  288. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-2.txt +0 -0
  289. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-3.txt +0 -0
  290. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-0.txt +0 -0
  291. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-1.txt +0 -0
  292. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-0.txt +0 -0
  293. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-1.txt +0 -0
  294. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-0.txt +0 -0
  295. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-1.txt +0 -0
  296. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-2.txt +0 -0
  297. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-3.txt +0 -0
  298. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-0.txt +0 -0
  299. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-1.txt +0 -0
  300. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-2.txt +0 -0
  301. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-3.txt +0 -0
  302. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-4.txt +0 -0
  303. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-5.txt +0 -0
  304. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_no_interrogation_validation_report_html_snap/no_interrogation_validation_report.html +0 -0
  305. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_no_steps_validation_report_html_snap/no_steps_validation_report.html +0 -0
  306. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_briefs_global_local_html/validation_report_briefs_global_local.html +0 -0
  307. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_briefs_html/validation_report_with_briefs.html +0 -0
  308. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
  309. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_parquet/validation_report.json +0 -0
  310. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pd/validation_report.json +0 -0
  311. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pl/validation_report.json +0 -0
  312. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
  313. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
  314. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_parquet/validation_report.json +0 -0
  315. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pd/validation_report.json +0 -0
  316. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pl/validation_report.json +0 -0
  317. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
  318. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_segments_html/duckdb/validation_report_segments.html +0 -0
  319. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_segments_html/pandas/validation_report_segments.html +0 -0
  320. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_segments_html/polars/validation_report_segments.html +0 -0
  321. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/polars/validation_report_segments_with_pre.html +0 -0
  322. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/validation_report_segments_with_pre.html +0 -0
  323. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_duckdb/validation_report.json +0 -0
  324. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_parquet/validation_report.json +0 -0
  325. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pd/validation_report.json +0 -0
  326. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pl/validation_report.json +0 -0
  327. {pointblank-0.10.0 → pointblank-0.11.1}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_sqlite/validation_report.json +0 -0
  328. {pointblank-0.10.0 → pointblank-0.11.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
  329. {pointblank-0.10.0 → pointblank-0.11.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
  330. {pointblank-0.10.0 → pointblank-0.11.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
  331. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/parquet_data/data_a.parquet +0 -0
  332. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/parquet_data/data_b.parquet +0 -0
  333. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/parquet_data/subdir/nested_data.parquet +0 -0
  334. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_sales/status=cancelled/0.parquet +0 -0
  335. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_sales/status=delivered/0.parquet +0 -0
  336. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_sales/status=pending/0.parquet +0 -0
  337. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_sales/status=returned/0.parquet +0 -0
  338. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_sales/status=shipped/0.parquet +0 -0
  339. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_small_table/f=high/0.parquet +0 -0
  340. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_small_table/f=low/0.parquet +0 -0
  341. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/partitioned_small_table/f=mid/0.parquet +0 -0
  342. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/taxi_part_01.parquet +0 -0
  343. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/taxi_part_02.parquet +0 -0
  344. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/taxi_part_03.parquet +0 -0
  345. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/taxi_sample.parquet +0 -0
  346. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_dates_times_text.ddb +0 -0
  347. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_dates_times_text.parquet +0 -0
  348. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_dates_times_text.sqlite +0 -0
  349. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_true_dates_times.ddb +0 -0
  350. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_xyz.ddb +0 -0
  351. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_xyz.parquet +0 -0
  352. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_xyz.sqlite +0 -0
  353. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_xyz_missing.ddb +0 -0
  354. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_xyz_missing.parquet +0 -0
  355. {pointblank-0.10.0 → pointblank-0.11.1}/tests/tbl_files/tbl_xyz_missing.sqlite +0 -0
  356. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test__interrogation.py +0 -0
  357. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test__utils.py +0 -0
  358. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test__utils_check_args.py +0 -0
  359. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_actions.py +0 -0
  360. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_assistant.py +0 -0
  361. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_column.py +0 -0
  362. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_draft.py +0 -0
  363. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_meta.py +0 -0
  364. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_schema.py +0 -0
  365. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_tf.py +0 -0
  366. {pointblank-0.10.0 → pointblank-0.11.1}/tests/test_thresholds.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pointblank
3
- Version: 0.10.0
3
+ Version: 0.11.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
@@ -46,6 +46,8 @@ Requires-Dist: great_tables>=0.17.0
46
46
  Requires-Dist: narwhals>=1.41.0
47
47
  Requires-Dist: typing_extensions>=3.10.0.0
48
48
  Requires-Dist: requests>=2.31.0
49
+ Requires-Dist: click>=8.0.0
50
+ Requires-Dist: rich>=13.0.0
49
51
  Provides-Extra: pd
50
52
  Requires-Dist: pandas>=2.2.3; extra == "pd"
51
53
  Provides-Extra: pl
@@ -233,6 +235,55 @@ validation.get_step_report(i=3).show("browser") # Get failing records from step
233
235
 
234
236
  <br>
235
237
 
238
+ ## Command Line Interface (CLI)
239
+
240
+ Pointblank includes a powerful CLI utility called `pb` that lets you run data validation workflows directly from the command line. Perfect for CI/CD pipelines, scheduled data quality checks, or quick validation tasks.
241
+
242
+ <div align="center">
243
+ <img src="https://posit-dev.github.io/pointblank/assets/vhs/cli-complete-workflow.gif" width="800px">
244
+ </div>
245
+
246
+ **Explore Your Data**
247
+
248
+ ```bash
249
+ # Get a quick preview of your data
250
+ pb preview small_table
251
+
252
+ # Preview data from GitHub URLs
253
+ pb preview "https://github.com/user/repo/blob/main/data.csv"
254
+
255
+ # Check for missing values in Parquet files
256
+ pb missing data.parquet
257
+
258
+ # Generate column summaries from database connections
259
+ pb scan "duckdb:///data/sales.ddb::customers"
260
+ ```
261
+
262
+ **Run Essential Validations**
263
+
264
+ ```bash
265
+ # Check for duplicate rows
266
+ pb validate small_table --check rows-distinct
267
+
268
+ # Validate data directly from GitHub
269
+ pb validate "https://github.com/user/repo/blob/main/sales.csv" --check col-vals-not-null --column customer_id
270
+
271
+ # Verify no null values in Parquet datasets
272
+ pb validate "data/*.parquet" --check col-vals-not-null --column a
273
+
274
+ # Extract failing data for debugging
275
+ pb validate small_table --check col-vals-gt --column a --value 5 --show-extract
276
+ ```
277
+
278
+ **Integrate with CI/CD**
279
+
280
+ ```bash
281
+ # Use exit codes for automation (0 = pass, 1 = fail)
282
+ pb validate small_table --check rows-distinct && echo "✅ Quality checks passed"
283
+ ```
284
+
285
+ Learn more in our [CLI documentation](https://posit-dev.github.io/pointblank/user-guide/cli.html).
286
+
236
287
  ## Features That Set Pointblank Apart
237
288
 
238
289
  - **Complete validation workflow** - From data access to validation to reporting in a single pipeline
@@ -149,6 +149,55 @@ validation.get_step_report(i=3).show("browser") # Get failing records from step
149
149
 
150
150
  <br>
151
151
 
152
+ ## Command Line Interface (CLI)
153
+
154
+ Pointblank includes a powerful CLI utility called `pb` that lets you run data validation workflows directly from the command line. Perfect for CI/CD pipelines, scheduled data quality checks, or quick validation tasks.
155
+
156
+ <div align="center">
157
+ <img src="https://posit-dev.github.io/pointblank/assets/vhs/cli-complete-workflow.gif" width="800px">
158
+ </div>
159
+
160
+ **Explore Your Data**
161
+
162
+ ```bash
163
+ # Get a quick preview of your data
164
+ pb preview small_table
165
+
166
+ # Preview data from GitHub URLs
167
+ pb preview "https://github.com/user/repo/blob/main/data.csv"
168
+
169
+ # Check for missing values in Parquet files
170
+ pb missing data.parquet
171
+
172
+ # Generate column summaries from database connections
173
+ pb scan "duckdb:///data/sales.ddb::customers"
174
+ ```
175
+
176
+ **Run Essential Validations**
177
+
178
+ ```bash
179
+ # Check for duplicate rows
180
+ pb validate small_table --check rows-distinct
181
+
182
+ # Validate data directly from GitHub
183
+ pb validate "https://github.com/user/repo/blob/main/sales.csv" --check col-vals-not-null --column customer_id
184
+
185
+ # Verify no null values in Parquet datasets
186
+ pb validate "data/*.parquet" --check col-vals-not-null --column a
187
+
188
+ # Extract failing data for debugging
189
+ pb validate small_table --check col-vals-gt --column a --value 5 --show-extract
190
+ ```
191
+
192
+ **Integrate with CI/CD**
193
+
194
+ ```bash
195
+ # Use exit codes for automation (0 = pass, 1 = fail)
196
+ pb validate small_table --check rows-distinct && echo "✅ Quality checks passed"
197
+ ```
198
+
199
+ Learn more in our [CLI documentation](https://posit-dev.github.io/pointblank/user-guide/cli.html).
200
+
152
201
  ## Features That Set Pointblank Apart
153
202
 
154
203
  - **Complete validation workflow** - From data access to validation to reporting in a single pipeline
@@ -1,6 +1,8 @@
1
1
  project:
2
2
  type: website
3
3
  post-render: scripts/post-render.py
4
+ resources:
5
+ - "assets/**"
4
6
 
5
7
  format:
6
8
  html:
@@ -87,6 +89,11 @@ website:
87
89
  - user-guide/preview.qmd
88
90
  - user-guide/col-summary-tbl.qmd
89
91
  - user-guide/missing-vals-tbl.qmd
92
+ - section: "The Pointblank CLI"
93
+ contents:
94
+ - user-guide/cli-data-inspection.qmd
95
+ - user-guide/cli-data-validation.qmd
96
+
90
97
  page-footer:
91
98
  left: 'Proudly supported by <a href="https://www.posit.co/" class="no-icon"><img src="/assets/posit-logo-black.svg" alt="Posit" width="80" style="padding-left: 3px;vertical-align:text-top;"></a>'
92
99
  right: "&copy; 2024&ndash;2025 Posit Software, PBC."
@@ -0,0 +1 @@
1
+ worldcities.csv
@@ -0,0 +1,45 @@
1
+ # VHS tape for CI/CD integration workflows
2
+ # Shows production-ready automation patterns
3
+
4
+ Output cli-cicd-workflows.gif
5
+
6
+ Set FontSize 16
7
+ Set Width 1200
8
+ Set Height 700
9
+ Set Theme "Dracula"
10
+
11
+ Type "# Example of a Production CI/CD Data Validation Workflow"
12
+ Enter
13
+ Sleep 2s
14
+
15
+ Type ""
16
+ Enter
17
+ Type "# Pipeline Step 1: Checking for duplicates while using exit codes (this fails)"
18
+ Enter
19
+ Type "pb validate small_table --check rows-distinct --exit-code"
20
+ Enter
21
+ Sleep 10s
22
+
23
+ Type ""
24
+ Enter
25
+ Type "# Pipeline Step 2: Checking for null values in an important column (this passes)"
26
+ Enter
27
+ Type "pb validate small_table --check col-vals-not-null --column date_time --exit-code"
28
+ Enter
29
+ Sleep 10s
30
+
31
+ Type ""
32
+ Enter
33
+ Type "# Pipeline Step 3: Checking for values greater than 2 (this one fails)"
34
+ Enter
35
+ Type "pb validate small_table --check col-vals-gt --column a --value 2 --exit-code"
36
+ Enter
37
+ Sleep 10s
38
+
39
+ Type ""
40
+ Enter
41
+ Type "# Use in GitHub Actions or any automation platform"
42
+ Enter
43
+ Type "echo 'Exit codes: 0 = success, 1 = validation failed'"
44
+ Enter
45
+ Sleep 8s
@@ -0,0 +1,75 @@
1
+ # VHS tape for complete validation workflow
2
+ # Shows realistic end-to-end data quality checking with world cities data
3
+
4
+ Output cli-complete-workflow.gif
5
+
6
+ Set FontSize 14
7
+ Set Width 1200
8
+ Set Height 900
9
+ Set Theme "Dracula"
10
+
11
+ Type "# Complete Data Quality Workflow"
12
+ Enter
13
+ Sleep 2s
14
+
15
+ Type ""
16
+ Enter
17
+ Type "# Step 0: Get the dimensions of your data first"
18
+ Enter
19
+ Type "pb info worldcities.csv"
20
+ Enter
21
+ Sleep 4s
22
+
23
+ Type ""
24
+ Enter
25
+ Type "# Step 1: Quickly preview the dataset"
26
+ Enter
27
+ Type "pb preview worldcities.csv --head 3 --tail 2"
28
+ Enter
29
+ Sleep 6s
30
+
31
+ Type ""
32
+ Enter
33
+ Type "# Step 2: Scan for data quality patterns"
34
+ Enter
35
+ Type "pb scan worldcities.csv"
36
+ Enter
37
+ Sleep 12s
38
+
39
+ Type ""
40
+ Enter
41
+ Type "# Step 3: Check for missing values"
42
+ Enter
43
+ Type "pb missing worldcities.csv"
44
+ Enter
45
+ Sleep 8s
46
+
47
+ Type ""
48
+ Enter
49
+ Type "# Step 4: Validate the population values are provided for each city (i.e., not null)"
50
+ Enter
51
+ Type "pb validate worldcities.csv --check col-vals-not-null --column population"
52
+ Enter
53
+ Sleep 10s
54
+
55
+ Type ""
56
+ Enter
57
+ Type "# Step 5: Check for missing city names (and show problematic rows)"
58
+ Enter
59
+ Type "pb validate worldcities.csv --check col-vals-not-null --column city_name --show-extract"
60
+ Enter
61
+ Sleep 10s
62
+
63
+ Type ""
64
+ Enter
65
+ Type "# Step 6: Validate latitude range (latitude: -90 to 90) in two steps"
66
+ Enter
67
+ Type "pb validate worldcities.csv --check col-vals-ge --column latitude --value -90 --check col-vals-le --column latitude --value 90"
68
+ Enter
69
+ Sleep 10s
70
+
71
+ Type ""
72
+ Enter
73
+ Type "echo 'Data quality workflow complete: 41K cities validated!'"
74
+ Enter
75
+ Sleep 6s
@@ -0,0 +1,51 @@
1
+ # VHS tape for data exploration and profiling
2
+ # Shows preview, missing values, and column summaries using real-world city data
3
+
4
+ Output cli-data-exploration.gif
5
+
6
+ Set FontSize 14
7
+ Set Width 1200
8
+ Set Height 800
9
+ Set Theme "Dracula"
10
+
11
+ Type "# Data Exploration & Profiling with the Pointblank CLI"
12
+ Enter
13
+ Sleep 2s
14
+
15
+ Type ""
16
+ Enter
17
+ Type "# 0. Exploring world cities dataset: get the table dimensions"
18
+ Enter
19
+ Type "pb info worldcities.csv"
20
+ Enter
21
+ Sleep 4s
22
+
23
+ Type ""
24
+ Enter
25
+ Type "# 1. Quick data preview: see structure and sample rows"
26
+ Enter
27
+ Type "pb preview worldcities.csv --head 3 --tail 3"
28
+ Enter
29
+ Sleep 8s
30
+
31
+ Type ""
32
+ Enter
33
+ Type "# 2. Missing values analysis: identify data gaps"
34
+ Enter
35
+ Type "pb missing worldcities.csv"
36
+ Enter
37
+ Sleep 8s
38
+
39
+ Type ""
40
+ Enter
41
+ Type "# 3. Comprehensive data scan: statistical overview"
42
+ Enter
43
+ Type "pb scan worldcities.csv"
44
+ Enter
45
+ Sleep 10s
46
+
47
+ Type ""
48
+ Enter
49
+ Type "echo 'Complete data profiling in seconds with the Pointblank CLI'"
50
+ Enter
51
+ Sleep 3s
@@ -0,0 +1,51 @@
1
+ # VHS tape for high-impact data validation demonstrations
2
+ # Shows the most practical CLI validations
3
+
4
+ Output cli-essential-validations.gif
5
+
6
+ Set FontSize 16
7
+ Set Width 1200
8
+ Set Height 700
9
+ Set Theme "Dracula"
10
+
11
+ Type "# Essential Data Validation with Pointblank CLI"
12
+ Enter
13
+ Sleep 4s
14
+
15
+ Type ""
16
+ Enter
17
+ Type "# 0. Get the table dimensions, just to know what you're working with"
18
+ Enter
19
+ Type "pb info small_table"
20
+ Enter
21
+ Sleep 8s
22
+
23
+ Type ""
24
+ Enter
25
+ Type "# 1. Check for duplicate rows (the most common data quality issue)"
26
+ Enter
27
+ Type "pb validate small_table --check rows-distinct"
28
+ Enter
29
+ Sleep 8s
30
+
31
+ Type ""
32
+ Enter
33
+ Type "# 2. Find missing values in important columns"
34
+ Enter
35
+ Type "pb validate small_table --check col-vals-not-null --column c"
36
+ Enter
37
+ Sleep 8s
38
+
39
+ Type ""
40
+ Enter
41
+ Type "# 3. When validation fails, see exactly which rows are problematic with --show-extract"
42
+ Enter
43
+ Type "pb validate small_table --check col-vals-not-null --column c --show-extract"
44
+ Enter
45
+ Sleep 10s
46
+
47
+ Type ""
48
+ Enter
49
+ Type "echo 'Essential validations: duplicates, nulls, with data extracts'"
50
+ Enter
51
+ Sleep 6s
@@ -0,0 +1,51 @@
1
+ # VHS tape for CLI overview and getting started
2
+ # Shows help and basic commands with custom prompt
3
+
4
+ Output cli-getting-started.gif
5
+
6
+ Set FontSize 16
7
+ Set Width 1200
8
+ Set Height 700
9
+ Set Theme "Dracula"
10
+
11
+ Type "# Getting Started with the Pointblank CLI"
12
+ Enter
13
+ Sleep 5s
14
+
15
+ Type ""
16
+ Enter
17
+ Type "# See all available commands"
18
+ Enter
19
+ Type "pb --help"
20
+ Enter
21
+ Sleep 10s
22
+
23
+ Type ""
24
+ Enter
25
+ Type "# There's a number of datasets you can use for testing"
26
+ Enter
27
+ Type "pb datasets"
28
+ Enter
29
+ Sleep 8s
30
+
31
+ Type ""
32
+ Enter
33
+ Type "# Learn about all the `pb validate` options"
34
+ Enter
35
+ Type "pb validate --help"
36
+ Enter
37
+ Sleep 12s
38
+
39
+ Type ""
40
+ Enter
41
+ Type "# Your first validation: check for duplicates with rows-distinct"
42
+ Enter
43
+ Type "pb validate small_table --check rows-distinct"
44
+ Enter
45
+ Sleep 10s
46
+
47
+ Type ""
48
+ Enter
49
+ Type "# You are now ready to validate any dataset you like: CSV, Parquet, or a DB table"
50
+ Enter
51
+ Sleep 5s
@@ -0,0 +1,138 @@
1
+ ---
2
+ title: "CLI Interactive Demos"
3
+ pagetitle: "CLI Interactive Demos"
4
+ format:
5
+ html:
6
+ toc: true
7
+ css: |
8
+ .demo-section {
9
+ margin-bottom: 40px;
10
+ }
11
+ .gif-container {
12
+ margin: 20px 0;
13
+ text-align: center;
14
+ border: 1px solid #e1e5e9;
15
+ border-radius: 8px;
16
+ padding: 20px;
17
+ background: #f8f9fa;
18
+ }
19
+ .gif-container img {
20
+ max-width: 100%;
21
+ border-radius: 4px;
22
+ box-shadow: 0 4px 8px rgba(0,0,0,0.1);
23
+ }
24
+ ---
25
+
26
+ These CLI demos showcase practical data quality workflows that you can use!
27
+
28
+ ::: {.callout-tip}
29
+ ## 🎬 Workflow-Based Demonstrations
30
+ - **Essential validations** for everyday data quality checks
31
+ - **Data exploration** tools that require no Python knowledge
32
+ - **CI/CD integration** patterns for automated data quality
33
+ - **Complete pipelines** from exploration to production validation
34
+ :::
35
+
36
+ ::: {.callout-note}
37
+ ## Prerequisites
38
+ To follow along with these demonstrations:
39
+ ```bash
40
+ pip install pointblank
41
+ pb --help # Verify installation
42
+ ```
43
+ :::
44
+
45
+ ### Getting Started with the CLI
46
+
47
+ Learn the basics of Pointblank's CLI and run your first validation:
48
+
49
+ ::: {.gif-container}
50
+ ![Getting Started](../../assets/vhs/cli-getting-started.gif)
51
+ *CLI overview and your first data quality validation*
52
+ :::
53
+
54
+ ### Essential Data Quality Validations
55
+
56
+ See the most commonly used validation checks that catch critical data issues:
57
+
58
+ ::: {.gif-container}
59
+ ![Essential Validations](../../assets/vhs/cli-essential-validations.gif)
60
+ *Duplicate detection, null checks, and data extract debugging*
61
+ :::
62
+
63
+ ### Data Exploration Tools
64
+
65
+ Discover how to profile and explore data using CLI tools that are quick and easy to use:
66
+
67
+ ::: {.gif-container}
68
+ ![Data Exploration](../../assets/vhs/cli-data-exploration.gif)
69
+ *Preview data, find missing values, and generate column summaries*
70
+ :::
71
+
72
+ ### CI/CD Integration & Automation
73
+
74
+ Learn how to integrate data quality checks into automated pipelines:
75
+
76
+ ::: {.gif-container}
77
+ ![CI/CD Integration](../../assets/vhs/cli-cicd-workflows.gif)
78
+ *Exit codes, pipeline integration, and automated quality gates*
79
+ :::
80
+
81
+ ### Complete Data Quality Workflow
82
+
83
+ Follow an end-to-end data quality pipeline combining exploration, validation, and profiling:
84
+
85
+ ::: {.gif-container}
86
+ ![Complete Workflow](../../assets/vhs/cli-complete-workflow.gif)
87
+ *Full pipeline: explore → validate → automate*
88
+ :::
89
+
90
+ ## Getting Started
91
+
92
+ Ready to implement data quality workflows? Here's how to get started:
93
+
94
+ #### 1. Install and Verify
95
+
96
+ ```bash
97
+ pip install pointblank
98
+ pb --help
99
+ ```
100
+
101
+ #### 2. Explore Various Data Sources
102
+
103
+ ```bash
104
+ # Try previewing a built-in dataset
105
+ pb preview small_table
106
+
107
+ # Access local files (even use patterns to combine multiple Parquet files)
108
+ pb preview sales_data.csv
109
+ pb scan "data/*.parquet"
110
+
111
+ # Inspect datasets in GitHub repositories (no need to download the data!)
112
+ pb preview "https://github.com/user/repo/blob/main/data.csv"
113
+ pb missing "https://raw.githubusercontent.com/user/repo/main/sales.parquet"
114
+
115
+ # Work with DB tables through connection strings
116
+ pb info "duckdb:///warehouse/analytics.ddb::customers"
117
+ ```
118
+
119
+ #### 3. Run Essential Validations
120
+
121
+ ```bash
122
+ # Check for duplicate rows
123
+ pb validate small_table --check rows-distinct
124
+
125
+ # Validate data from multiple sources
126
+ pb validate "data/*.parquet" --check col-vals-not-null --column customer_id
127
+ pb validate "https://github.com/user/repo/blob/main/sales.csv" --check rows-distinct
128
+
129
+ # Extract failing data for debugging
130
+ pb validate small_table --check col-vals-gt --column a --value 5 --show-extract
131
+ ```
132
+
133
+ #### 4. Integrate with CI/CD
134
+
135
+ ```bash
136
+ # Use exit codes for automation (0 = pass, 1 = fail)
137
+ pb validate small_table --check rows-distinct --exit-code
138
+ ```
@@ -171,4 +171,7 @@ The schema of a table can be flexibly defined with `Schema` and verified with `c
171
171
  [Using Parquet Data](./using-parquet-data/index.qmd)<br>
172
172
  A Parquet dataset can be used for data validation, thanks to Ibis.
173
173
 
174
+ [CLI Interactive Demos](./cli-interactive/index.qmd)<br>
175
+ These CLI demos showcase practical data quality workflows that you can use!
176
+
174
177
  </div>
@@ -11,9 +11,13 @@ _Data validation made beautiful and powerful_
11
11
 
12
12
  </div>
13
13
 
14
- Pointblank is a powerful, yet elegant data validation framework for Python that transforms how you ensure data quality. With its intuitive, chainable API, you can quickly validate your data against comprehensive quality checks and visualize results through stunning, interactive reports that make data issues immediately actionable.
14
+ Pointblank is a powerful, yet elegant data validation framework for Python that transforms how you
15
+ ensure data quality. With its intuitive, chainable API, you can quickly validate your data against
16
+ comprehensive quality checks and visualize results through stunning, interactive reports that make
17
+ data issues immediately actionable.
15
18
 
16
- Whether you're a data scientist, data engineer, or analyst, Pointblank helps you catch data quality issues before they impact your analyses or downstream systems.
19
+ Whether you're a data scientist, data engineer, or analyst, Pointblank helps you catch data quality
20
+ issues before they impact your analyses or downstream systems.
17
21
 
18
22
  ## Getting Started in 30 Seconds
19
23
 
@@ -116,6 +120,53 @@ validation.get_step_report(i=3).show("browser") # Get failing records from step
116
120
 
117
121
  </div>
118
122
 
123
+ ## Command Line Interface
124
+
125
+ Pointblank includes a powerful CLI utility called `pb` that lets you run data validation workflows
126
+ directly from the command line. Perfect for CI/CD pipelines, scheduled data quality checks, or quick
127
+ validation tasks.
128
+
129
+ <div style="text-align: center;">
130
+
131
+ ![](/assets/vhs/cli-complete-workflow.gif){width=100%}
132
+
133
+ </div>
134
+
135
+ **Explore Your Data**
136
+
137
+ ```bash
138
+ # Get a quick preview of your data
139
+ pb preview small_table
140
+
141
+ # Check for missing values
142
+ pb missing small_table
143
+
144
+ # Generate column summaries
145
+ pb scan small_table
146
+ ```
147
+
148
+ **Run Essential Validations**
149
+
150
+ ```bash
151
+ # Check for duplicate rows
152
+ pb validate small_table --check rows-distinct
153
+
154
+ # Verify no null values
155
+ pb validate small_table --check col-vals-not-null --column a
156
+
157
+ # Extract failing data for debugging
158
+ pb validate small_table --check col-vals-gt --column a --value 5 --show-extract
159
+ ```
160
+
161
+ **Integrate with CI/CD**
162
+
163
+ ```bash
164
+ # Use exit codes for automation (0 = pass, 1 = fail)
165
+ pb validate small_table --check rows-distinct && echo "✅ Quality checks passed"
166
+ ```
167
+
168
+ Learn more in our [CLI documentation](https://posit-dev.github.io/pointblank/user-guide/cli.html).
169
+
119
170
  ## Join the Community
120
171
 
121
172
  We'd love to hear from you! Connect with us:
@@ -156,7 +207,10 @@ pip install "pointblank[sqlite]" # Install Pointblank with Ibis + SQLite
156
207
 
157
208
  ## Technical Details
158
209
 
159
- Pointblank uses [Narwhals](https://github.com/narwhals-dev/narwhals) to work with Polars and Pandas DataFrames, and integrates with [Ibis](https://github.com/ibis-project/ibis) for database and file format support. This architecture provides a consistent API for validating tabular data from various sources.
210
+ Pointblank uses [Narwhals](https://github.com/narwhals-dev/narwhals) to work with Polars and Pandas
211
+ DataFrames, and integrates with [Ibis](https://github.com/ibis-project/ibis) for database and file
212
+ format support. This architecture provides a consistent API for validating tabular data from various
213
+ sources.
160
214
 
161
215
  ## Contributing to Pointblank
162
216
 
@@ -181,7 +235,8 @@ We're actively working on enhancing Pointblank with:
181
235
  7. Expanded backend support and certification
182
236
  8. High-quality documentation and examples
183
237
 
184
- If you have any ideas for features or improvements, don't hesitate to share them with us! We are always looking for ways to make Pointblank better.
238
+ If you have any ideas for features or improvements, don't hesitate to share them with us! We are
239
+ always looking for ways to make Pointblank better.
185
240
 
186
241
  ## Code of Conduct
187
242