Skip to content

Releases: Abstract-Data/abstract-validation-base

Release v0.4.0

13 Dec 02:52

Choose a tag to compare

Release Notes for v0.4.0

Highlights

This release graduates from alpha (0.3.0a1) to stable (0.4.0), introducing whylogs integration for data profiling during validation runs.

New Features

WhylogsObserver for Data Profiling

  • New module: whylogs_observer.py - Automated data profiling of both raw input data and validated outputs
  • Profile data during validation runs with configurable chunk sizes
  • Compare raw vs valid profiles for data quality analysis
  • Export profiles to whylogs binary format or pandas DataFrames
  • Thread-safe design compatible with parallel validation
  • Install with: pip install abstract-validation-base[whylogs]
from abstract_validation_base import WhylogsObserver, ValidationRunner

observer = WhylogsObserver(chunk_size=10000, profile_raw=True, profile_valid=True)
runner = ValidationRunner(data, MyModel)
runner.add_observer(observer)

for result in runner.run():
    process(result)

profiles = observer.get_profiles()
comparison = observer.compare_profiles()

Bug Fixes

  • Fix IndexError: Resolved crash when validation error has empty loc tuple (#2)
  • Remove unused type: ignore comment: Fixed mypy strict mode compliance in whylogs_observer.py

Documentation

  • Comprehensive README update covering all package functionality
  • Added AI agent issue reporting guidelines to AGENTS.md
  • Added whylogs integration documentation with usage examples

Infrastructure

  • Added comprehensive GitHub issue/PR templates with YAML forms
  • Added automated issue triage workflow
  • Context7 owner verification

Code Quality

  • 358 tests passing with 98% code coverage
  • Full mypy strict mode compliance
  • Ruff linting and formatting compliance

Breaking Changes

None - fully backward compatible with 0.3.0a1

Installation

pip install abstract-validation-base==0.4.0

# With whylogs support:
pip install abstract-validation-base[whylogs]==0.4.0

Full Changelog: v0.3.0a1...v0.4.0

Release v0.3.0a1

12 Dec 08:14

Choose a tag to compare

Release v0.3.0a1 Pre-release
Pre-release

Release v0.3.0a1

✨ New Features

Observer Pattern & Event System

  • Added ValidationObserver protocol for tracking validation events
  • New ValidationEvent and ValidationEventType for event-driven architecture
  • Events: VALIDATION_STARTED, VALIDATION_COMPLETED, ROW_PROCESSED, BATCH_STARTED, BATCH_COMPLETED, ERROR_ADDED, CLEANING_ADDED

Streaming Validation Runner

  • New ValidationRunner for processing large datasets without loading into memory
  • Supports iterator input for streaming CSV/JSONL files
  • Methods: run(), run_collect_valid(), run_collect_failed(), run_batch_valid()
  • Parallel processing support with workers parameter
  • Built-in statistics tracking via RunnerStats

Rich Console Observers

  • SimpleProgressObserver - Progress bar integration with Rich
  • RichDashboardObserver - Live dashboard with stats panel and error tracking

Output Writers

  • CSVFailedWriter - Export failed records to CSV
  • JSONLinesFailedWriter - Export failed records to JSONL
  • AuditReportWriter - Generate audit reports in JSON/CSV format

AI Agent Documentation

  • Added comprehensive AGENTS.md with guidelines for AI assistants
  • Quick reference table, code examples, and anti-patterns

🧪 Testing Improvements

  • Added Hypothesis property-based tests for rich_observers and runner modules
  • Stateful testing for RunnerStats with RuleBasedStateMachine
  • Achieved 99% test coverage (100% on most modules)

🔧 Fixes

  • Resolved all mypy type errors in test files
  • Fixed version-check workflow for better cross-platform portability

📦 CI/CD

  • Added alpha/beta/rc prerelease support to release workflow
  • Improved version tagging automation

Full Changelog: https://github.com/Abstract-Data/abstract-validation-base/commits/v0.3.0a1