Skip to content

Releases: vertti/daffy

v2.8.0

02 Mar 06:29
e8ee29e

Choose a tag to compare

Performance improvements

Significant runtime performance improvements to minimize decorator overhead:

  • Eliminated repetitive Python introspection (inspect.signature) from the execution path by resolving parameters during decoration
  • Vectorized validation checks (nullable and unique) across multiple columns simultaneously using Narwhals expression API (.select())
  • Avoided redundant dataframe wrappers when running value checks
  • Optimized the validation builder for faster pipeline setup and eliminated unused dtype resolution overhead

What's Changed

  • perf: streamline runtime overhead and simplify configurations by @vertti in #189
  • chore(deps): update dependency skylos to v3.4.1 by @renovate[bot] in #180
  • chore(deps): update dependency uv to v0.10.6 by @renovate[bot] in #181
  • chore(deps): update dependency ruff to v0.15.3 by @renovate[bot] in #185
  • chore(deps): update dependency zensical to v0.0.24 by @renovate[bot] in #184
  • chore(deps): update dependency dprint to v0.52.0 by @renovate[bot] in #183
  • chore(deps): update dependency ruff to v0.15.4 by @renovate[bot] in #186
  • chore(deps): update dependency skylos to v3.5.1 by @renovate[bot] in #182
  • chore(deps): update dependency uv to v0.10.7 by @renovate[bot] in #187
  • chore(deps): update dependency skylos to v3.5.2 by @renovate[bot] in #188

Full Changelog: v2.7.0...v2.8.0

v2.7.0

21 Feb 05:45
0f48249

Choose a tag to compare

2.7.0

Added

  • @df_in(["col1", "col2"]) shorthand: pass columns as the first positional argument
  • Opt-in strict_specs mode ([tool.daffy] strict_specs = true): raises TypeError on invalid column spec keys or types instead of silently ignoring them

Changed

  • Config discovery now searches pyproject.toml from the current directory up through parent directories
  • Configuration caching is now keyed by current working directory for deterministic behavior across cwd changes
  • Unnamed df_in now selects the first DataFrame-like argument instead of always taking the first positional argument

Full Changelog: v2.6.1...v2.7.0

v2.6.1

12 Feb 07:27

Choose a tag to compare

Changed

  • Optional dependency detection now recognizes all advertised backends (Pandas, Polars, Modin, PyArrow)
  • Early import failure now triggers only when none of the supported DataFrame libraries are installed
  • Updated optional dependency tests and isolation docs/scripts to align with the expanded backend detection contract
  • Synced API docs and README examples with current df_in/df_out/df_log signatures and built-in check names

Added

  • Declared pydantic optional dependency extra so pip install 'daffy[pydantic]' matches runtime install guidance
  • Added docs contract tests to detect signature/example drift in README.md and docs/api.md

Full Changelog: v2.6.0...v2.6.1

v2.6.0

27 Jan 09:56
1995341

Choose a tag to compare

What's Changed

Full Changelog: v2.5.1...v2.6.0

v2.5.1

12 Jan 09:48
53062f3

Choose a tag to compare

What's Changed

  • Simplify code by eliminating repetitive patterns by @vertti in #117
  • Update dependency hypothesis to v6.150.1 by @renovate[bot] in #118

Full Changelog: v2.5.0...v2.5.1

v2.5.0

11 Jan 08:37
28c2ce7

Choose a tag to compare

What's Changed

  • Update dependency uv to v0.9.24 by @renovate[bot] in #111
  • Update dependency skylos to v3.0.3 by @renovate[bot] in #112
  • Refactor: Code cleanup and simplification by @vertti in #113
  • Replace monolithic validation with composable pipeline architecture by @vertti in #114
  • Remove dead code and use vulture for CI by @vertti in #115
  • Release v2.5.0 - Architecture refactoring by @vertti in #116

Full Changelog: v2.4.1...v2.5.0

v2.4.1

09 Jan 07:52
b86aa79

Choose a tag to compare

What's Changed

  • Update dependency hypothesis to v6.148.11 by @renovate[bot] in #99
  • Migrate documentation from MkDocs to Zensical by @vertti in #100
  • Update dependency hypothesis to v6.148.13 by @renovate[bot] in #101
  • Update dependency hypothesis to v6.149.0 by @renovate[bot] in #102
  • Update dependency hypothesis to v6.149.1 by @renovate[bot] in #104
  • Update dependency uv to v0.9.22 by @renovate[bot] in #105
  • Update dependency hypothesis to v6.150.0 by @renovate[bot] in #106
  • Replace Vulture with Skylos for dead code detection by @vertti in #107
  • remove leftover pydocstyle by @vertti in #108
  • Enable ALL Ruff rules with selective ignores by @vertti in #110
  • Update dependency ruff to v0.14.11 by @renovate[bot] in #109

Full Changelog: v2.4.0...v2.4.1

v2.4.0

03 Jan 12:24

Choose a tag to compare

What's Changed

  • Harden GitHub Actions workflows based on zizmor audit by @vertti in #93
  • Fix type errors reported by ty type checker by @vertti in #92
  • Update dependency uv to v0.9.21 by @renovate[bot] in #94
  • Add FUNDING.yml by @vertti in #96
  • Add shape validation (min_rows, max_rows, exact_rows, allow_empty) by @vertti in #97
  • Add test improvements from mutation testing analysis by @vertti in #98

Full Changelog: v2.3.1...v2.4.0

v2.3.1

30 Dec 09:14
eef2263

Choose a tag to compare

What's Changed

  • Clean up mise.toml by @vertti in #87
  • Add dprint for markdown formatting by @vertti in #88
  • Update dependency uv to v0.9.18 by @renovate[bot] in #89
  • Update dependency uv to v0.9.20 by @renovate[bot] in #90
  • Replace broken DataFrameType with narwhals IntoDataFrame by @vertti in #91

Full Changelog: v2.3.0...v2.3.1

v2.3.0

29 Dec 19:38
5a0d418

Choose a tag to compare

Breaking Changes

  • Drops Python 3.9 support

What's Changed

  • Update dependency coverage to v7.13.1 by @renovate[bot] in #77
  • Replace abandoned deadcode with vulture by @vertti in #79
  • Update dependency pre-commit to v4.5.1 by @renovate[bot] in #80
  • Drop Python 3.9 support by @vertti in #85
  • Simplify CI by using mise-action by @vertti in #84
  • Use mise-action in release workflow by @vertti in #86

New Contributors

Full Changelog: v2.2.0...v2.3.0