This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git
The following commit(s) were added to refs/heads/main by this push:
new ca5f176 Use a more reliable approach to construct Release instances
ca5f176 is described below
commit ca5f176bc670f5a5a78290f858c9fef0f728b5d6
Author: Sean B. Palmer <[email protected]>
AuthorDate: Tue Jul 15 18:33:43 2025 +0100
Use a more reliable approach to construct Release instances
---
atr/models/api.py | 5 -----
atr/models/sql.py | 15 ++++++---------
2 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/atr/models/api.py b/atr/models/api.py
index 4311afc..70c3036 100644
--- a/atr/models/api.py
+++ b/atr/models/api.py
@@ -229,11 +229,6 @@ class ReleasesProjectResults(schema.Strict):
data: Sequence[sql.Release]
count: int
- @pydantic.field_validator("data", mode="before")
- @classmethod
- def coerce_release(cls, v: Sequence[dict[str, Any]]) ->
Sequence[sql.Release]:
- return [sql.Release.model_validate(item) if isinstance(item, dict)
else item for item in v]
-
class ReleasesVersionResults(schema.Strict):
endpoint: Literal["/releases/version"] = schema.Field(alias="endpoint")
diff --git a/atr/models/sql.py b/atr/models/sql.py
index d2c91b2..802e349 100644
--- a/atr/models/sql.py
+++ b/atr/models/sql.py
@@ -597,15 +597,12 @@ class Release(sqlmodel.SQLModel, table=True):
raise ValueError("Latest revision number is not a str or None")
return number
- @pydantic.field_validator("created", mode="before")
- @classmethod
- def parse_created(cls, v: str | datetime.datetime):
- return datetime.datetime.fromisoformat(v.rstrip("Z")) if isinstance(v,
str) else v
-
- @pydantic.field_validator("phase", mode="before")
- @classmethod
- def parse_phase(cls, v: str | ReleasePhase):
- return ReleasePhase(v) if isinstance(v, str) else v
+ def model_post_init(self, _context):
+ if isinstance(self.created, str):
+ self.created =
datetime.datetime.fromisoformat(self.created.rstrip("Z"))
+
+ if isinstance(self.phase, str):
+ self.phase = ReleasePhase(self.phase)
# NOTE: This does not work
# But it we set it with Release.latest_revision_number_query = ..., it
might work
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]