def untar(original_tarball, output_directory):
    """Untar given tarball file into directory.

    Here we decide if our file is actually a tarball, then
    we untar it and return a list of extracted files.

    :param: tarball (string): the name of the tar file from arXiv
    :param: output_directory (string): the directory to untar in

    :return: list of absolute file paths
    """
    if not tarfile.is_tarfile(original_tarball):
        raise InvalidTarball

    tarball = tarfile.open(original_tarball)
    # set mtimes of members to now
    epochsecs = int(time())
    for member in tarball.getmembers():
        member.mtime = epochsecs
    tarball.extractall(output_directory)

    file_list = []

    for extracted_file in tarball.getnames():
        if extracted_file == '':
            break
        if extracted_file.startswith('./'):
            extracted_file = extracted_file[2:]
        # ensure we are actually looking at the right file
        extracted_file = os.path.join(output_directory, extracted_file)

        # Add to full list of extracted files
        file_list.append(extracted_file)

    return file_list
Untar given tarball file into directory.

    Here we decide if our file is actually a tarball, then
    we untar it and return a list of extracted files.

    :param: tarball (string): the name of the tar file from arXiv
    :param: output_directory (string): the directory to untar in

    :return: list of absolute file paths