def Convert(self, values, start_index=0, end_index=None):
    """Converts given collection to exported values.

    This method uses a threadpool to do the conversion in parallel. It
    blocks for up to one hour until everything is converted.

    Args:
      values: Iterable object with values to convert.
      start_index: Start from this index in the collection.
      end_index: Finish processing on the (index - 1) element of the collection.
        If None, work till the end of the collection.

    Returns:
      Nothing. ConvertedBatch() should handle the results.
    """
    if not values:
      return

    try:
      total_batch_count = len(values) // self.batch_size
    except TypeError:
      total_batch_count = -1

    pool = ThreadPool.Factory(self.threadpool_prefix, self.threadpool_size)
    val_iterator = itertools.islice(values, start_index, end_index)

    pool.Start()
    try:
      for batch_index, batch in enumerate(
          collection.Batch(val_iterator, self.batch_size)):
        logging.debug("Processing batch %d out of %d", batch_index,
                      total_batch_count)

        pool.AddTask(
            target=self.ConvertBatch,
            args=(batch,),
            name="batch_%d" % batch_index,
            inline=False)

    finally:
      pool.Stop(join_timeout=3600)
def Convert ( self , values , start_index = 0 , end_index = None ) : if not values : return try : total_batch_count = len ( values ) // self . batch_size except TypeError : total_batch_count = - 1 pool = ThreadPool . Factory ( self . threadpool_prefix , self . threadpool_size ) val_iterator = itertools . islice ( values , start_index , end_index ) pool . Start ( ) try : for batch_index , batch in enumerate ( collection . Batch ( val_iterator , self . batch_size ) ) : logging . debug ( "Processing batch %d out of %d" , batch_index , total_batch_count ) pool . AddTask ( target = self . ConvertBatch , args = ( batch , ) , name = "batch_%d" % batch_index , inline = False ) finally : pool . Stop ( join_timeout = 3600 )
Converts given collection to exported values.

    This method uses a threadpool to do the conversion in parallel. It
    blocks for up to one hour until everything is converted.

    Args:
      values: Iterable object with values to convert.
      start_index: Start from this index in the collection.
      end_index: Finish processing on the (index - 1) element of the collection.
        If None, work till the end of the collection.

    Returns:
      Nothing. ConvertedBatch() should handle the results.