'Time \'number\' executions of the main statement.
To be precise, this executes the setup statement once, and
then returns the time it takes to execute the main statement
a number of times, as a float measured in seconds.  The
argument is the number of times through the loop, defaulting
to one million.  The main statement, the setup statement and
the timer function to be used are passed to the constructor.'

def timeit(self, number=default_number):

    if itertools:
        it = itertools.repeat(None, number)
    else:
        it = ([None] * number)
    gcold = gc.isenabled()
    gc.disable()
    timing = self.inner(it, self.timer)
    if gcold:
        gc.enable()
    return timing
