forked from pool/python-psygnal
* Support Pydantic 2.11 changes by not calling model_fields on instances. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-psygnal?expand=0&rev=13
36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
From e26b74711c598d383112c3450e044d6389fd8be8 Mon Sep 17 00:00:00 2001
|
|
From: Steve Kowalik <steven@wedontsleep.org>
|
|
Date: Wed, 30 Apr 2025 14:53:55 +1000
|
|
Subject: [PATCH] Don't use deprecated model_fields access
|
|
|
|
Pydantic 2.11 has deprecated accessing model_fields from instances of
|
|
the model class, instead requiring callers to use the class itself.
|
|
|
|
Fixes #356
|
|
---
|
|
src/psygnal/_evented_model.py | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/psygnal/_evented_model.py b/src/psygnal/_evented_model.py
|
|
index 31f90f98..c1cf1c57 100644
|
|
--- a/src/psygnal/_evented_model.py
|
|
+++ b/src/psygnal/_evented_model.py
|
|
@@ -111,7 +111,7 @@ def _get_defaults(
|
|
) -> dict[str, Any]:
|
|
"""Get possibly nested default values for a Model object."""
|
|
dflt = {}
|
|
- for k, v in obj.model_fields.items():
|
|
+ for k, v in type(obj).model_fields.items():
|
|
d = v.get_default()
|
|
if (
|
|
d is None
|
|
@@ -547,7 +547,7 @@ def update(self, values: Union["EventedModel", dict], recurse: bool = True) -> N
|
|
def reset(self) -> None:
|
|
"""Reset the state of the model to default values."""
|
|
model_config = _get_config(self)
|
|
- model_fields = _get_fields(self)
|
|
+ model_fields = _get_fields(type(self))
|
|
for name, value in self._defaults.items():
|
|
if isinstance(value, EventedModel):
|
|
cast("EventedModel", getattr(self, name)).reset()
|