Skip to content

Commit cf07e9f

Browse files
authored
Enable defer_build for Entity.Model and Sealable.Model (#6867)
Enables lazy construction of validators and serializers by setting `defer_build=True`. This can reduce import-time overhead and improve performance in contexts where models are not always used.
1 parent e768b70 commit cf07e9f

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

src/aiida/orm/entities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ class Entity(abc.ABC, Generic[BackendEntityType, CollectionType], metaclass=Enti
181181
_CLS_COLLECTION: Type[CollectionType] = Collection # type: ignore[assignment]
182182
_logger = log.AIIDA_LOGGER.getChild('orm.entities')
183183

184-
class Model(BaseModel):
184+
class Model(BaseModel, defer_build=True):
185185
pk: Optional[int] = MetadataField(
186186
None,
187187
description='The primary key of the entity. Can be `None` if the entity is not yet stored.',

src/aiida/orm/utils/mixins.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ class Sealable:
183183

184184
SEALED_KEY = 'sealed'
185185

186-
class Model(pydantic.BaseModel):
186+
class Model(pydantic.BaseModel, defer_build=True):
187187
sealed: bool = MetadataField(description='Whether the node is sealed')
188188

189189
@classproperty

0 commit comments

Comments
 (0)