feat: add new checks and floating api #24
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🚀 Add Fluent API and New Row-Level String Checks
This PR introduces major improvements to the
sparkdq
framework, including a fluent-style CheckSet API and a suite of reusable, declarative string validation checks.✨ What's New
✅ Fluent API for
CheckSet
Checks can now be added using a chainable (floating) style:
🧪 New Row-Level Checks
ColumnLessThanCheck
Ensures that values in one column are strictly less than values in another (supports timestamps, dates, numerics)
StringMinLengthCheck
Validates that strings meet a minimum length (
inclusive=True|False
)StringMaxLengthCheck
Ensures that string values do not exceed a maximum length
StringLengthBetweenCheck
Checks if string length lies within a specified
[min, max]
rangeRegexMatchCheck
Flags values that do not match a given regex pattern
Supports
ignore_case
and optional failure on nulls🔧 Other Improvements
__init__.py
now includes a__version__
for programmatic version accessStringMinLengthCheck
for readability and consistency📚 Docs & Tests
✅ Checklist