r"""
    Args:
        dict_ (dict):

    Returns:
        int: id hash

    References:
        http://stackoverflow.com/questions/5884066/hashing-a-python-dictionary

    CommandLine:
        python -m utool.util_dict --test-get_dict_hashid
        python3 -m utool.util_dict --test-get_dict_hashid

    Example:
        >>> # ENABLE_DOCTEST
        >>> from utool.util_dict import *  # NOQA
        >>> dict_ = {}
        >>> dict_ = {'a': 'b'}
        >>> dict_ = {'a': {'c': 'd'}}
        >>> #dict_ = {'a': {'c': 'd'}, 1: 143, dict: set}
        >>> #dict_ = {'a': {'c': 'd'}, 1: 143 } non-determenism
        >>> hashid = get_dict_hashid(dict_)
        >>> result = str(hashid)
        >>> print(result)
        mxgkepoboqjerkhb

        oegknoalkrkojumi

def get_dict_hashid(dict_):
    r"""
    Args:
        dict_ (dict):

    Returns:
        int: id hash

    References:
        http://stackoverflow.com/questions/5884066/hashing-a-python-dictionary

    CommandLine:
        python -m utool.util_dict --test-get_dict_hashid
        python3 -m utool.util_dict --test-get_dict_hashid

    Example:
        >>> # ENABLE_DOCTEST
        >>> from utool.util_dict import *  # NOQA
        >>> dict_ = {}
        >>> dict_ = {'a': 'b'}
        >>> dict_ = {'a': {'c': 'd'}}
        >>> #dict_ = {'a': {'c': 'd'}, 1: 143, dict: set}
        >>> #dict_ = {'a': {'c': 'd'}, 1: 143 } non-determenism
        >>> hashid = get_dict_hashid(dict_)
        >>> result = str(hashid)
        >>> print(result)
        mxgkepoboqjerkhb

        oegknoalkrkojumi
    """
    import utool as ut
    raw_text = ut.repr4(dict_, sorted_=True, strvals=True, nl=2)
    #print('raw_text = %r' % (raw_text,))
    hashid = ut.hashstr27(raw_text)
    #from utool import util_hash
    #hashid = hash(frozenset(dict_.items()))
    #hashid = util_hash.make_hash(dict_)
    return hashid