mirror of
https://github.com/enzet/map-machine.git
synced 2025-05-02 11:46:41 +02:00
73 lines
2.5 KiB
Python
73 lines
2.5 KiB
Python
"""
|
|
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.")
|