Skip to content

Commit f3dcfe6

Browse files
Merge branch 'main' into typing
2 parents 4d4dc40 + 3068f77 commit f3dcfe6

185 files changed

Lines changed: 125761 additions & 17071 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ labels: "Type: ☹︎ Bug"
77

88
## Prework
99

10-
- [ ] Read and agree to the [code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) and [contributing guidelines](https://github.com/posit-dev/pointblank/blob/main/.github/CONTRIBUTING.md).
10+
- [ ] Read and agree to the [code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) and [contributing guidelines](https://github.com/posit-dev/pointblank/blob/main/CONTRIBUTING.md).
1111
- [ ] If there is [already a relevant issue](https://github.com/posit-dev/pointblank/issues), whether open or closed, comment on the existing thread instead of posting a new issue.
1212

1313
## Description

.github/ISSUE_TEMPLATE/feature.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ labels: "Type: ★ Enhancement"
77

88
## Prework
99

10-
- [ ] Read and abide by the Pointblank [code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) and [contributing guidelines](https://github.com/posit-dev/pointblank/blob/main/.github/CONTRIBUTING.md).
10+
- [ ] Read and abide by the Pointblank [code of conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) and [contributing guidelines](https://github.com/posit-dev/pointblank/blob/main/CONTRIBUTING.md).
1111
- [ ] Search for duplicates among the [existing issues](https://github.com/posit-dev/pointblank/issues) (both open and closed).
1212

1313
## Proposal

.github/workflows/ci-tests.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
python-version: ["3.10", "3.11", "3.12"]
18+
python-version: ["3.10", "3.11", "3.12", "3.13"]
1919
fail-fast: false
2020

2121
steps:
@@ -24,11 +24,21 @@ jobs:
2424
uses: actions/setup-python@v5
2525
with:
2626
python-version: ${{ matrix.python-version }}
27+
- name: Set up Java for PySpark
28+
uses: actions/setup-java@v4
29+
with:
30+
distribution: "temurin"
31+
java-version: "11"
2732
- name: Install uv
2833
uses: astral-sh/setup-uv@v5
2934
- name: pytest unit tests
3035
run: |
3136
make test
37+
env:
38+
# Optimize PySpark for CI environment
39+
PYSPARK_DRIVER_MEMORY: 1g
40+
PYSPARK_EXECUTOR_MEMORY: 1g
41+
SPARK_LOCAL_IP: 127.0.0.1
3242
- name: Upload coverage reports to Codecov
3343
uses: codecov/codecov-action@v5
3444
with:

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,12 @@ docs/_site
119119
docs/.quarto
120120
docs/reference
121121
docs/objects.json
122+
docs/user-guide-pdf-clean.qmd
123+
docs/toc.html
124+
docs/toc.pdf
125+
docs/user-guilde-with-toc.pdf
126+
docs/basic_validation.yaml
127+
docs/validation_config.yaml
122128

123129
datasets/
124130
/*.parquet
@@ -136,3 +142,5 @@ uv.lock
136142

137143
# While typing is experimental, don't mark the entire package as typed
138144
pointblank/py.typed
145+
memory
146+
.vscode/mcp.json

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
"source.organizeImports": "explicit"
1616
},
1717
},
18+
"[markdown]": {
19+
"editor.formatOnSave": false
20+
},
1821
"python.testing.pytestArgs": ["tests"],
1922
"python.testing.unittestEnabled": false,
2023
"python.testing.pytestEnabled": true,

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ cff-version: 1.2.0
22
message: 'If you wish to cite the "Pointblank" package use:'
33
type: software
44
license: MIT
5-
title: "Pointblank: Find out if your data is what you think it is"
6-
version: 0.7.3
5+
title: "Pointblank: data validation toolkit for assessing and monitoring data quality."
6+
version: 0.16.0
77
abstract: Validate data in Polars and Pandas DataFrames and database tables.
88
Validation pipelines can be made using easily-readable, consecutive validation
99
steps. Upon execution of the validation plan, several reporting options are available.

Makefile

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,37 @@
22

33
.PHONY: test
44
test:
5-
@uv run pytest \
5+
@uv run pytest tests \
66
--cov=pointblank \
77
--cov-report=term-missing \
88
--randomly-seed 123 \
99
-n auto \
1010
--reruns 3 \
11-
--reruns-delay 1
11+
--reruns-delay 1 \
12+
--doctest-modules pointblank \
13+
--durations 10
14+
15+
.PHONY: test-core
16+
test-core: ## Run core libraries only; useful for local CI
17+
@SKIP_PYSPARK_TESTS=1 \
18+
SKIP_SQLITE_TESTS=1 \
19+
SKIP_PARQUET_TESTS=1 \
20+
uv run pytest \
21+
--cov=pointblank \
22+
--cov-report=term-missing \
23+
--randomly-seed 123 \
24+
-n auto \
25+
--durations=10
26+
1227

1328
test-update:
1429
pytest --snapshot-update
1530

31+
.PHONY: pre-commit
32+
pre-commit: ## Run pre-commit hooks
33+
@uvx pre-commit run --all-files
1634

35+
.PHONY: lint
1736
lint: ## Run ruff formatter and linter
1837
@uv run ruff format
1938
@uv run ruff check --fix
@@ -22,6 +41,13 @@ lint: ## Run ruff formatter and linter
2241
type: ## Run experimental(!) type checking
2342
@uvx ty check pointblank
2443

44+
.PHONY: install-pre-commit
45+
install-pre-commit: # Install pre-commit hooks
46+
@uvx pre-commit install
47+
48+
.PHONY: run-pre-commit
49+
run-pre-commit: # Run pre-commit hooks
50+
@uvx pre-commit run --all-files
2551

2652
check:
2753
pyright --pythonversion 3.8 pointblank
@@ -60,5 +86,21 @@ docs-build:
6086
&& quartodoc build --verbose \
6187
&& quarto render
6288

89+
docs-pdf: ## Build PDF version of User Guide (HTML to PDF preserving graphics)
90+
@echo "Preparing PDF document (stripping YAML from includes)..."
91+
uv run python scripts/create_pdf_doc.py
92+
@echo "Rendering User Guide to self-contained HTML..."
93+
cd docs && uv run quarto render user-guide-pdf-clean.qmd --to html --output user-guide-pdf.html
94+
@echo "Converting HTML to PDF with Chrome (preserves validation reports)..."
95+
uv run python scripts/html_to_pdf.py docs/_site/user-guide-pdf.html docs/user-guide.pdf
96+
@echo "Creating Table of Contents page with actual page numbers..."
97+
uv run python scripts/create_toc_pdf.py docs/user-guide.pdf
98+
@echo "PDF available at docs/user-guide.pdf"
99+
100+
docs-llms: ## Generate llms.txt and llms-full.txt files for LLM consumption
101+
@uv run python scripts/generate_llms_txt.py
102+
103+
docs-full: docs-build docs-llms ## Build docs and generate llms.txt files
104+
63105
install: dist ## install the package to the active Python's site-packages
64106
python3 -m pip install --force-reinstall dist/pointblank*.whl

0 commit comments

Comments
 (0)