Source code for lmpy.tools.convert_csv_to_lmm

"""Convert a numeric (.csv) file to a lmpy Matrix (.lmm) file."""
import argparse

from lmpy import Matrix


DESCRIPTION = 'Convert a CSV file of numerical values into a lmpy Matrix.'


# .....................................................................................
[docs]def convert_csv_to_lmm(csv_filename, num_header_rows, num_header_cols): """Convert a CSV file to a lmpy lmm Matrix. Args: csv_filename (str): The file location of the csv to convert. num_header_rows (int): The number of header rows in the csv. num_header_cols (int): The number of header columns in the csv. Returns: Matrix: A matrix from the converted csv file. """ with open(csv_filename, mode='rt') as csv_in: mtx = Matrix.load_csv( csv_in, num_header_rows=num_header_rows, num_header_cols=num_header_cols ) return mtx
# .....................................................................................
[docs]def cli(): """Provide a command-line tool for converting csvs to lmms.""" parser = argparse.ArgumentParser(description=DESCRIPTION) parser.add_argument( '--header_rows', '-r', type=int, default=0, help='The number of header rows in the CSV.', ) parser.add_argument( '--header_cols', '-c', type=int, default=0, help='The number of header columns in the CSV.', ) parser.add_argument( 'in_csv_filename', type=str, help='CSV filename to convert to lmm Matrix.' ) parser.add_argument('out_lmm_filename', type=str, help='Filename for .lmm Matrix.') args = parser.parse_args() mtx = convert_csv_to_lmm(args.in_csv_filename, args.header_rows, args.header_cols) mtx.write(args.out_lmm_filename)
# ..................................................................................... __all__ = ['cli', 'convert_csv_to_lmm'] # ..................................................................................... if __name__ == '__main__': # pragma: no cover cli()