docs: def create_table(self, tablename, hash_key, range_key=None, indexes=None,
                       global_indexes=None, throughput=None, wait=False):
          """
          Create a table
  
          Parameters
          ----------
          tablename : str
              Name of the table
          hash_key : :class:`~dynamo3.fields.DynamoKey`
              The key to use as the Hash key
          range_key : :class:`~dynamo3.fields.DynamoKey`, optional
              The key to use as the Range key
          indexes : list, optional
              List of :class:`~dynamo3.fields.LocalIndex`
          global_indexes : list, optional
              List of :class:`~dynamo3.fields.GlobalIndex`
          throughput : :class:`~dynamo3.fields.Throughput`, optional
              The throughput of the table
  
          """
          if throughput is None:
              throughput = Throughput()
          all_attrs = set([hash_key])
          if range_key is not None:
              all_attrs.add(range_key)
          key_schema = [hash_key.hash_schema()]
          if range_key is not None:
              key_schema.append(range_key.range_schema())
  
          kwargs = {
              'TableName': tablename,
              'KeySchema': key_schema,
              'ProvisionedThroughput': throughput.schema(),
          }
          if indexes:
              kwargs['LocalSecondaryIndexes'] = [
                  idx.schema(hash_key) for idx in indexes
              ]
              for idx in indexes:
                  all_attrs.add(idx.range_key)
  
          if global_indexes:
              kwargs['GlobalSecondaryIndexes'] = [
                  idx.schema() for idx in global_indexes
              ]
              for idx in global_indexes:
                  all_attrs.add(idx.hash_key)
                  if idx.range_key is not None:
                      all_attrs.add(idx.range_key)
  
          kwargs['AttributeDefinitions'] = [attr.definition() for attr in
                                            all_attrs]
          result = self.call('create_table', **kwargs)
          if wait:
              self.client.get_waiter('table_exists').wait(
                  TableName=tablename
              )
          return result