@make_certifier()<EOL>def certify_object(value, kind=None, required=True):
if certify_required(<EOL>value=value,<EOL>required=required,<EOL>):<EOL><INDENT>return<EOL><DEDENT>if not isinstance(value, kind):<EOL><INDENT>try:<EOL><INDENT>name = value.__class__.__name__<EOL><DEDENT>except:  <EOL><INDENT>name = type(value).__name__<EOL><DEDENT>try:<EOL><INDENT>expected = kind.__class__.__name__<EOL><DEDENT>except:  <EOL><INDENT>expected = type(kind).__name__<EOL><DEDENT>raise CertifierValueError(<EOL>message="<STR_LIT>".format(<EOL>expected=expected, actual=name),<EOL>value=value,<EOL>required=required,<EOL>)<EOL><DEDENT>
Certifier for class object.

:param object value:
    The object to certify.
:param object kind:
    The type of the model that the value is expected to evaluate to.
:param bool required:
    Whether the value can be `None`. Defaults to True.
:raises CertifierTypeError:
    The type is invalid
:raises CertifierValueError:
    The value is invalid