@staticmethod
def _is_same_migration(migration1, migration2):
    """Check if two migrations match, migration attributes that do not have effect on migration are ignored."""
    if migration1.keys() != migration2.keys():
        return False
    for flow_name in migration1.keys():
        if migration1[flow_name]['tainting_nodes'] != migration2[flow_name][
            'tainting_nodes']:
            return False
        if set(migration1[flow_name]['tainted_edges'].keys()) != set(migration2
            [flow_name]['tainted_edges'].keys()):
            return False
        if migration1[flow_name]['translation'] != migration2[flow_name][
            'translation']:
            return False
    return True
