'Render all the files in the folder.
Parameters
data_path : str
Path to the folder containing data whose HTML report will be
created.
pattern : str | list of str
Filename pattern(s) to include in the report.
Example: [\*raw.fif, \*ave.fif] will include Raw as well as Evoked
files.
n_jobs : int
Number of jobs to run in parallel.
mri_decim : int
Use this decimation factor for generating MRI/BEM images
(since it can be time consuming).
sort_sections : bool
If True, sort sections in the order: raw -> events -> epochs
-> evoked -> covariance -> trans -> mri -> forward -> inverse.
on_error : str
What to do if a file cannot be rendered. Can be \'ignore\',
\'warn\' (default), or \'raise\'.
image_format : str | None
The image format to be used for the report, can be \'png\' or \'svd\'.
None (default) will use the default specified during Report
class construction.
.. versionadded:: 0.15
verbose : bool, str, int, or None
If not None, override default verbose level (see
:func:`mne.verbose` and :ref:`Logging documentation <tut_logging>`
for more).'

@verbose
def parse_folder(self, data_path, pattern='*.fif', n_jobs=1, mri_decim=2, sort_sections=True, on_error='warn', image_format=None, verbose=None):

    image_format = _check_image_format(self, image_format)
    valid_errors = ['ignore', 'warn', 'raise']
    if (on_error not in valid_errors):
        raise ValueError(('on_error    must    be    one    of    %s,    not    %s' % (valid_errors, on_error)))
    self._sort = sort_sections
    n_jobs = check_n_jobs(n_jobs)
    self.data_path = data_path
    if (self.title is None):
        self.title = ('MNE    Report    for    ...%s' % self.data_path[(-20):])
    if (not isinstance(pattern, (list, tuple))):
        pattern = [pattern]
    fnames = list()
    for p in pattern:
        fnames.extend(_recursive_search(self.data_path, p))
    if (self.info_fname is not None):
        info = read_info(self.info_fname)
        sfreq = info['sfreq']
    else:
        warn('`info_fname`    not    provided.    Cannot    render    -cov.fif(.gz)    and    -trans.fif(.gz)    files.')
        (info, sfreq) = (None, None)
    cov = None
    if (self.cov_fname is not None):
        cov = read_cov(self.cov_fname)
    baseline = self.baseline
    logger.info(('Iterating    over    %s    potential    files    (this    may    take    some    time)' % len(fnames)))
    use_jobs = min(n_jobs, max(1, len(fnames)))
    (parallel, p_fun, _) = parallel_func(_iterate_files, use_jobs)
    r = parallel((p_fun(self, fname, info, cov, baseline, sfreq, on_error, image_format) for fname in np.array_split(fnames, use_jobs)))
    (htmls, report_fnames, report_sectionlabels) = zip(*r)
    self.html = [html for html in sum(htmls, []) if (html is not None)]
    self.fnames = [fname for fname in sum(report_fnames, []) if (fname is not None)]
    self._sectionlabels = [slabel for slabel in sum(report_sectionlabels, []) if (slabel is not None)]
    self.sections = sorted(set(self._sectionlabels))
    self._sectionvars = dict(zip(self.sections, self.sections))
    if ((self.subjects_dir is not None) and (self.subject is not None)):
        logger.info('Rendering    BEM')
        self.html.append(self._render_bem(self.subject, self.subjects_dir, mri_decim, n_jobs))
        self.fnames.append('bem')
        self._sectionlabels.append('mri')
    else:
        warn('`subjects_dir`    and    `subject`    not    provided.    Cannot    render    MRI    and    -trans.fif(.gz)    files.')
