From 804d45f9c5abb2327eab53eb9b3f15b86ab7c0eb Mon Sep 17 00:00:00 2001 From: Kadir Can Ozden <101993364+bysiber@users.noreply.github.com> Date: Fri, 20 Feb 2026 14:30:09 +0300 Subject: [PATCH] Return factory from hook factory decorator functions register_unstructure_hook_factory and register_structure_hook_factory can be used as decorators, but the inner decorator function doesn't return the factory. This means: @converter.register_structure_hook_factory(has) def my_factory(type): ... # my_factory is now None The type annotations declare these decorators should return the factory (Callable[[Factory], Factory]) and the non-decorator path already works correctly. This just adds the missing return statement. --- src/cattrs/converters.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cattrs/converters.py b/src/cattrs/converters.py index 54d67a48..fc8df1d2 100644 --- a/src/cattrs/converters.py +++ b/src/cattrs/converters.py @@ -435,6 +435,7 @@ def decorator(factory): self._unstructure_func.register_func_list( [(predicate, factory, True)] ) + return factory return decorator @@ -573,6 +574,7 @@ def decorator(factory): self._structure_func.register_func_list( [(predicate, factory, True)] ) + return factory return decorator self._structure_func.register_func_list(