nargs='?', default=10) p.add_argument("-p", "--maxpoints", help="the maximum number of points in each area (required)", type=int, required=True) p.add_argument("-u", "--upper", help="upper left point (required)", type=float, nargs=2, metavar=('X', 'Y'), required=True) p.add_argument("-l", "--lower", help="loewr right point (required)", type=float, nargs=2, metavar=('X', 'Y'), required=True) args = p.parse_args() X = read_data(args.infile) qtree = Quadtree(args.upper[0], args.upper[1], args.lower[0], args.lower[1], args.maxpoints, args.maxdepth) qtree.fit(X) pickle.dump(qtree, args.outfile)