From b5940e10146a896fc88769406e441171b34b9665 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Thu, 10 Jul 2025 15:47:11 +0300 Subject: [PATCH] perf: micro-optimize `BaseFactory._infer_model_type` No need to call `get_origin` twice --- polyfactory/factories/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/polyfactory/factories/base.py b/polyfactory/factories/base.py index d91fd5e0..d7a63443 100644 --- a/polyfactory/factories/base.py +++ b/polyfactory/factories/base.py @@ -284,7 +284,9 @@ class Foo(ModelFactory[MyModel]): # <<< MyModel """ factory_bases: Iterable[type[BaseFactory[T]]] = ( - b for b in get_original_bases(cls) if get_origin(b) and issubclass(get_origin(b), BaseFactory) + b + for b in get_original_bases(cls) + if (orig := get_origin(b)) and issubclass(orig, BaseFactory) ) generic_args: Sequence[type[T]] = [ arg for factory_base in factory_bases for arg in get_args(factory_base) if not is_type_var(arg)