Skip to content

ExcelAlchemy 2.2.3

Choose a tag to compare

@ruicore ruicore released this 03 Apr 15:17
· 16 commits to main since this release
6990613

ExcelAlchemy 2.2.3

ExcelAlchemy 2.2.3 continues the stable 2.x line with a focused validation fix in the Pydantic adapter layer.

This release keeps the public import/export workflow API stable while restoring the intended failure mode for unsupported annotated declarations.

Highlights

  • unsupported Annotated[..., Field(...), ExcelMeta(...)] declarations now fail with the intended ProgrammaticError
  • codec resolution in the Pydantic adapter is stricter and more explicit
  • the validation fix is protected by an integration regression test

What changed

Validation fix

  • restored explicit ProgrammaticError handling for unsupported annotated declarations that use native Python types instead of ExcelFieldCodec subclasses
  • tightened codec resolution in the Pydantic adapter so unsupported declarations fail at the codec resolution boundary instead of being treated as valid runtime metadata
  • preserved the existing behavior for valid ExcelFieldCodec and CompositeExcelFieldCodec declarations

Regression coverage

  • added an integration regression test for unsupported annotated declarations
  • verified that native Python annotations paired with ExcelMeta(...) do not silently enter the workbook schema path

Compatibility notes

  • no public import or export workflow API was removed in this release
  • valid codec-based declarations continue to work unchanged
  • unsupported native annotations with ExcelMeta(...) now fail early with the intended ProgrammaticError

Verification

uv run ruff check src/excelalchemy/helper/pydantic.py tests/integration/test_excelalchemy_workflows.py
uv run pyright
uv run pytest tests/integration/test_excelalchemy_workflows.py -q
uv build
uvx twine check dist/*