async def main(loop): parser = argparse.ArgumentParser( description=('Read S3 CSV inventory from stdin ' 'and print out Kinto records.')) parser.add_argument('-v', '--verbose', action='store_const', const=logging.INFO, dest='verbosity', help='Show all messages.') parser.add_argument('-D', '--debug', action='store_const', const=logging.DEBUG, dest='verbosity', help='Show all messages, including debug messages.') args = parser.parse_args() logger.addHandler(logging.StreamHandler()) if args.verbosity: logger.setLevel(args.verbosity) else: logger.setLevel(logging.WARNING) async for record in csv_to_records(loop, stream_as_generator(loop, sys.stdin)): sys.stdout.write(json.dumps(record) + '\n')
def run(): loop = asyncio.get_event_loop() stdin_generator = stream_as_generator(loop, sys.stdin) records_generator = parse_json(stdin_generator) parser = cli_utils.add_parser_options( description='Read records from stdin as JSON and push them to Kinto', default_server=DEFAULT_SERVER, default_bucket=DEFAULT_BUCKET, default_retry=NB_RETRY_REQUEST, default_collection=DEFAULT_COLLECTION) parser.add_argument('--skip', action='store_true', help='Skip records that exist and are equal.') cli_args = parser.parse_args() cli_utils.setup_logger(logger, cli_args) logger.info( 'Publish at {server}/buckets/{bucket}/collections/{collection}'.format( **cli_args.__dict__)) client = cli_utils.create_client_from_args(cli_args) main_coro = main(loop, records_generator, client, skip_existing=cli_args.skip) loop.run_until_complete(main_coro) loop.close()