Source code for pyTagger.actions.convert_csv

from __future__ import unicode_literals
import os
from configargparse import getArgumentParser
from pyTagger.models import Snapshot
from pyTagger.operations.from_csv import convert
from pyTagger.utils import defaultConfigFiles

# -----------------------------------------------------------------------------
# Configuration

p = getArgumentParser('convert-csv',
                      default_config_files=defaultConfigFiles,
                      ignore_unknown_config_file_keys=True,
                      parents=[getArgumentParser('snapshot')],
                      description='convert CSV to snapshot')
group = p.add_argument_group('Files')
group.add('infile', help='the CSV to process')
group.add('outfile', nargs='?', help='the snapshot that will hold the results')
group.add('--csv-format', action='store_true', default=False,
          help='use commas not tabs')
group.add('--compact', action='store_true', dest='compact',
          help='output the JSON in a compact format')

# -----------------------------------------------------------------------------


def _getOutputName(args):
    if args.outfile:
        return args.outfile

    root, _ = os.path.splitext(args.infile)
    return root + '.json'


[docs]def process(args): outfile = _getOutputName(args) columns = Snapshot.columnsFromArgs(args) print('Exporting to ' + outfile) s, f = convert(args.infile, outfile, columns, not args.csv_format, args.compact) return '{0} rows\n{1} fail(s)'.format(s, f)