code: def reports_progress(reporter):
      
  
      def decorator(func):  # pylint: disable=missing-docstring
          @wraps(func)
          def wrapper(*args, **kwargs):  # pylint: disable=missing-docstring
              with progress_reporter(reporter):
                  return func(*args, **kwargs)
  
          return wrapper
  
      return decorator
docs: A decorator factory to mark functions which report progress.
  
      Args:
          reporter: A zero-argument callable to report progress.
              The callable provided should have the means to both
              retrieve and display current progress information.