def __init__(self, keys, **kwargs):
if isinstance(keys, str):<EOL><INDENT>keys = [keys]<EOL><DEDENT>self.keys = []<EOL>for key in keys:<EOL><INDENT>if isinstance(key, str):<EOL><INDENT>self.keys.append((key, <NUM_LIT:1>))<EOL><DEDENT>elif isinstance(key, tuple) and len(key) == <NUM_LIT:2>:<EOL><INDENT>self.keys.append(key)<EOL><DEDENT>else:<EOL><INDENT>raise ArgumentError(Index, keys)<EOL><DEDENT><DEDENT>self.kwargs = kwargs<EOL>self.kwargs['<STR_LIT>'] = True<EOL>
MongoDB Index

        Takes either a single key or a list of (key, direction) pairs.
        The key(s) must be an instance of :class:`basestring`
        (:class:`str` in python 3), and the direction(s) must be one of
        (:data:`~pymongo.ASCENDING`, :data:`~pymongo.DESCENDING`,
        :data:`~pymongo.GEO2D`, :data:`~pymongo.GEOHAYSTACK`,
        :data:`~pymongo.GEOSPHERE`, :data:`~pymongo.HASHED`,
        :data:`~pymongo.TEXT`)

        Valid kwargs include, but are not limited to:

          - `name`: custom name to use for this index - if none is
            given, a name will be generated.
          - `unique`: if ``True`` creates a uniqueness constraint on the index.
          - `background`: if ``True`` this index should be created in the
            background.
          - `sparse`: if ``True``, omit from the index any documents that lack
            the indexed field.
          - `bucketSize`: for use with geoHaystack indexes.
            Number of documents to group together within a certain proximity
            to a given longitude and latitude.
          - `min`: minimum value for keys in a :data:`~pymongo.GEO2D`
            index.
          - `max`: maximum value for keys in a :data:`~pymongo.GEO2D`
            index.
          - `expireAfterSeconds`: <int> Used to create an expiring (TTL)
            collection. MongoDB will automatically delete documents from
            this collection after <int> seconds. The indexed field must
            be a UTC datetime or the data will not expire.

        see pymongo's create_index function