Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #49 +/- ##
==========================================
- Coverage 90.76% 86.04% -4.73%
==========================================
Files 31 46 +15
Lines 2188 2931 +743
Branches 0 366 +366
==========================================
+ Hits 1986 2522 +536
- Misses 202 242 +40
- Partials 0 167 +167 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 380119bb54
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| return declared.required | ||
| if self.raw_field.default is not PydanticUndefined or self.raw_field.default_factory is not None: | ||
| return False | ||
| return not self.allows_none |
There was a problem hiding this comment.
Preserve requiredness for Optional fields without defaults
PydanticFieldAdapter.required currently falls back to return not self.allows_none, which marks field: T | None as optional even when no default is provided. In Pydantic v2, T | None without a default is still required (the key must be present), so this misclassification causes template/header validation to treat required columns as optional and defers failures to per-row validation at import time. This regresses required-column detection for common model declarations like address: String | None = FieldMeta(...).
Useful? React with 👍 / 👎.
Summary
This PR promotes the
v2branch to the first stable public release of ExcelAlchemy 2.0.What changed
2.0.0rc1to2.0.0docs/releases/2.0.0.mdrelease checklistVerification
./.venv/bin/ruff check ../.venv/bin/uv run pyright./.venv/bin/pytest -q