Convenience decorator that applies [`Check`](#check) to a callable.

    ```python
    from good import truth

    @truth(u'Must be an existing directory')
    def isDir(v):
        return os.path.isdir(v)
    ```

    :param message: Validation error message
    :type message: unicode
    :param expected: Expected value string representation, or `None` to get it from the wrapped callable
    :type expected: None|str|unicode
    :return: decorator
    :rtype: callable

def truth(message, expected=None):
    """ Convenience decorator that applies [`Check`](#check) to a callable.

    ```python
    from good import truth

    @truth(u'Must be an existing directory')
    def isDir(v):
        return os.path.isdir(v)
    ```

    :param message: Validation error message
    :type message: unicode
    :param expected: Expected value string representation, or `None` to get it from the wrapped callable
    :type expected: None|str|unicode
    :return: decorator
    :rtype: callable
    """
    def decorator(func):
        return update_wrapper(Check(func, message, expected), func)
    return decorator