docs: def clock(logger):
      """
      :param logger: logging, a logging object
      :return: decorator, wraps time 
      """
  
      def decorator(func):
          @functools.wraps(func)
          def wrapper(*args, **kwargs):
              _start = time.time()
              retval = func(*args, **kwargs)
              _end = time.time()
              logger.info('function {0} used : {1} s'.format(func.__name__, _end - _start))
              return retval
  
          return wrapper
  
      return decorator