@@ -47,15 +47,43 @@ class or, if ``subclass=True``, whether it is a subclass of the specified
4747 object_ = [object_ ]
4848
4949 for obj in object_ :
50- try :
51- if not subclass :
52- assert isinstance (obj , object_instance )
53- else :
54- assert issubclass (obj , object_instance )
55- except AssertionError as e :
56- raise ValueError (
57- f"{ type (obj ).__name__ } must be { object_instance } ."
58- ) from e
50+ is_class = isinstance (obj , type )
51+ expected_type_name = (
52+ object_instance .__name__
53+ if isinstance (object_instance , type )
54+ else str (object_instance )
55+ )
56+
57+ if subclass :
58+ if not is_class :
59+ raise ValueError (
60+ f"You passed { repr (obj )} "
61+ f"(an instance of { type (obj ).__name__ } ), "
62+ f"but a { expected_type_name } class was expected. "
63+ f"Please pass a { expected_type_name } class or a "
64+ "derived one."
65+ )
66+ elif not issubclass (obj , object_instance ):
67+ raise ValueError (
68+ f"You passed { obj .__name__ } class, but a "
69+ f"{ expected_type_name } class was expected. "
70+ f"Please pass a { expected_type_name } class or a "
71+ "derived one."
72+ )
73+ else :
74+ if is_class :
75+ raise ValueError (
76+ f"You passed { obj .__name__ } class, but a "
77+ f"{ expected_type_name } instance was expected. "
78+ f"Please pass a { expected_type_name } instance."
79+ )
80+ elif not isinstance (obj , object_instance ):
81+ raise ValueError (
82+ f"You passed { repr (obj )} "
83+ f"(an instance of { type (obj ).__name__ } ), "
84+ f"but a { expected_type_name } instance was expected. "
85+ f"Please pass a { expected_type_name } instance."
86+ )
5987
6088
6189def labelize_forward (forward , input_variables , output_variables ):
0 commit comments