Refactor arguments parsing.

This commit is contained in:
Sergey Vartanov 2020-08-25 07:51:38 +03:00
parent 25a61f5a14
commit a916a3bf45
3 changed files with 53 additions and 69 deletions

View file

@ -11,30 +11,52 @@ def parse_options(args):
parser = argparse.ArgumentParser()
parser.add_argument('-i', '--input', dest='input_file_name')
parser.add_argument('-o', '--output', dest='output_file_name',
required=True)
parser.add_argument('-bbox', '--boundary-box', dest='boundary_box',
required=True)
parser.add_argument('-nn', '--no-draw-nodes', dest='draw_nodes',
action='store_false', default=True)
parser.add_argument('-nw', '--no-draw-ways', dest='draw_ways',
action='store_false', default=True)
parser.add_argument('--captions', '--no-draw-captions', dest='draw_captions',
default='main')
parser.add_argument('--show-missed-tags', dest='show_missed_tags',
action='store_true')
parser.add_argument('--no-show-missed-tags', dest='show_missed_tags',
action='store_false')
parser.add_argument('--overlap', dest='overlap', default=12, type=int)
parser.add_argument('-s', '--size', dest='size')
parser.add_argument('--show-index', dest='show_index',
action='store_true')
parser.add_argument('--no-show-index', dest='show_index',
action='store_false')
parser.add_argument('--mode', dest='mode', default='normal')
parser.add_argument('--seed', dest='seed', default='')
parser.add_argument('--level', dest='level', default=None)
parser.add_argument(
"-i", "--input",
dest="input_file_name",
metavar="<path>",
help="input XML file name (if not specified, file will be downloaded"
"using OpenStreetMap API)")
parser.add_argument(
"-o", "--output",
dest="output_file_name",
metavar="<path>",
default="map.svg",
help="output SVG file name (map.svg by default)")
parser.add_argument(
"-b", "--boundary-box",
dest="boundary_box",
metavar="<lon1>,<lat1>,<lon2>,<lat2>",
help="geo boundary box, use \"m\" instead of \"-\" for negative values",
required=True)
parser.add_argument(
"-s", "--size",
metavar="<width>,<height>",
help="output SVG file size in pixels",
dest="size")
parser.add_argument(
"-nn", "--no-draw-nodes",
dest="draw_nodes",
action="store_false",
default=True)
parser.add_argument(
"-nw", "--no-draw-ways", dest="draw_ways", action="store_false",
default=True)
parser.add_argument(
"--captions", "--no-draw-captions", dest="draw_captions",
default="main")
parser.add_argument(
"--show-missing-tags", dest="show_missing_tags", action="store_true")
parser.add_argument(
"--no-show-missing-tags", dest="show_missing_tags", action="store_false")
parser.add_argument("--overlap", dest="overlap", default=12, type=int)
parser.add_argument(
"--show-index", dest="show_index", action="store_true")
parser.add_argument(
"--no-show-index", dest="show_index", action="store_false")
parser.add_argument("--mode", dest="mode", default="normal")
parser.add_argument("--seed", dest="seed", default="")
parser.add_argument("--level", dest="level", default=None)
arguments = parser.parse_args(args[1:])
@ -47,17 +69,17 @@ def parse_options(args):
def write_line(number, total):
length = 20
parts = length * 8
boxes = [' ', '', '', '', '', '', '', '']
boxes = [" ", "", "", "", "", "", "", ""]
if number == -1:
print('%3s' % '100' + ' %' + (length * '') + '')
print("%3s" % "100" + " %" + (length * "") + "")
elif number % 1000 == 0:
p = number / float(total)
l = int(p * parts)
fl = int(l / 8)
pr = int(l - fl * 8)
print(('%3s' % str(int(p * 1000) / 10)) + ' %' + (fl * '') +
boxes[pr] + ((length - fl - 1) * ' ') + '')
print(("%3s" % str(int(p * 1000) / 10)) + " %" + (fl * "") +
boxes[pr] + ((length - fl - 1) * " ") + "")
sys.stdout.write("\033[F")