@@ -309,7 +309,7 @@ def deserializer(self, value):
309309
310310
311311def register_type (
312- type_class : Any ,
312+ type_class : type ,
313313 serializer : Callable = str ,
314314 deserializer : Optional [Callable ] = None ,
315315 deserializer_exceptions : Union [type [Exception ], tuple [type [Exception ], ...]] = (
@@ -324,14 +324,16 @@ def register_type(
324324 """Registers a new type for use in jsonargparse parsers.
325325
326326 Args:
327- type_class: The type object to be registered.
327+ type_class: The class to be registered.
328328 serializer: Function that converts an instance of the class to a basic type.
329329 deserializer: Function that converts a basic type to an instance of the class. Default instantiates type_class.
330330 deserializer_exceptions: Exceptions that deserializer raises when it fails.
331331 type_check: Function to check if a value is of type_class. Gets as arguments the value and type_class.
332332 fail_already_registered: Whether to fail if type has already been registered.
333333 uniqueness_key: Key to determine uniqueness of type.
334334 """
335+ if not inspect .isclass (type_class ):
336+ raise ValueError (f"Expected type_class to be a class, got { type_class !r} " )
335337 type_handler = RegisteredType (type_class , serializer , deserializer , deserializer_exceptions , type_check )
336338 fail_already_registered = globals ().get ("_fail_already_registered" , fail_already_registered )
337339 if not uniqueness_key and fail_already_registered and get_registered_type (type_class ):
0 commit comments