""" Author: Sergey Vartanov (me@enzet.ru). """ import argparse import sys from typing import Optional 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) arguments = parser.parse_args(args[1:]) if arguments.boundary_box: arguments.boundary_box = arguments.boundary_box.replace("m", "-") return arguments def write_line(number, total): length = 20 parts = length * 8 boxes = [' ', '▏', '▎', '▍', '▌', '▋', '▊', '▉'] if number == -1: 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) * ' ') + '█') sys.stdout.write("\033[F") def error(message: Optional[str] = None): """ Print error message. :param message: message to print. """ if message: print(f"Error: {message}.") else: print("Error.")