code: def get_data_and_shared_column_widths(self, data_kwargs, width_kwargs):
          
          list_of_list, column_widths = self.get_data_and_column_widths(
              data_kwargs, width_kwargs)
          for table, shared_limit in self.shared_tables:
              _, widths = table.get_data_and_column_widths(
                  data_kwargs, width_kwargs)
              for i, width in enumerate(widths[:len(column_widths)]):
                  delta = width - column_widths[i]
                  if delta > 0 and (not shared_limit or delta <= shared_limit):
                      column_widths[i] = width
          return list_of_list, column_widths
docs: :param data_kwargs:  kwargs used for converting data to strings
          :param width_kwargs: kwargs used for determining column widths
          :return: tuple(list of list of strings, list of int)