pointblank
Advanced tools
| import polars as pl | ||
| import pytest | ||
| @pytest.fixture | ||
| def half_null_ser() -> pl.Series: | ||
| """A 1k element half null series. Exists to get around rounding issues.""" | ||
| data = [None if i % 2 == 0 else i for i in range(1000)] | ||
| return pl.Series("half_null", data) |
@@ -18,2 +18,5 @@ { | ||
| }, | ||
| "[markdown]": { | ||
| "editor.formatOnSave": false | ||
| }, | ||
| "python.testing.pytestArgs": ["tests"], | ||
@@ -20,0 +23,0 @@ "python.testing.unittestEnabled": false, |
+1
-0
@@ -176,2 +176,3 @@ project: | ||
| - name: Validate.col_exists | ||
| - name: Validate.col_pct_null | ||
| - name: Validate.col_schema_match | ||
@@ -178,0 +179,0 @@ - name: Validate.row_count_match |
+1
-0
@@ -57,2 +57,3 @@ # Pointblank | ||
| - [Validate.col_exists](https://posit-dev.github.io/pointblank/reference/Validate.col_exists.html): Validate whether one or more columns exist in the table. | ||
| - [Validate.col_pct_null](https://posit-dev.github.io/pointblank/reference/Validate.col_pct_null.html): Validate whether a column has a specific percentage of Null values. | ||
| - [Validate.rows_distinct](https://posit-dev.github.io/pointblank/reference/Validate.rows_distinct.html): Validate whether rows in the table are distinct. | ||
@@ -59,0 +60,0 @@ - [Validate.col_schema_match](https://posit-dev.github.io/pointblank/reference/Validate.col_schema_match.html): Do columns in the table (and their types) match a predefined schema? |
+21
-2
@@ -5,3 +5,3 @@ .PHONY: check | ||
| test: | ||
| @uv run pytest \ | ||
| @uv run pytest tests \ | ||
| --cov=pointblank \ | ||
@@ -12,7 +12,26 @@ --cov-report=term-missing \ | ||
| --reruns 3 \ | ||
| --reruns-delay 1 | ||
| --reruns-delay 1 \ | ||
| --doctest-modules pointblank \ | ||
| --durations 10 | ||
| .PHONY: test-core | ||
| test-core: ## Run core libraries only; useful for local CI | ||
| @SKIP_PYSPARK_TESTS=1 \ | ||
| SKIP_SQLITE_TESTS=1 \ | ||
| SKIP_PARQUET_TESTS=1 \ | ||
| uv run pytest \ | ||
| --cov=pointblank \ | ||
| --cov-report=term-missing \ | ||
| --randomly-seed 123 \ | ||
| -n auto \ | ||
| --durations=10 | ||
| test-update: | ||
| pytest --snapshot-update | ||
| .PHONY: pre-commit | ||
| pre-commit: ## Run pre-commit hooks | ||
| @uvx pre-commit run --all-files | ||
| .PHONY: lint | ||
@@ -19,0 +38,0 @@ lint: ## Run ruff formatter and linter |
+6
-1
| Metadata-Version: 2.4 | ||
| Name: pointblank | ||
| Version: 0.16.0 | ||
| Version: 0.17.0 | ||
| Summary: Find out if your data is what you think it is. | ||
@@ -98,2 +98,7 @@ Author-email: Richard Iannone <riannone@me.com> | ||
| > [!TIP] | ||
| > **📺 Featured Talk: ['Making Things Nice in Python'](https://www.youtube.com/watch?v=J6e2BKjHyPg)** | ||
| > | ||
| > Discover how Pointblank and Great Tables (used in this library) prioritize user experience in Python package design. I go over why convenient options, extensive documentation, and thoughtful API decisions is better for everyone (even when they challenge conventional Python patterns/practices). | ||
| <div align="center"> | ||
@@ -100,0 +105,0 @@ |
| Metadata-Version: 2.4 | ||
| Name: pointblank | ||
| Version: 0.16.0 | ||
| Version: 0.17.0 | ||
| Summary: Find out if your data is what you think it is. | ||
@@ -98,2 +98,7 @@ Author-email: Richard Iannone <riannone@me.com> | ||
| > [!TIP] | ||
| > **📺 Featured Talk: ['Making Things Nice in Python'](https://www.youtube.com/watch?v=J6e2BKjHyPg)** | ||
| > | ||
| > Discover how Pointblank and Great Tables (used in this library) prioritize user experience in Python package design. I go over why convenient options, extensive documentation, and thoughtful API decisions is better for everyone (even when they challenge conventional Python patterns/practices). | ||
| <div align="center"> | ||
@@ -100,0 +105,0 @@ |
@@ -247,2 +247,3 @@ .gitignore | ||
| tests/__init__.py | ||
| tests/conftest.py | ||
| tests/test__interrogation.py | ||
@@ -249,0 +250,0 @@ tests/test__utils.py |
@@ -107,2 +107,3 @@ import inspect | ||
| "Validate.col_exists", | ||
| "Validate.col_pct_null", | ||
| "Validate.col_schema_match", | ||
@@ -109,0 +110,0 @@ "Validate.row_count_match", |
@@ -192,7 +192,10 @@ from __future__ import annotations | ||
| -------- | ||
| >>> _process_python_expressions({"python": "pl.scan_csv('data.csv').head(10)"}) | ||
| # Returns the result of the Python expression | ||
| >>> import polars as pl | ||
| >>> expr = _process_python_expressions({"python": "pl.scan_csv('data.csv').head(10)"}) | ||
| >>> assert isinstance(expr, pl.LazyFrame) | ||
| >>> _process_python_expressions({"python": "import polars as pl\\npl.scan_csv('data.csv')"}) | ||
| # Returns the result of multiline Python code | ||
| >>> expr = _process_python_expressions({"python": "import polars as pl\\npl.scan_csv('data.csv')"}) | ||
| >>> assert isinstance(expr, pl.LazyFrame) | ||
| """ | ||
@@ -199,0 +202,0 @@ if isinstance(value, dict): |
+5
-0
@@ -0,1 +1,6 @@ | ||
| > [!TIP] | ||
| > **📺 Featured Talk: ['Making Things Nice in Python'](https://www.youtube.com/watch?v=J6e2BKjHyPg)** | ||
| > | ||
| > Discover how Pointblank and Great Tables (used in this library) prioritize user experience in Python package design. I go over why convenient options, extensive documentation, and thoughtful API decisions is better for everyone (even when they challenge conventional Python patterns/practices). | ||
| <div align="center"> | ||
@@ -2,0 +7,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
97013363
0.2%445
0.23%76132
4.18%