<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fill_holes(self, hole_size, inplace=False):
 # pragma: no cover """ Fill holes in a vtki.PolyData or vtk.vtkPolyData object. Holes are identified by locating boundary edges, linking them together into loops, and then triangulating the resulting loops. Note that you can specify an approximate limit to the size of the hole that can be filled. Parameters hole_size : float Specifies the maximum hole size to fill. This is represented as a radius to the bounding circumsphere containing the hole. Note that this is an approximate area; the actual area cannot be computed without first triangulating the hole. inplace : bool, optional Return new mesh or overwrite input. Returns ------- mesh : vtki.PolyData Mesh with holes filled. None when inplace=True """

        logging.warning('vtki.pointset.PolyData.fill_holes is known to segfault. ' +
                        'Use at your own risk')
        fill = vtk.vtkFillHolesFilter()
        fill.SetHoleSize(hole_size)
        fill.SetInputData(self)
        fill.Update()

        mesh = _get_output(fill)
        if inplace:
            self.overwrite(mesh)
        else:
            return mesh