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
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