# Buggy code
def point_arrays(self):
    """Returns the all point arrays"""
    pdata = self.GetPointData()
    narr = pdata.GetNumberOfArrays()

    # Update data if necessary
    if hasattr(self, "_point_arrays"):
        keys = list(self._point_arrays.keys())
        if narr == len(keys):
            if keys:
                if self._point_arrays[keys[0]].shape[0] == self.n_points:
                    return self._point_arrays
            else:
                return self._point_arrays

    # dictionary with callbacks
    self._point_arrays = PointScalarsDict(self)

    for i in range(narr):
        name = pdata.GetArrayName(i)
        self._point_arrays[name] = self._point_scalar(name)

    self._point_arrays.enable_callback()
    return self._point_arrays


# Traceback (RecursionError)
---------------------------------------------------------------------------
RecursionError                            Traceback (most recent call last)
<ipython-input-15-403e4a0f4e87> in <module>
9
10 # Try to access the point arrays
---> 11 continents.point_arrays

~/Documents/OpenGeoVis/Software/pyvista/pyvista/core/common.py in point_arrays(self)
697         for i in range(narr):
698             name = pdata.GetArrayName(i)
--> 699             self._point_arrays[name] = self._point_scalar(name)
700
701         self._point_arrays.enable_callback()

~/Documents/OpenGeoVis/Software/pyvista/pyvista/core/common.py in _point_scalar(self, name)
342         if name is None:
343             # use active scalar array
--> 344             field, name = self.active_scalar_info
345             if field != POINT_DATA_FIELD:
346                 raise RuntimeError('Must specify an array to fetch.')

~/Documents/OpenGeoVis/Software/pyvista/pyvista/core/common.py in active_scalar_info(self)
53
54         # rare error where scalar name isn't a valid scalar
---> 55         if name not in self.point_arrays:
56             if name not in self.cell_arrays:
57                 if name in self.field_arrays:

... last 3 frames repeated, from the frame below ...

~/Documents/OpenGeoVis/Software/pyvista/pyvista/core/common.py in point_arrays(self)
697         for i in range(narr):
698             name = pdata.GetArrayName(i)
--> 699             self._point_arrays[name] = self._point_scalar(name)
700
701         self._point_arrays.enable_callback()

RecursionError: maximum recursion depth exceeded

# Fixed code
def point_arrays(self):
    """Returns the all point arrays"""
    pdata = self.GetPointData()
    narr = pdata.GetNumberOfArrays()

    # Update data if necessary
    if hasattr(self, "_point_arrays"):
        keys = list(self._point_arrays.keys())
        if narr == len(keys):
            if keys:
                if self._point_arrays[keys[0]].shape[0] == self.n_points:
                    return self._point_arrays
            else:
                return self._point_arrays

    # dictionary with callbacks
    self._point_arrays = PointScalarsDict(self)

    for i in range(narr):
        name = pdata.GetArrayName(i)
        if name is None or len(name) < 1:
            name = "Point Array {}".format(i)
            pdata.GetArray(i).SetName(name)
        self._point_arrays[name] = self._point_scalar(name)

    self._point_arrays.enable_callback()
    return self._point_arrays