def _index_document(index_list):
 if isinstance(index_list, collections.Mapping):
  raise TypeError(('passing a dict to sort/create_index/hint is not allowed - use a list of tuples instead. did you mean %r?' % list(iteritems(index_list))))
 elif (not isinstance(index_list, (list, tuple))):
  raise TypeError(('must use a list of (key, direction) pairs, not: ' + repr(index_list)))
 if (not len(index_list)):
  raise ValueError('key_or_list must not be the empty list')
 index = SON()
 for (key, value) in index_list:
  if (not isinstance(key, string_type)):
   raise TypeError('first item in each key pair must be a string')
  if (not isinstance(value, (string_type, int, collections.Mapping))):
   raise TypeError("second item in each key pair must be 1, -1, '2d', 'geoHaystack', or another valid MongoDB index specifier.")
  index[key] = value
 return index

def _index_document ( index_list ) : if isinstance ( index_list , collections . Mapping ) : raise TypeError ( ( 'passing a dict to sort/create_index/hint is not allowed - use a list of tuples instead. did you mean %r?' % list ( iteritems ( index_list ) ) ) ) elif ( not isinstance ( index_list , ( list , tuple ) ) ) : raise TypeError ( ( 'must use a list of (key, direction) pairs, not: ' + repr ( index_list ) ) ) if ( not len ( index_list ) ) : raise ValueError ( 'key_or_list must not be the empty list' ) index = SON ( ) for ( key , value ) in index_list : if ( not isinstance ( key , string_type ) ) : raise TypeError ( 'first item in each key pair must be a string' ) if ( not isinstance ( value , ( string_type , int , collections . Mapping ) ) ) : raise TypeError ( "second item in each key pair must be 1, -1, '2d', 'geoHaystack', or another valid MongoDB index specifier." ) index [ key ] = value return index
helper to generate an index specifying document .