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)