# Buggy code
def cell_arrays(self):
    """Returns the all cell arrays"""
    cdata = self.GetCellData()
    narr = cdata.GetNumberOfArrays()

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

    # dictionary with callbacks
    self._cell_arrays = CellScalarsDict(self)

    for i in range(narr):
        name = cdata.GetArrayName(i)
        self._cell_arrays[name] = self._cell_scalar(name)

    self._cell_arrays.enable_callback()
    return self._cell_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 cell_arrays(self):
    """Returns the all cell arrays"""
    cdata = self.GetCellData()
    narr = cdata.GetNumberOfArrays()

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

    # dictionary with callbacks
    self._cell_arrays = CellScalarsDict(self)

    for i in range(narr):
        name = cdata.GetArrayName(i)
        if name is None or len(name) < 1:
            name = "Cell Array {}".format(i)
            cdata.GetArray(i).SetName(name)
        self._cell_arrays[name] = self._cell_scalar(name)

    self._cell_arrays.enable_callback()
    return self._cell_arrays