11from __future__ import annotations
22
3- import copy
43from contextlib import suppress
54from datetime import timezone
65from functools import partial
@@ -529,15 +528,11 @@ def _get_build_context(cls, build_context: BaseBuildContext | PydanticBuildConte
529528 :returns: PydanticBuildContext
530529
531530 """
532- if build_context is None :
533- return {"seen_models" : set (), "factory_use_construct" : False }
531+ build_context = cast ("PydanticBuildContext" , super ()._get_build_context (build_context ))
532+ if build_context .get ("factory_use_construct" ) is None :
533+ build_context ["factory_use_construct" ] = False
534534
535- factory_use_construct = bool (build_context .get ("factory_use_construct" , False ))
536-
537- return {
538- "seen_models" : copy .deepcopy (build_context ["seen_models" ]),
539- "factory_use_construct" : factory_use_construct ,
540- }
535+ return build_context
541536
542537 @classmethod
543538 def _create_model (cls , _build_context : PydanticBuildContext , ** kwargs : Any ) -> T :
@@ -549,7 +544,7 @@ def _create_model(cls, _build_context: PydanticBuildContext, **kwargs: Any) -> T
549544 :returns: An instance of type T.
550545
551546 """
552- if cls . _get_build_context ( _build_context ) .get ("factory_use_construct" ):
547+ if _build_context .get ("factory_use_construct" ):
553548 if _is_pydantic_v1_model (cls .__model__ ):
554549 return cls .__model__ .construct (** kwargs ) # type: ignore[return-value]
555550 return cls .__model__ .model_construct (** kwargs )
0 commit comments