<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def certify_object(value, kind=None, required=True):
 """ 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 """

    if certify_required(
        value=value,
        required=required,
    ):
        return

    if not isinstance(value, kind):
        try:
            name = value.__class__.__name__
        except:  # noqa # pragma: no cover
            name = type(value).__name__

        try:
            expected = kind.__class__.__name__
        except:  # noqa # pragma: no cover
            expected = type(kind).__name__

        raise CertifierValueError(
            message="Expected object {expected!r}, but got {actual!r}".format(
                expected=expected, actual=name),
            value=value,
            required=required,
        )