docs: def describe(self, tablename, refresh=False, metrics=False, require=False):
          """ Get the :class:`.TableMeta` for a table """
          table = self.cached_descriptions.get(tablename)
          if refresh or table is None or (metrics and not table.consumed_capacity):
              desc = self.connection.describe_table(tablename)
              if desc is None:
                  if require:
                      raise RuntimeError("Table %r not found" % tablename)
                  else:
                      return None
              table = TableMeta.from_description(desc)
              self.cached_descriptions[tablename] = table
              if metrics:
                  read, write = self.get_capacity(tablename)
                  table.consumed_capacity["__table__"] = {"read": read, "write": write}
                  for index_name in table.global_indexes:
                      read, write = self.get_capacity(tablename, index_name)
                      table.consumed_capacity[index_name] = {"read": read, "write": write}
  
          return table