

def isdicsimilar(dic1, dic2, verb=False, dtol=DTOL, ignore_pipe_display=False):
    '\n    Compare two dictionaries for differences\n\n    Float and int types compared within dtol. Lists and dictionaries are\n    checked recursively all other checked by simple equivalence\n\n    Parameters\n    ----------\n    dic1 : dict\n        First dictionary of NMR parameters.\n    dic2 : dict\n        Second dictionary of NMR parameters\n    verb : bool, optional\n        Set True for verbose reporting.\n    dtol : float, optional\n        Maximum allowable difference between int and float elements if dic1\n        and dic2.\n\n    Returns\n    -------\n    r1 : bool\n        True is dic1 and dic2 are similar, False if they differ.\n\n    '
    dic1 = dict(dic1)
    dic2 = dict(dic2)
    r = True
    kset1 = set(dic1.keys())
    kset2 = set(dic2.keys())
    dset = set.difference(kset1, kset2)
    iset = set.intersection(kset1, kset2)
    if (iset is True):
        iset.discard('FDMIN')
        iset.discard('FDMAX')
        iset.discard('FDDISPMIN')
        iset.discard('FDDISPMAX')
        iset.discard('FDSCALEFLAG')
    if (len(dset) != 0):
        r = False
        if verb:
            print('Keys not in both dictionaries:', dset)
    for k in iset:
        (v1, v2) = (dic1[k], dic2[k])
        if (not isitemsimilar(v1, v2, verb=verb, dtol=dtol)):
            print('For key:', k)
            r = False
    return r

dataset/ETHPy150Open jjhelmus/nmrglue/nmrglue/util/misc.py isdicsimilar/VarMisuse@90/354 `ignore_pipe_display`->`iset`