From e26b74711c598d383112c3450e044d6389fd8be8 Mon Sep 17 00:00:00 2001 From: Steve Kowalik 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()