'Sets up a new in-memory ``Table``.
This is useful if the table already exists within DynamoDB & you simply
want to use it for additional interactions. The only required parameter
is the ``table_name``. However, under the hood, the object will call
``describe_table`` to determine the schema/indexes/throughput. You
can avoid this extra call by passing in ``schema`` & ``indexes``.
**IMPORTANT** - If you\'re creating a new ``Table`` for the first time,
you should use the ``Table.create`` method instead, as it will
persist the table structure to DynamoDB.
Requires a ``table_name`` parameter, which should be a simple string
of the name of the table.
Optionally accepts a ``schema`` parameter, which should be a list of
``BaseSchemaField`` subclasses representing the desired schema.
Optionally accepts a ``throughput`` parameter, which should be a
dictionary. If provided, it should specify a ``read`` & ``write`` key,
both of which should have an integer value associated with them.
Optionally accepts a ``indexes`` parameter, which should be a list of
``BaseIndexField`` subclasses representing the desired indexes.
Optionally accepts a ``global_indexes`` parameter, which should be a
list of ``GlobalBaseIndexField`` subclasses representing the desired
indexes.
Optionally accepts a ``connection`` parameter, which should be a
``DynamoDBConnection`` instance (or subclass). This is primarily useful
for specifying alternate connection parameters.
Example::
# The simple, it-already-exists case.
>>> conn = Table(\'users\')
# The full, minimum-extra-calls case.
>>> from boto import dynamodb2
>>> users = Table(\'users\', schema=[
...     HashKey(\'username\'),
...     RangeKey(\'date_joined\', data_type=NUMBER)
... ], throughput={
...     \'read\':20,
...     \'write\': 10,
... }, indexes=[
...     KeysOnlyIndex(\'MostRecentlyJoined\', parts=[
...         HashKey(\'username\')
...         RangeKey(\'date_joined\')
... ], global_indexes=[
...     GlobalAllIndex(\'UsersByZipcode\', parts=[
...         HashKey(\'zipcode\'),
...         RangeKey(\'username\'),
...     throughput={
...       \'read\':10,
...       \'write\':10,
... ], connection=dynamodb2.connect_to_region(\'us-west-2\',
...     aws_access_key_id=\'key\',
...     aws_secret_access_key=\'key\','

def __init__(self, table_name, schema=None, throughput=None, indexes=None, global_indexes=None, connection=None):

    self.table_name = table_name
    self.connection = connection
    self.throughput = {'read': 5, 'write': 5}
    self.schema = schema
    self.indexes = indexes
    self.global_indexes = global_indexes
    if (self.connection is None):
        self.connection = DynamoDBConnection()
    if (throughput is not None):
        self.throughput = throughput
    self._dynamizer = NonBooleanDynamizer()
