import hashlib


def args_hash(
    *args,
) -> str:
    """
    Produce a hash value for the provided args.

    All provided arguments are transformed by their __str__
    implementation.

    Parameters
    ----------
    *args : To be hashed arguments

    Returns
    -------
    str
        Hash value for the arguments

    Examples
    --------
    >>> from ktz.string import args_hash
    >>> args_hash(10, "foo", True)
    'a8c83023141d8ed54fcb3d019bdf61a7468f01ac5704d0eb5bf1c626'
    """
    bytestr = "".join(map(str, args)).encode()
    return hashlib.sha224(bytestr).hexdigest()