def METHOD_NAME(self, error_pages, export_archive_path, export_instance, successful_pages):
    final_dir, orig_name = os.path.split(export_archive_path)
    if not error_pages:
        fd, final_path = tempfile.mkstemp()
    else:
        final_name = 'INCOMPLETE_{}_{}.zip'.format(orig_name, datetime.utcnow().isoformat())
        final_path = os.path.join(final_dir, final_name)
    print('Recompiling export')
    export_name = safe_filename(export_instance.name or 'Export')
    with zipfile.ZipFile(final_path, mode='w', compression=zipfile.ZIP_DEFLATED, allowZip64=True) as final_zip:
        for result in successful_pages:
            print('  Adding page {} to final file'.format(result.page))
            _add_compressed_page_to_zip(final_zip, result.page, result.path)
        print('  Adding original export pages and unprocessed pages final file')
        def _include_member(member):
            # add original export pages and any raw data that we weren't able to process
            add = member.startswith(export_name) or member in error_pages
            if add:
                print('    {}'.format(member))
            return add
        _copy_files_from_zip_to_zip(final_zip, export_archive_path, _include_member)
    return final_path