#!/usr/bin/env python3 import sys import argparse import zmq import io import json import csv import datetime import struct def main(): parser = argparse.ArgumentParser(description='QHP client') parser.add_argument('-o', '--output-file', action='store', dest='output_file', help='Output filename', required=True) parser.add_argument('-p', '--timeframe', action='store', dest='timeframe', help='Data timeframe', required=True) parser.add_argument('-q', '--qhp', action='store', dest='qhp', help='QHP endpoint', required=True) parser.add_argument('-y', '--symbol', action='store', dest='symbol', help='Symbol to download', required=True) parser.add_argument('-f', '--from', action='store', dest='from_', help='Starting date', required=True) parser.add_argument('-t', '--to', action='store', dest='to', help='Ending date', required=True) args = parser.parse_args() period = args.timeframe symbol = args.symbol filename = args.output_file ctx = zmq.Context.instance() s = ctx.socket(zmq.REQ) s.connect(args.qhp) start_time = datetime.datetime.strptime(args.from_, "%Y%m%d") end_time = datetime.datetime.strptime(args.to, "%Y%m%d") rq = { "ticker" : symbol, "from" : start_time.strftime("%Y-%m-%dT%H:%M:%S"), "to" : end_time.strftime("%Y-%m-%dT%H:%M:%S"), "timeframe" : period } s.send_multipart([bytes(json.dumps(rq), "utf-8")]) parts = s.recv_multipart() line_count = 0 with open(args.output_file, 'w') as f: writer = csv.writer(f) writer.writerow(['', '', '', '