<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def download_file_maybe_extract(url, directory, filename=None, extension=None, check_files=[]):
 """ Download the file at ``url`` to ``directory``. Extract to ``directory`` if tar or zip. Args: url (str):
 Url of file. directory (str):
 Directory to download to. filename (str, optional):
 Name of the file to download; Otherwise, a filename is extracted from the url. extension (str, optional):
 Extension of the file; Otherwise, attempts to extract extension from the filename. check_files (list of str):
 Check if these files exist, ensuring the download succeeded. If these files exist before the download, the download is skipped. Returns: (str):
 Filename of download file. Raises: ValueError: Error if one of the ``check_files`` are not found following the download. """

    if filename is None:
        filename = _get_filename_from_url(url)

    filepath = os.path.join(directory, filename)
    check_files = [os.path.join(directory, f) for f in check_files]

    if len(check_files) > 0 and _check_download(*check_files):
        return filepath

    if not os.path.isdir(directory):
        os.makedirs(directory)

    logger.info('Downloading {}'.format(filename))

    # Download
    if 'drive.google.com' in url:
        _download_file_from_drive(filepath, url)
    else:
        with tqdm(unit='B', unit_scale=True, miniters=1, desc=filename) as t:
            urllib.request.urlretrieve(url, filename=filepath, reporthook=_reporthook(t))

    _maybe_extract(compressed_filename=filepath, directory=directory, extension=extension)

    if not _check_download(*check_files):
        raise ValueError('[DOWNLOAD FAILED] `*check_files` not found')

    return filepath