docs: def from_description(cls, description, attrs):
          """ Create an object from a dynamo3 response """
          hash_key = None
          range_key = None
          index_type = description["Projection"]["ProjectionType"]
          includes = description["Projection"].get("NonKeyAttributes")
          for data in description["KeySchema"]:
              name = data["AttributeName"]
              if name not in attrs:
                  continue
              key_type = data["KeyType"]
              if key_type == "HASH":
                  hash_key = TableField(name, attrs[name].data_type, key_type)
              elif key_type == "RANGE":
                  range_key = TableField(name, attrs[name].data_type, key_type)
          throughput = description["ProvisionedThroughput"]
          return cls(
              description["IndexName"],
              index_type,
              description["IndexStatus"],
              hash_key,
              range_key,
              throughput["ReadCapacityUnits"],
              throughput["WriteCapacityUnits"],
              description.get("IndexSizeBytes", 0),
              includes,
              description,
          )