def remove_redundant_vertexes(self):
        mapping = { }
        new_index = 0
        for (i1, i2, i3) in self.primitives:
            if i1 not in mapping:
                mapping[i1] = new_index
                new_index += 1
            if i2 not in mapping:
                mapping[i2] = new_index
                new_index += 1
            if i3 not in mapping:
                mapping[i3] = new_index
                new_index += 1
        old_index = len(self.positions)
        if old_index != new_index:
            LOG.info("Remapping:remapping vertexes from %i to %i", old_index, new_index)

        def __remap_stream(source, size, mapping):
            """Remap vertex attribute stream."""
            if len(source) > 0:
                target = [0] * size
                for k, v in mapping.items():
                    target[v] = source[k]
                return target
            return [ ]

        self.positions = __remap_stream(self.positions, new_index, mapping)
        for uvs in self.uvs:
            uvs[:] = __remap_stream(uvs, new_index, mapping)
        self.normals = __remap_stream(self.normals, new_index, mapping)
        self.tangents = __remap_stream(self.tangents, new_index, mapping)
        self.binormals = __remap_stream(self.binormals, new_index, mapping)
        self.colors = __remap_stream(self.colors, new_index, mapping)
        self.skin_indices = __remap_stream(self.skin_indices, new_index, mapping)
        self.skin_weights = __remap_stream(self.skin_weights, new_index, mapping)

        primitives = [ ]
        for (i1, i2, i3) in self.primitives:
            primitives.append( (mapping[i1], mapping[i2], mapping[i3]) )
        self.primitives = primitives

    ###################################################################################################################
Update the request with its sha
dataset/ETHPy150Open turbulenz/turbulenz_tools/turbulenz_tools/tools/mesh.py/Mesh.remove_redundant_vertexes--crossover with--dataset/ETHPy150Open YelpArchive/pushmanager/pushmanager/tests/test_core_git.py/CoreGitTest.test_process_queue_req_with_str_id