Certifier for human readable (printable) values.

    :param unicode value:
        The string to be certified.
    :param nonprintable:
        Whether the string can contain non-printable characters. Non-printable characters are
        allowed by default.
    :param bool required:
        Whether the value can be `None`. Defaults to True.
    :raises CertifierTypeError:
        The type is invalid
    :raises CertifierValueError:
        The value is invalid

def certify_printable(value, nonprintable=False, required=True):
    """
    Certifier for human readable (printable) values.

    :param unicode value:
        The string to be certified.
    :param nonprintable:
        Whether the string can contain non-printable characters. Non-printable characters are
        allowed by default.
    :param bool required:
        Whether the value can be `None`. Defaults to True.
    :raises CertifierTypeError:
        The type is invalid
    :raises CertifierValueError:
        The value is invalid
    """
    certify_params(
        (certify_bool, 'nonprintable', nonprintable),
    )
    if certify_required(
        value=value,
        required=required,
    ):
        return
    _certify_printable(
        value=value,
        nonprintable=nonprintable,
        required=required,
    )