code: def show_grid(data_frame,
                show_toolbar=None,
                precision=None,
                grid_options=None,
                column_options=None,
                column_definitions=None,
                row_edit_callback=None):
      if show_toolbar is None:
          show_toolbar = defaults.show_toolbar
      if precision is None:
          precision = defaults.precision
      if not isinstance(precision, Integral):
          raise TypeError("precision must be int, not %s" % type(precision))
      if column_options is None:
          column_options = defaults.column_options
      else:
          options = defaults.column_options.copy()
          options.update(column_options)
          column_options = options
      if grid_options is None:
          grid_options = defaults.grid_options
      else:
          options = defaults.grid_options.copy()
          options.update(grid_options)
          grid_options = options
      if not isinstance(grid_options, dict):
          raise TypeError(
              "grid_options must be dict, not %s" % type(grid_options)
          )
      if isinstance(data_frame, pd.Series):
          data_frame = pd.DataFrame(data_frame)
      elif not isinstance(data_frame, pd.DataFrame):
          raise TypeError(
              "data_frame must be DataFrame or Series, not %s" % type(data_frame)
          )
      column_definitions = (column_definitions or {})
      return QgridWidget(df=data_frame, precision=precision,
                         grid_options=grid_options,
                         column_options=column_options,
                         column_definitions=column_definitions,
                         row_edit_callback=row_edit_callback,
                         show_toolbar=show_toolbar)