text: 
  
  import time
  import functools
  
  
  from parallel_wrapper import Parallel_Wrapper
  
  
  def origianl_func(x, scales=10):
      time.sleep(0.1)
      return x * scales
  
  
  def timer(func):
      @functools.wraps(func)
      def wrapper(*args, **kargs):
          starttime = time.time()
          result = func(*args, **kargs)
          m, s = divmod(time.time() - starttime, 60)
          print(f'elapsed time: {m:5.0f}:{s:02.0f}')
          return result
      return wrapper
  
  
  @timer
  @Parallel_Wrapper
  def parallel_func(x, scales=10):
      time.sleep(0.1)
      return x * scales
  
  
  if __name__ == '__main__':
      generator = range(100)
      print('origianl function')
      starttime = time.time()
      results = [origianl_func(i, scales=5) for i in generator]
      m, s = divmod(time.time() - starttime, 60)
      print(f'elapsed time: {m:5.0f}:{s:02.0f}')
      print(results)
  
      print('parallel function')
      results = parallel_func(generator, n_jobs=-1, scales=5)
      print(results)
  