Source code for randcsv.cli

from __future__ import print_function
import argparse
from .random_csv import RandCSV


[docs]def parse_args(*args): """Argument parser. """ # Create the parser. mkcsv_parser = argparse.ArgumentParser( description="Generate random CSVs." ) # Add arguments mkcsv_parser.add_argument( '--rows', '-m', action='store', type=int, required=True, help='Number of rows the desired CSV file contains.' ) mkcsv_parser.add_argument( '--cols', '-n', action='store', type=int, required=True, help='Number of columns the desired CSV file contains.' ) mkcsv_parser.add_argument( '--output', '-o', action='store', type=str, required=False, default="rand.csv", help='Output file name.' ) mkcsv_parser.add_argument( '--data-types', '-d', action='store', nargs='+', required=False, default=['integer'], help='Data types present in the desired CSV file. Supported data types are: integer, float, token.' ) mkcsv_parser.add_argument( '--nan-freq', '-a', action='store', type=float, required=False, default=.0, help='Approx. frequency of NaN values contained in desired CSV file.' ) mkcsv_parser.add_argument( '--empty-freq', '-e', action='store', type=float, required=False, default=.0, help='Approx. frequency of empty values contained in desired CSV file.' ) mkcsv_parser.add_argument( '--index-col', '-i', action='store_true', dest='index_col', help='Flag, the left most column should be a row index (ascending integer).' ) mkcsv_parser.set_defaults(index=False) mkcsv_parser.add_argument( '--title-row', '-t', action='store_true', dest='title_row', help='Flag, the top most row should be a column index (ascending integer).' ) mkcsv_parser.set_defaults(title=False) mkcsv_parser.add_argument( '--byte-size', '-b', action='store', type=int, required=False, default=8, help='Character length of the individual random values.' ) return mkcsv_parser.parse_args(*args)
[docs]def cli(*args): """CLI entry point. """ if len(args): args = parse_args(*args) else: # pipx returns here args = parse_args() csv = RandCSV( rows=args.rows, cols=args.cols, byte_size=args.byte_size, data_types=args.data_types, nan_freq=args.nan_freq, empty_freq=args.empty_freq, index_col=args.index_col, title_row=args.title_row, ) csv.to_file(args.output) print(f'generated CSV file: {args.output}') return None