Source code for schrodinger.application.bioluminate.drivers.io

import logging
import more_itertools
import os
from typing import List

from schrodinger.rdkit import molio


[docs]def get_existing_files(files: List[os.PathLike], logger: logging.Logger) -> List[os.PathLike]: """ Filter out files that don't exist and report them as missing. """ missing, existing = map(list, more_itertools.partition(os.path.isfile, files)) if missing: logger.warning('Missing output files:') for fname in missing: logger.warning(f' {fname}') return existing
[docs]def merge_csv_files(csv_files: List[str], merged_file: str, logger: logging.Logger) -> None: """ Merge multiple csv files into a single file. :param csv_files: list of csv files to merge :param merged_file: the desired output file name :param logger: the logger to use for reporting """ csv_files = get_existing_files(csv_files, logger) logger.info(f"Recombining output csv files into {merged_file}") molio.cat_csv_files(csv_files, merged_file)