From d324719cf5f0d006dfa51ae452e9685484c802b3 Mon Sep 17 00:00:00 2001 From: Markus Scheidgen <markus.scheidgen@gmail.com> Date: Wed, 26 Mar 2025 11:55:14 +0000 Subject: [PATCH] Fix ForwardRef related pydantic error in annotation models. Changelog: changed --- nomad/datamodel/metainfo/annotations.py | 9 ++++++++- nomad/metainfo/annotation.py | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/nomad/datamodel/metainfo/annotations.py b/nomad/datamodel/metainfo/annotations.py index ed177b2541..5042458aa2 100644 --- a/nomad/datamodel/metainfo/annotations.py +++ b/nomad/datamodel/metainfo/annotations.py @@ -23,7 +23,14 @@ from typing import Any from pydantic import ConfigDict, Field, field_validator, model_validator from pydantic.main import BaseModel -from nomad.metainfo import AnnotationModel, Datetime, MEnum, Quantity, Reference +from nomad.metainfo import ( + AnnotationModel, + Datetime, + Definition, # noqa: F401 + MEnum, + Quantity, + Reference, +) from nomad.utils import strip from ...metainfo.data_type import Datatype diff --git a/nomad/metainfo/annotation.py b/nomad/metainfo/annotation.py index 6ee540abe9..7b504aa86d 100644 --- a/nomad/metainfo/annotation.py +++ b/nomad/metainfo/annotation.py @@ -54,6 +54,9 @@ class SectionAnnotation(DefinitionAnnotation): return {} +Definition = ForwardRef('Definition') + + class AnnotationModel(Annotation, BaseModel): """ Base class for defining annotation models. Annotations used with simple dict-based @@ -61,7 +64,7 @@ class AnnotationModel(Annotation, BaseModel): model. """ - m_definition: ForwardRef('Definition') = Field( # type: ignore + m_definition: Definition = Field( # type: ignore None, description='The definition that this annotation is annotating.', exclude=True, -- GitLab