code: def _set_data(self, **kwargs):
          
  
          if "shape" in kwargs:
              self.shape = kwargs["shape"]
  
          if "grid" in kwargs:
              self.dict_grid.clear()
              self.dict_grid.update(kwargs["grid"])
  
          if "attributes" in kwargs:
              self.attributes[:] = kwargs["attributes"]
  
          if "row_heights" in kwargs:
              self.row_heights = kwargs["row_heights"]
  
          if "col_widths" in kwargs:
              self.col_widths = kwargs["col_widths"]
  
          if "macros" in kwargs:
              self.macros = kwargs["macros"]
docs: Sets data from given parameters
  
          Old values are deleted.
          If a paremeter is not given, nothing is changed.
  
          Parameters
          ----------
  
          shape: 3-tuple of Integer
          \tGrid shape
          grid: Dict of 3-tuples to strings
          \tCell content
          attributes: List of 3-tuples
          \tCell attributes
          row_heights: Dict of 2-tuples to float
          \t(row, tab): row_height
          col_widths: Dict of 2-tuples to float
          \t(col, tab): col_width
          macros: String
          \tMacros from macro list