pointblank 0.9.5__tar.gz → 0.10.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. {pointblank-0.9.5 → pointblank-0.10.0}/.github/workflows/ci-docs.yaml +5 -1
  2. {pointblank-0.9.5 → pointblank-0.10.0}/.github/workflows/ci-tests.yaml +2 -6
  3. {pointblank-0.9.5 → pointblank-0.10.0}/.gitignore +3 -0
  4. {pointblank-0.9.5 → pointblank-0.10.0}/Makefile +1 -1
  5. {pointblank-0.9.5 → pointblank-0.10.0}/PKG-INFO +6 -3
  6. {pointblank-0.9.5 → pointblank-0.10.0}/README.md +2 -1
  7. {pointblank-0.9.5 → pointblank-0.10.0}/docs/_extensions/machow/interlinks/interlinks.lua +183 -26
  8. {pointblank-0.9.5 → pointblank-0.10.0}/docs/_quarto.yml +10 -0
  9. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank_logo.svg +160 -12
  10. pointblank-0.10.0/docs/assets/posit-logo-black.svg +1 -0
  11. pointblank-0.10.0/docs/blog/lets-workshop-together/index.qmd +35 -0
  12. pointblank-0.10.0/docs/blog/overhauled-user-guide/advanced-in-sidebar.png +0 -0
  13. pointblank-0.10.0/docs/blog/overhauled-user-guide/breadth-and-depth.png +0 -0
  14. pointblank-0.10.0/docs/blog/overhauled-user-guide/explanation-of-visual.png +0 -0
  15. pointblank-0.10.0/docs/blog/overhauled-user-guide/index.qmd +154 -0
  16. pointblank-0.10.0/docs/blog/overhauled-user-guide/links-in-guide.png +0 -0
  17. pointblank-0.10.0/docs/blog/overhauled-user-guide/segments.png +0 -0
  18. pointblank-0.10.0/docs/blog/overhauled-user-guide/step-report.png +0 -0
  19. pointblank-0.10.0/docs/blog/overhauled-user-guide/validation-three-things.png +0 -0
  20. pointblank-0.10.0/docs/blog/validation-libs-2025/index.qmd +726 -0
  21. pointblank-0.10.0/docs/demos/07-validation-with-actions/index.qmd +115 -0
  22. pointblank-0.10.0/docs/demos/08-validation-with-final-actions/index.qmd +113 -0
  23. pointblank-0.10.0/docs/demos/check-for-freshness/index.qmd +87 -0
  24. pointblank-0.10.0/docs/demos/custom-validation-specially/index.qmd +93 -0
  25. pointblank-0.10.0/docs/demos/img/validation_with_actions.png +0 -0
  26. pointblank-0.10.0/docs/demos/img/validation_with_final_actions.png +0 -0
  27. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/index.qmd +26 -0
  28. pointblank-0.10.0/docs/scripts/post-render.py +365 -0
  29. {pointblank-0.9.5 → pointblank-0.10.0}/docs/styles.css +63 -25
  30. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/actions.qmd +33 -57
  31. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/assertions.qmd +32 -49
  32. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/briefs.qmd +56 -77
  33. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/col-summary-tbl.qmd +9 -11
  34. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/column-selection-patterns.qmd +31 -47
  35. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/draft-validation.qmd +43 -70
  36. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/expressions.qmd +19 -23
  37. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/extracts.qmd +61 -67
  38. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/index.qmd +10 -14
  39. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/installation.qmd +3 -0
  40. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/missing-vals-tbl.qmd +7 -10
  41. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/preprocessing.qmd +27 -12
  42. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/preview.qmd +13 -20
  43. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/schema-validation.qmd +49 -53
  44. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/segmentation.qmd +32 -26
  45. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/step-reports.qmd +30 -34
  46. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/sundering.qmd +40 -47
  47. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/thresholds.qmd +3 -4
  48. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/validation-methods.qmd +48 -76
  49. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/validation-overview.qmd +4 -8
  50. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/__init__.py +4 -0
  51. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_constants.py +6 -0
  52. pointblank-0.10.0/pointblank/_datascan_utils.py +65 -0
  53. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_utils.py +128 -0
  54. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_utils_html.py +40 -0
  55. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/actions.py +3 -3
  56. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/assistant.py +1 -3
  57. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/column.py +4 -4
  58. pointblank-0.10.0/pointblank/compare.py +27 -0
  59. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/api-docs.txt +769 -138
  60. pointblank-0.10.0/pointblank/datascan.py +570 -0
  61. pointblank-0.10.0/pointblank/scan_profile.py +321 -0
  62. pointblank-0.10.0/pointblank/scan_profile_stats.py +180 -0
  63. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/schema.py +14 -3
  64. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/thresholds.py +2 -2
  65. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/validate.py +1594 -207
  66. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank.egg-info/PKG-INFO +6 -3
  67. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank.egg-info/SOURCES.txt +39 -0
  68. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank.egg-info/requires.txt +4 -1
  69. {pointblank-0.9.5 → pointblank-0.10.0}/pyproject.toml +13 -7
  70. pointblank-0.10.0/tests/tbl_files/parquet_data/data_a.parquet +0 -0
  71. pointblank-0.10.0/tests/tbl_files/parquet_data/data_b.parquet +0 -0
  72. pointblank-0.10.0/tests/tbl_files/parquet_data/subdir/nested_data.parquet +0 -0
  73. pointblank-0.10.0/tests/tbl_files/partitioned_sales/status=cancelled/0.parquet +0 -0
  74. pointblank-0.10.0/tests/tbl_files/partitioned_sales/status=delivered/0.parquet +0 -0
  75. pointblank-0.10.0/tests/tbl_files/partitioned_sales/status=pending/0.parquet +0 -0
  76. pointblank-0.10.0/tests/tbl_files/partitioned_sales/status=returned/0.parquet +0 -0
  77. pointblank-0.10.0/tests/tbl_files/partitioned_sales/status=shipped/0.parquet +0 -0
  78. pointblank-0.10.0/tests/tbl_files/partitioned_small_table/f=high/0.parquet +0 -0
  79. pointblank-0.10.0/tests/tbl_files/partitioned_small_table/f=low/0.parquet +0 -0
  80. pointblank-0.10.0/tests/tbl_files/partitioned_small_table/f=mid/0.parquet +0 -0
  81. pointblank-0.10.0/tests/tbl_files/taxi_part_01.parquet +0 -0
  82. pointblank-0.10.0/tests/tbl_files/taxi_part_02.parquet +0 -0
  83. pointblank-0.10.0/tests/tbl_files/taxi_part_03.parquet +0 -0
  84. pointblank-0.10.0/tests/tbl_files/taxi_sample.parquet +0 -0
  85. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test__utils.py +19 -0
  86. pointblank-0.10.0/tests/test_compare.py +15 -0
  87. pointblank-0.10.0/tests/test_datascan.py +289 -0
  88. pointblank-0.10.0/tests/test_meta.py +31 -0
  89. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_schema.py +35 -15
  90. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_validate.py +4965 -2033
  91. pointblank-0.9.5/pointblank/datascan.py +0 -1211
  92. pointblank-0.9.5/tests/test_datascan.py +0 -251
  93. {pointblank-0.9.5 → pointblank-0.10.0}/.github/CODE_OF_CONDUCT.md +0 -0
  94. {pointblank-0.9.5 → pointblank-0.10.0}/.github/ISSUE_TEMPLATE/bug.md +0 -0
  95. {pointblank-0.9.5 → pointblank-0.10.0}/.github/ISSUE_TEMPLATE/feature.md +0 -0
  96. {pointblank-0.9.5 → pointblank-0.10.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  97. {pointblank-0.9.5 → pointblank-0.10.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  98. {pointblank-0.9.5 → pointblank-0.10.0}/.github/SECURITY.md +0 -0
  99. {pointblank-0.9.5 → pointblank-0.10.0}/.github/workflows/code-checks.yaml +0 -0
  100. {pointblank-0.9.5 → pointblank-0.10.0}/.pre-commit-config.yaml +0 -0
  101. {pointblank-0.9.5 → pointblank-0.10.0}/.vscode/settings.json +0 -0
  102. {pointblank-0.9.5 → pointblank-0.10.0}/CITATION.cff +0 -0
  103. {pointblank-0.9.5 → pointblank-0.10.0}/CONTRIBUTING.md +0 -0
  104. {pointblank-0.9.5 → pointblank-0.10.0}/LICENSE +0 -0
  105. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/game_revenue.csv +0 -0
  106. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/global_sales.csv +0 -0
  107. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/global_sales_dataset.qmd +0 -0
  108. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/nycflights.csv +0 -0
  109. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/small_table.csv +0 -0
  110. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/x-01-parquet.qmd +0 -0
  111. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/x-02-duckdb.qmd +0 -0
  112. {pointblank-0.9.5 → pointblank-0.10.0}/data_raw/x-03-sqlite.qmd +0 -0
  113. {pointblank-0.9.5 → pointblank-0.10.0}/docs/.gitignore +0 -0
  114. {pointblank-0.9.5 → pointblank-0.10.0}/docs/_extensions/machow/interlinks/.gitignore +0 -0
  115. {pointblank-0.9.5 → pointblank-0.10.0}/docs/_extensions/machow/interlinks/_extension.yml +0 -0
  116. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/fav-logo.png +0 -0
  117. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.de.png +0 -0
  118. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.es.png +0 -0
  119. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.fr.png +0 -0
  120. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.it.png +0 -0
  121. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.ja.png +0 -0
  122. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.ko.png +0 -0
  123. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.nl.png +0 -0
  124. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.png +0 -0
  125. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.pt-BR.png +0 -0
  126. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-sales-data.zh-CN.png +0 -0
  127. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-step-report.png +0 -0
  128. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/pointblank-tabular-report.png +0 -0
  129. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/validation-table-diagram.png +0 -0
  130. {pointblank-0.9.5 → pointblank-0.10.0}/docs/assets/validation-test-units.png +0 -0
  131. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/all-about-actions/index.qmd +0 -0
  132. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/index.qmd +0 -0
  133. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/intro-pointblank/index.qmd +0 -0
  134. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/intro-pointblank/pointblank-localized.png +0 -0
  135. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/intro-pointblank/step_report.png +0 -0
  136. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/intro-pointblank/validation-table-diagram.png +0 -0
  137. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/intro-pointblank/validation-test-units.png +0 -0
  138. {pointblank-0.9.5 → pointblank-0.10.0}/docs/blog/pointblank_blog_logo.png +0 -0
  139. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/01-starter/index.qmd +0 -0
  140. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/02-advanced/index.qmd +0 -0
  141. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/03-data-extracts/index.qmd +0 -0
  142. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/04-sundered-data/index.qmd +0 -0
  143. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/05-step-report-column-check/index.qmd +0 -0
  144. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/06-step-report-schema-check/index.qmd +0 -0
  145. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/apply-checks-to-several-columns/index.qmd +0 -0
  146. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/check-row-column-counts/index.qmd +0 -0
  147. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/checks-for-missing/index.qmd +0 -0
  148. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/col-vals-custom-expr/index.qmd +0 -0
  149. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/column-selector-functions/index.qmd +0 -0
  150. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/comparisons-across-columns/index.qmd +0 -0
  151. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/data/game_revenue.parquet +0 -0
  152. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/expect-no-duplicate-rows/index.qmd +0 -0
  153. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/expect-no-duplicate-values/index.qmd +0 -0
  154. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/expect-text-pattern/index.qmd +0 -0
  155. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/failure-thresholds/index.qmd +0 -0
  156. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/img/advanced_validation.png +0 -0
  157. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/img/data_extracts.png +0 -0
  158. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/img/starter_validation.png +0 -0
  159. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/img/step_report_column_schema.png +0 -0
  160. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/img/step_report_column_values.png +0 -0
  161. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/img/sundered_data.png +0 -0
  162. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/mutate-table-in-step/index.qmd +0 -0
  163. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/numeric-comparisons/index.qmd +0 -0
  164. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/schema-check/index.qmd +0 -0
  165. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/set-membership/index.qmd +0 -0
  166. {pointblank-0.9.5 → pointblank-0.10.0}/docs/demos/using-parquet-data/index.qmd +0 -0
  167. {pointblank-0.9.5 → pointblank-0.10.0}/docs/index.qmd +0 -0
  168. {pointblank-0.9.5 → pointblank-0.10.0}/docs/user-guide/langs.qmd +0 -0
  169. {pointblank-0.9.5 → pointblank-0.10.0}/images/pointblank-tabular-report.png +0 -0
  170. {pointblank-0.9.5 → pointblank-0.10.0}/images/pointblank_logo.svg +0 -0
  171. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_constants_docs.py +0 -0
  172. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_constants_translations.py +0 -0
  173. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_interrogation.py +0 -0
  174. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_typing.py +0 -0
  175. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/_utils_check_args.py +0 -0
  176. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/game_revenue-duckdb.zip +0 -0
  177. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/game_revenue.zip +0 -0
  178. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/global_sales-duckdb.zip +0 -0
  179. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/global_sales.zip +0 -0
  180. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/nycflights-duckdb.zip +0 -0
  181. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/nycflights.zip +0 -0
  182. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/polars-api-docs.txt +0 -0
  183. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/small_table-duckdb.zip +0 -0
  184. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/data/small_table.zip +0 -0
  185. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/draft.py +0 -0
  186. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank/tf.py +0 -0
  187. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank.egg-info/dependency_links.txt +0 -0
  188. {pointblank-0.9.5 → pointblank-0.10.0}/pointblank.egg-info/top_level.txt +0 -0
  189. {pointblank-0.9.5 → pointblank-0.10.0}/setup.cfg +0 -0
  190. {pointblank-0.9.5 → pointblank-0.10.0}/tests/__init__.py +0 -0
  191. {pointblank-0.9.5 → pointblank-0.10.0}/tests/manual_tests/schema_step_reports.qmd +0 -0
  192. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_datascan/test_col_summary_tbl_duckdb_snap/col_summary_html_duckdb.html +0 -0
  193. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_datascan/test_col_summary_tbl_pandas_snap/col_summary_html_pandas.html +0 -0
  194. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_datascan/test_col_summary_tbl_polars_snap/col_summary_html_polars.html +0 -0
  195. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_comprehensive_validation_report_html_snap/comprehensive_validation_report.html +0 -0
  196. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_01/schema_step_report_01-0.txt +0 -0
  197. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_01_1/schema_step_report_01-1.txt +0 -0
  198. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_01_2/schema_step_report_01-2.txt +0 -0
  199. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_01_3/schema_step_report_01-3.txt +0 -0
  200. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_02/schema_step_report_02-0.txt +0 -0
  201. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_02_1/schema_step_report_02-1.txt +0 -0
  202. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_02_2/schema_step_report_02-2.txt +0 -0
  203. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_02_3/schema_step_report_02-3.txt +0 -0
  204. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_03/schema_step_report_03-0.txt +0 -0
  205. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_03_1/schema_step_report_03-1.txt +0 -0
  206. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_03_2/schema_step_report_03-2.txt +0 -0
  207. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_03_3/schema_step_report_03-3.txt +0 -0
  208. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_04/schema_step_report_04-0.txt +0 -0
  209. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_05/schema_step_report_05-0.txt +0 -0
  210. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_06/schema_step_report_06-0.txt +0 -0
  211. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_07/schema_step_report_07-0.txt +0 -0
  212. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_08/schema_step_report_08-0.txt +0 -0
  213. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_09/schema_step_report_09-0.txt +0 -0
  214. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_10/schema_step_report_10-0.txt +0 -0
  215. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_11/schema_step_report_11-0.txt +0 -0
  216. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_12/schema_step_report_12-0.txt +0 -0
  217. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_13/schema_step_report_13-0.txt +0 -0
  218. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_14/schema_step_report_14-0.txt +0 -0
  219. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_14_1/schema_step_report_14-1.txt +0 -0
  220. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_15/schema_step_report_15-0.txt +0 -0
  221. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_15_1/schema_step_report_15-1.txt +0 -0
  222. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_16/schema_step_report_16-0.txt +0 -0
  223. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_16_1/schema_step_report_16-1.txt +0 -0
  224. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_17/schema_step_report_17-0.txt +0 -0
  225. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_17_1/schema_step_report_17-1.txt +0 -0
  226. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_18/schema_step_report_18-0.txt +0 -0
  227. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_18_1/schema_step_report_18-1.txt +0 -0
  228. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_19/schema_step_report_19-0.txt +0 -0
  229. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_19_1/schema_step_report_19-1.txt +0 -0
  230. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_20/schema_step_report_20-0.txt +0 -0
  231. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_20_1/schema_step_report_20-1.txt +0 -0
  232. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_21/schema_step_report_21-0.txt +0 -0
  233. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_21_1/schema_step_report_21-1.txt +0 -0
  234. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_21_2/schema_step_report_21-2.txt +0 -0
  235. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_21_3/schema_step_report_21-3.txt +0 -0
  236. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_22/schema_step_report_22-0.txt +0 -0
  237. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_22_1/schema_step_report_22-1.txt +0 -0
  238. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_23/schema_step_report_23-0.txt +0 -0
  239. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_23_1/schema_step_report_23-1.txt +0 -0
  240. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_24/schema_step_report_24-0.txt +0 -0
  241. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_24_1/schema_step_report_24-1.txt +0 -0
  242. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_24_2/schema_step_report_24-2.txt +0 -0
  243. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_24_3/schema_step_report_24-3.txt +0 -0
  244. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_25/schema_step_report_25-0.txt +0 -0
  245. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_1/schema_step_report_25-1.txt +0 -0
  246. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_2/schema_step_report_25-2.txt +0 -0
  247. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_3/schema_step_report_25-3.txt +0 -0
  248. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_4/schema_step_report_25-4.txt +0 -0
  249. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_step_report_25_5/schema_step_report_25-5.txt +0 -0
  250. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_01-0.txt +0 -0
  251. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_02-0.txt +0 -0
  252. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_03-0.txt +0 -0
  253. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_04-0.txt +0 -0
  254. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_05-0.txt +0 -0
  255. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_06-0.txt +0 -0
  256. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_07-0.txt +0 -0
  257. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_08-0.txt +0 -0
  258. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_09-0.txt +0 -0
  259. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_10-0.txt +0 -0
  260. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_11-0.txt +0 -0
  261. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_12-0.txt +0 -0
  262. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_13-0.txt +0 -0
  263. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-0.txt +0 -0
  264. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_14-1.txt +0 -0
  265. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-0.txt +0 -0
  266. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_15-1.txt +0 -0
  267. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-0.txt +0 -0
  268. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_16-1.txt +0 -0
  269. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-0.txt +0 -0
  270. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_17-1.txt +0 -0
  271. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-0.txt +0 -0
  272. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_18-1.txt +0 -0
  273. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-0.txt +0 -0
  274. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_19-1.txt +0 -0
  275. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-0.txt +0 -0
  276. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_20-1.txt +0 -0
  277. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-0.txt +0 -0
  278. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-1.txt +0 -0
  279. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-2.txt +0 -0
  280. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_21-3.txt +0 -0
  281. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-0.txt +0 -0
  282. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_22-1.txt +0 -0
  283. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-0.txt +0 -0
  284. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_23-1.txt +0 -0
  285. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-0.txt +0 -0
  286. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-1.txt +0 -0
  287. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-2.txt +0 -0
  288. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_24-3.txt +0 -0
  289. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-0.txt +0 -0
  290. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-1.txt +0 -0
  291. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-2.txt +0 -0
  292. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-3.txt +0 -0
  293. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-4.txt +0 -0
  294. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_get_schema_validation_info/schema_info_25-5.txt +0 -0
  295. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_no_interrogation_validation_report_html_snap/no_interrogation_validation_report.html +0 -0
  296. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_no_steps_validation_report_html_snap/no_steps_validation_report.html +0 -0
  297. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_briefs_global_local_html/validation_report_briefs_global_local.html +0 -0
  298. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_briefs_html/validation_report_with_briefs.html +0 -0
  299. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
  300. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_parquet/validation_report.json +0 -0
  301. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pd/validation_report.json +0 -0
  302. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_pl/validation_report.json +0 -0
  303. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
  304. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_duckdb/validation_report.json +0 -0
  305. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_parquet/validation_report.json +0 -0
  306. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pd/validation_report.json +0 -0
  307. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_pl/validation_report.json +0 -0
  308. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_no_interrogate_snap/tbl_sqlite/validation_report.json +0 -0
  309. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_segments_html/duckdb/validation_report_segments.html +0 -0
  310. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_segments_html/pandas/validation_report_segments.html +0 -0
  311. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_segments_html/polars/validation_report_segments.html +0 -0
  312. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/polars/validation_report_segments_with_pre.html +0 -0
  313. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_segments_with_pre_html/validation_report_segments_with_pre.html +0 -0
  314. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_duckdb/validation_report.json +0 -0
  315. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_parquet/validation_report.json +0 -0
  316. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pd/validation_report.json +0 -0
  317. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_pl/validation_report.json +0 -0
  318. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_report_use_fields_snap/tbl_sqlite/validation_report.json +0 -0
  319. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_memtable_variable_names/selector_helper_functions_no_match.html +0 -0
  320. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_pd_variable_names/selector_helper_functions_no_match.html +0 -0
  321. {pointblank-0.9.5 → pointblank-0.10.0}/tests/snapshots/test_validate/test_validation_with_selector_helper_functions_no_match_snap/tbl_pl_variable_names/selector_helper_functions_no_match.html +0 -0
  322. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_dates_times_text.ddb +0 -0
  323. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_dates_times_text.parquet +0 -0
  324. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_dates_times_text.sqlite +0 -0
  325. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_true_dates_times.ddb +0 -0
  326. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_xyz.ddb +0 -0
  327. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_xyz.parquet +0 -0
  328. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_xyz.sqlite +0 -0
  329. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_xyz_missing.ddb +0 -0
  330. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_xyz_missing.parquet +0 -0
  331. {pointblank-0.9.5 → pointblank-0.10.0}/tests/tbl_files/tbl_xyz_missing.sqlite +0 -0
  332. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test__interrogation.py +0 -0
  333. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test__utils_check_args.py +0 -0
  334. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_actions.py +0 -0
  335. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_assistant.py +0 -0
  336. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_column.py +0 -0
  337. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_draft.py +0 -0
  338. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_tf.py +0 -0
  339. {pointblank-0.9.5 → pointblank-0.10.0}/tests/test_thresholds.py +0 -0
  340. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.ar.md +0 -0
  341. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.de.md +0 -0
  342. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.es.md +0 -0
  343. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.fr.md +0 -0
  344. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.hi.md +0 -0
  345. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.it.md +0 -0
  346. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.ja.md +0 -0
  347. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.ko.md +0 -0
  348. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.nl.md +0 -0
  349. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.pt-BR.md +0 -0
  350. {pointblank-0.9.5 → pointblank-0.10.0}/translations/README.zh-CN.md +0 -0
@@ -14,13 +14,17 @@ jobs:
14
14
  - uses: actions/checkout@v4
15
15
  - uses: actions/setup-python@v5
16
16
  with:
17
- python-version: "3.10"
17
+ python-version: "3.11"
18
18
  - name: Install dependencies
19
19
  run: |
20
20
  python -m pip install -e .
21
21
  python -m pip install ".[docs]"
22
22
  python -m pip install ibis-framework[duckdb]
23
23
  python -m pip install pins
24
+ python -m pip install pandera
25
+ python -m pip install patito
26
+ python -m pip install validoopsie
27
+ python -m pip install dataframely
24
28
  - name: Set up Quarto
25
29
  uses: quarto-dev/quarto-actions/setup@v2
26
30
  - name: Build docs
@@ -24,12 +24,8 @@ jobs:
24
24
  uses: actions/setup-python@v5
25
25
  with:
26
26
  python-version: ${{ matrix.python-version }}
27
- - name: Install dependencies
28
- run: |
29
- pip install -e '.[dev]'
30
- - name: Install test dependencies
31
- run: |
32
- pip install pytest pytest-rerunfailures pytest-randomly pytest-xdist pytest-cov pytest-snapshot pandas polars ibis-framework[duckdb,mysql,postgres,sqlite]>=9.5.0 chatlas requests shiny
27
+ - name: Install uv
28
+ uses: astral-sh/setup-uv@v5
33
29
  - name: pytest unit tests
34
30
  run: |
35
31
  make test
@@ -130,3 +130,6 @@ benchmark/results/
130
130
  benchmark/reports/
131
131
  benchmark/data/*.csv.gz
132
132
  benchmark/data/*.json
133
+ .swp
134
+
135
+ uv.lock
@@ -2,7 +2,7 @@
2
2
 
3
3
  .PHONY: test
4
4
  test:
5
- @pytest \
5
+ @uv run pytest \
6
6
  --cov=pointblank \
7
7
  --cov-report=term-missing \
8
8
  --randomly-seed 123 \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pointblank
3
- Version: 0.9.5
3
+ Version: 0.10.0
4
4
  Summary: Find out if your data is what you think it is.
5
5
  Author-email: Richard Iannone <riannone@me.com>
6
6
  License: MIT License
@@ -43,7 +43,7 @@ License-File: LICENSE
43
43
  Requires-Dist: commonmark>=0.9.1
44
44
  Requires-Dist: importlib-metadata
45
45
  Requires-Dist: great_tables>=0.17.0
46
- Requires-Dist: narwhals>=1.24.1
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
49
  Provides-Extra: pd
@@ -55,6 +55,8 @@ Requires-Dist: chatlas>=0.3.0; extra == "generate"
55
55
  Requires-Dist: anthropic[bedrock]>=0.45.2; extra == "generate"
56
56
  Requires-Dist: openai>=1.63.0; extra == "generate"
57
57
  Requires-Dist: shiny>=1.3.0; extra == "generate"
58
+ Provides-Extra: bigquery
59
+ Requires-Dist: ibis-framework[bigquery]>=9.5.0; extra == "bigquery"
58
60
  Provides-Extra: databricks
59
61
  Requires-Dist: ibis-framework[databricks]>=9.5.0; extra == "databricks"
60
62
  Provides-Extra: duckdb
@@ -82,7 +84,7 @@ Dynamic: license-file
82
84
 
83
85
  <div align="center">
84
86
 
85
- <a href="https://posit-dev.github.io/pointblank/"><img src="https://posit-dev.github.io/pointblank/assets/pointblank_logo.svg" width="75%"/></a>
87
+ <a href="https://posit-dev.github.io/pointblank/"><img src="https://posit-dev.github.io/pointblank/assets/pointblank_logo.svg" width="85%"/></a>
86
88
 
87
89
  _Data validation made beautiful and powerful_
88
90
 
@@ -96,6 +98,7 @@ _Data validation made beautiful and powerful_
96
98
  [![Codecov branch](https://img.shields.io/codecov/c/github/posit-dev/pointblank/main.svg)](https://codecov.io/gh/posit-dev/pointblank)
97
99
  [![Repo Status](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
98
100
  [![Documentation](https://img.shields.io/badge/docs-project_website-blue.svg)](https://posit-dev.github.io/pointblank/)
101
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/posit-dev/pointblank)
99
102
 
100
103
  [![Contributors](https://img.shields.io/github/contributors/posit-dev/pointblank)](https://github.com/posit-dev/pointblank/graphs/contributors)
101
104
  [![Discord](https://img.shields.io/discord/1345877328982446110?color=%237289da&label=Discord)](https://discord.com/invite/YH7CybCNCQ)
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
 
3
- <a href="https://posit-dev.github.io/pointblank/"><img src="https://posit-dev.github.io/pointblank/assets/pointblank_logo.svg" width="75%"/></a>
3
+ <a href="https://posit-dev.github.io/pointblank/"><img src="https://posit-dev.github.io/pointblank/assets/pointblank_logo.svg" width="85%"/></a>
4
4
 
5
5
  _Data validation made beautiful and powerful_
6
6
 
@@ -14,6 +14,7 @@ _Data validation made beautiful and powerful_
14
14
  [![Codecov branch](https://img.shields.io/codecov/c/github/posit-dev/pointblank/main.svg)](https://codecov.io/gh/posit-dev/pointblank)
15
15
  [![Repo Status](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
16
16
  [![Documentation](https://img.shields.io/badge/docs-project_website-blue.svg)](https://posit-dev.github.io/pointblank/)
17
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/posit-dev/pointblank)
17
18
 
18
19
  [![Contributors](https://img.shields.io/github/contributors/posit-dev/pointblank)](https://github.com/posit-dev/pointblank/graphs/contributors)
19
20
  [![Discord](https://img.shields.io/discord/1345877328982446110?color=%237289da&label=Discord)](https://discord.com/invite/YH7CybCNCQ)
@@ -1,3 +1,13 @@
1
+ local inventory = {} -- sphinx inventories
2
+ local autolink -- set in Meta
3
+ local autolink_ignore_token = "qd-no-link"
4
+
5
+ local function _debug_log(text, debug)
6
+ if debug then
7
+ quarto.log.warning(text)
8
+ end
9
+ end
10
+
1
11
  local function read_inv_text(filename)
2
12
  -- read file
3
13
  local file = io.open(filename, "r")
@@ -11,16 +21,16 @@ local function read_inv_text(filename)
11
21
  local project = str:match("# Project: (%S+)")
12
22
  local version = str:match("# Version: (%S+)")
13
23
 
14
- local data = {project = project, version = version, items = {}}
24
+ local data = { project = project, version = version, items = {} }
15
25
 
16
26
  local ptn_data =
17
27
  "^" ..
18
- "(.-)%s+" .. -- name
19
- "([%S:]-):" .. -- domain
20
- "([%S]+)%s+" .. -- role
21
- "(%-?%d+)%s+" .. -- priority
22
- "(%S*)%s+" .. -- uri
23
- "(.-)\r?$" -- dispname
28
+ "(.-)%s+" .. -- name
29
+ "([%S:]-):" .. -- domain
30
+ "([%S]+)%s+" .. -- role
31
+ "(%-?%d+)%s+" .. -- priority
32
+ "(%S*)%s+" .. -- uri
33
+ "(.-)\r?$" -- dispname
24
34
 
25
35
 
26
36
  -- Iterate through each line in the file content
@@ -48,7 +58,6 @@ local function read_inv_text(filename)
48
58
  end
49
59
 
50
60
  local function read_json(filename)
51
-
52
61
  local file = io.open(filename, "r")
53
62
  if file == nil then
54
63
  return nil
@@ -66,7 +75,6 @@ local function read_inv_text_or_json(base_name)
66
75
  -- TODO: refactors so we don't just close the file immediately
67
76
  io.close(file)
68
77
  json = read_inv_text(base_name .. ".txt")
69
-
70
78
  else
71
79
  json = read_json(base_name .. ".json")
72
80
  end
@@ -74,10 +82,8 @@ local function read_inv_text_or_json(base_name)
74
82
  return json
75
83
  end
76
84
 
77
- local inventory = {}
78
-
79
- local function lookup(search_object)
80
-
85
+ -- each inventory has entries: project, version, items
86
+ local function lookup(search_object, debug)
81
87
  local results = {}
82
88
  for _, inv in ipairs(inventory) do
83
89
  for _, item in ipairs(inv.items) do
@@ -98,7 +104,7 @@ local function lookup(search_object)
98
104
  goto continue
99
105
  else
100
106
  if search_object.domain or item.domain == "py" then
101
- table.insert(results, item)
107
+ table.insert(results, item)
102
108
  end
103
109
 
104
110
  goto continue
@@ -112,23 +118,24 @@ local function lookup(search_object)
112
118
  return results[1]
113
119
  end
114
120
  if #results > 1 then
115
- quarto.log.warning("Found multiple matches for " .. search_object.name .. ", using the first match.")
121
+ _debug_log("Found multiple matches for " .. search_object.name .. ", using the first match.", debug)
116
122
  return results[1]
117
123
  end
118
124
  if #results == 0 then
119
- quarto.log.warning("Found no matches for object:\n", search_object)
125
+ _debug_log("Found no matches for object:\n", debug)
126
+ _debug_log(search_object, debug)
120
127
  end
121
128
 
122
129
  return nil
123
130
  end
124
131
 
125
- local function mysplit (inputstr, sep)
132
+ local function mysplit(inputstr, sep)
126
133
  if sep == nil then
127
- sep = "%s"
134
+ sep = "%s"
128
135
  end
129
- local t={}
130
- for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
131
- table.insert(t, str)
136
+ local t = {}
137
+ for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
138
+ table.insert(t, str)
132
139
  end
133
140
  return t
134
141
  end
@@ -140,7 +147,84 @@ local function normalize_role(role)
140
147
  return role
141
148
  end
142
149
 
143
- local function build_search_object(str)
150
+ local function copy_replace(original, key, new_value)
151
+ -- First create a copy of the table
152
+ local copy = {}
153
+ for k, v in pairs(original) do
154
+ copy[k] = v
155
+ end
156
+
157
+ -- Then replace the specific value
158
+ copy[key] = new_value
159
+
160
+ return copy
161
+ end
162
+
163
+ local function contains(list, value)
164
+ -- check if list contains a value
165
+ for i, v in ipairs(list) do
166
+ if v == value then
167
+ return true
168
+ end
169
+ end
170
+ return false
171
+ end
172
+
173
+ local function flatten_alias_list(list)
174
+ -- flatten a list of lists into a single list,
175
+ -- where each entry has the form {key, subvalue}}
176
+ -- e.g.
177
+ -- input: {key1 = {subval1, subval2}, key2 = subval3}
178
+ -- output: {{key1, subval1}, {key1, subval2}, {key2, subval3}}
179
+ local flat = {}
180
+ for key, sublist in pairs(list) do
181
+ if type(sublist) == "table" then
182
+ for _, subvalue in ipairs(sublist) do
183
+ table.insert(flat, { key, subvalue })
184
+ end
185
+ else
186
+ table.insert(flat, { key, sublist })
187
+ end
188
+ end
189
+ return flat
190
+ end
191
+
192
+ local function prepend_aliases(flat_aliases)
193
+ -- if str up to first period starts with an alias, then
194
+ -- replace it with the full name.
195
+ -- For example, suppose we have the alias quartodoc -> qd
196
+ -- e.g. qd.Auto -> quartodoc.Auto
197
+ -- e.g. qda.Auto -> qda.Auto
198
+
199
+ local new_inv = {}
200
+ new_inv["project"] = "aliases"
201
+ new_inv["version"] = "0.0.9999" -- I have not begun to think about version...
202
+ new_inv["items"] = {}
203
+
204
+ for _, name_pair in pairs(flat_aliases) do
205
+ local full = name_pair[1]
206
+ local alias = name_pair[2]
207
+ for _, inv in ipairs(inventory) do
208
+ for _, item in ipairs(inv.items) do
209
+ if string.sub(item.name, 1, string.len(full) + 1) == (full .. ".") then
210
+ -- replace full .. "." with alias .. "."
211
+ local prefix
212
+ if not alias or pandoc.utils.stringify(alias) == "" then
213
+ prefix = ""
214
+ else
215
+ -- TODO: ensure alias doesn't end with period
216
+ prefix = pandoc.utils.stringify(alias) .. "."
217
+ end
218
+ local new_name = prefix .. string.sub(item.name, string.len(full) + 2)
219
+ table.insert(new_inv.items, copy_replace(item, "name", new_name))
220
+ end
221
+ end
222
+ end
223
+ end
224
+ table.insert(inventory, new_inv)
225
+ end
226
+
227
+ local function build_search_object(str, debug)
144
228
  local starts_with_colon = str:sub(1, 1) == ":"
145
229
  local search = {}
146
230
  if starts_with_colon then
@@ -163,7 +247,7 @@ local function build_search_object(str)
163
247
  search.role = normalize_role(t[3])
164
248
  search.name = t[4]:match("%%60(.*)%%60")
165
249
  else
166
- quarto.log.warning("couldn't parse this link: " .. str)
250
+ _debug_log("couldn't parse this link: " .. str, debug)
167
251
  return {}
168
252
  end
169
253
  else
@@ -171,7 +255,7 @@ local function build_search_object(str)
171
255
  end
172
256
 
173
257
  if search.name == nil then
174
- quarto.log.warning("couldn't parse this link: " .. str)
258
+ _debug_log("couldn't parse this link: " .. str, debug)
175
259
  return {}
176
260
  end
177
261
 
@@ -220,7 +304,60 @@ function Link(link)
220
304
  return link
221
305
  end
222
306
 
223
- local function fixup_json(json, prefix)
307
+ function Code(code)
308
+ if (not autolink) or contains(code.classes, autolink_ignore_token) then
309
+ return code
310
+ end
311
+
312
+ -- allow text for lookup to be simple function call
313
+ -- and also support shortened syntax (~~ prefix)
314
+ -- e.g. my_func() -> my_func
315
+ -- e.g. a.b.call() -> a.b.call
316
+ -- e.g. ~~my_func() -> my_func
317
+ local text
318
+
319
+ -- detect and remove shortening syntax (~~ prefix)
320
+ local is_shortened = code.text:sub(1, 2) == "~~"
321
+ local is_short_dot = code.text:sub(1, 3) == "~~."
322
+ local unprefixed = code.text:gsub("^~~%.?", "")
323
+ if unprefixed:match("%(%s*%)") then
324
+ text = unprefixed:gsub("%(%s*%)", "")
325
+ else
326
+ text = unprefixed
327
+ end
328
+
329
+
330
+ -- return code.attr
331
+ local search = build_search_object("%60" .. text .. "%60")
332
+ local item = lookup(search)
333
+
334
+ -- determine replacement, used if no link text specified ----
335
+ if item == nil then
336
+ code.text = unprefixed
337
+ return code
338
+ end
339
+
340
+ -- shorten text if shortening syntax used
341
+ if is_shortened then
342
+ -- keep text after last period (.)
343
+ local split = mysplit(unprefixed, ".")
344
+ if #split > 0 then
345
+ local new_name = split[#split]
346
+ if is_short_dot then
347
+ -- if shortened with dot, keep the dot
348
+ new_name = "." .. new_name
349
+ end
350
+ code.text = new_name
351
+ else
352
+ code.text = unprefixed
353
+ end
354
+ end
355
+
356
+
357
+ return pandoc.Link(code, item.uri:gsub("%$$", search.name))
358
+ end
359
+
360
+ local function fixup_json(json, prefix, attach)
224
361
  for _, item in ipairs(json.items) do
225
362
  item.uri = prefix .. item.uri
226
363
  end
@@ -232,6 +369,23 @@ return {
232
369
  Meta = function(meta)
233
370
  local json
234
371
  local prefix
372
+ local aliases
373
+
374
+ -- set globals from config
375
+ if meta.interlinks and meta.interlinks.autolink then
376
+ autolink = true
377
+ else
378
+ autolink = false
379
+ end
380
+
381
+ local aliases
382
+ if meta.interlinks and meta.interlinks.aliases then
383
+ aliases = meta.interlinks.aliases
384
+ else
385
+ aliases = {}
386
+ end
387
+
388
+ -- process sources
235
389
  if meta.interlinks and meta.interlinks.sources then
236
390
  for k, v in pairs(meta.interlinks.sources) do
237
391
  local base_name = quarto.project.offset .. "/_inv/" .. k .. "_objects"
@@ -246,9 +400,12 @@ return {
246
400
  if json ~= nil then
247
401
  fixup_json(json, "/")
248
402
  end
403
+
404
+ prepend_aliases(flatten_alias_list(aliases))
249
405
  end
250
406
  },
251
407
  {
252
- Link = Link
408
+ Link = Link,
409
+ Code = Code
253
410
  }
254
411
  }
@@ -1,5 +1,6 @@
1
1
  project:
2
2
  type: website
3
+ post-render: scripts/post-render.py
3
4
 
4
5
  format:
5
6
  html:
@@ -19,6 +20,9 @@ filters:
19
20
 
20
21
  interlinks:
21
22
  fast: true
23
+ autolink: true
24
+ aliases:
25
+ pointblank: [null, pb]
22
26
  sources:
23
27
  numpy:
24
28
  url: https://numpy.org/doc/stable/
@@ -83,6 +87,9 @@ website:
83
87
  - user-guide/preview.qmd
84
88
  - user-guide/col-summary-tbl.qmd
85
89
  - user-guide/missing-vals-tbl.qmd
90
+ page-footer:
91
+ 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
+ right: "&copy; 2024&ndash;2025 Posit Software, PBC."
86
93
 
87
94
  html-table-processing: none
88
95
 
@@ -178,6 +185,7 @@ quartodoc:
178
185
  - name: Validate.all_passed
179
186
  - name: Validate.assert_passing
180
187
  - name: Validate.assert_below_threshold
188
+ - name: Validate.above_threshold
181
189
  - name: Validate.n
182
190
  - name: Validate.n_passed
183
191
  - name: Validate.n_failed
@@ -202,6 +210,8 @@ quartodoc:
202
210
  - name: missing_vals_tbl
203
211
  - name: assistant
204
212
  - name: load_dataset
213
+ - name: get_data_path
214
+ - name: connect_to_table
205
215
  - title: Utility Functions
206
216
  desc: >
207
217
  The *Utility Functions* group contains functions that are useful accessing metadata about