docs: def get_output_from_cache(name, filename):
      """Returns the output from the cache if still valid.
  
      It checks that the cache file is defined and that its modification time is
      after the modification time of the original file.
  
      Args:
        name: string: name of the linter.
        filename: string: path of the filename for which we are retrieving the
          output.
  
      Returns: a string with the output, if it is still valid, or None otherwise.
      """
      cache_filename = _get_cache_filename(name, filename)
      if (os.path.exists(cache_filename)
              and os.path.getmtime(filename) < os.path.getmtime(cache_filename)):
          with io.open(cache_filename) as f:
              return f.read()
  
      return None