Esempio n. 1
0
def map_path_id(path_id: irast.PathId,
                path_id_map: Dict[irast.PathId, irast.PathId]) -> irast.PathId:
    for outer_id, inner_id in path_id_map.items():
        new_path_id = path_id.replace_prefix(outer_id, inner_id)
        if new_path_id != path_id:
            path_id = new_path_id
            break

    return path_id
Esempio n. 2
0
def map_path_id(path_id: irast.PathId,
                path_id_map: Dict[irast.PathId, irast.PathId]) -> irast.PathId:

    sorted_map = sorted(path_id_map.items(),
                        key=lambda kv: len(kv[0]),
                        reverse=True)

    for outer_id, inner_id in sorted_map:
        new_path_id = path_id.replace_prefix(outer_id, inner_id)
        if new_path_id != path_id:
            path_id = new_path_id
            break

    return path_id