Fix logging.

This commit is contained in:
Sergey Vartanov 2021-08-03 01:46:36 +03:00
parent 82691b6c5c
commit 6fd2c81235
5 changed files with 19 additions and 31 deletions

View file

@ -29,7 +29,7 @@ from roentgen.osm_getter import get_osm
from roentgen.osm_reader import Map, OSMReader, OverpassReader
from roentgen.point import Point
from roentgen.scheme import LineStyle, Scheme
from roentgen.ui import error, parse_options
from roentgen.ui import parse_options
from roentgen.util import MinMax
@ -52,7 +52,7 @@ def main(options) -> None:
else:
content = get_osm(options.boundary_box, cache_path)
if not content:
error("cannot download OSM data")
logging.fatal("Cannot download OSM data.")
sys.exit(1)
input_file_names = [cache_path / f"{options.boundary_box}.osm"]

View file

@ -17,7 +17,6 @@ from svgwrite.container import Group
from svgwrite.path import Path as SvgPath
from roentgen.color import is_bright
from roentgen.ui import error
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
@ -241,7 +240,7 @@ class ShapeExtractor:
configuration, path, point, id_, name
)
else:
error(f"not standard ID {id_}")
logging.error(f"Not standard ID {id_}.")
def get_shape(self, id_: str) -> Optional[Shape]:
"""
@ -294,7 +293,9 @@ class ShapeSpecification:
if "shape" in structure:
shape = extractor.get_shape(structure["shape"])
else:
error("invalid shape specification: 'shape' key expected")
logging.error(
"Invalid shape specification: `shape` key expected."
)
if "color" in structure:
color = scheme.get_color(structure["color"])
if "offset" in structure:

View file

@ -7,10 +7,9 @@ import urllib
from pathlib import Path
from typing import Dict, Optional
import logging
import urllib3
from roentgen.ui import error
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
@ -37,7 +36,7 @@ def get_osm(
)
if not matcher:
error("invalid boundary box")
logging.fatal("Invalid boundary box.")
return None
try:
@ -46,17 +45,17 @@ def get_osm(
right = float(matcher.group("right"))
top = float(matcher.group("top"))
except ValueError:
error("parsing boundary box")
logging.fatal("Invalid boundary box.")
return None
if left >= right:
error("negative horizontal boundary")
logging.fatal("Negative horizontal boundary.")
return None
if bottom >= top:
error("negative vertical boundary")
logging.error("Negative vertical boundary.")
return None
if right - left > 0.5 or top - bottom > 0.5:
error("box too big")
logging.error("Boundary box is too big.")
return None
content = get_data(

View file

@ -20,7 +20,6 @@ from roentgen.mapper import Painter
from roentgen.osm_getter import get_osm
from roentgen.osm_reader import Map, OSMReader
from roentgen.scheme import Scheme
from roentgen.ui import error
from roentgen.util import MinMax
@ -101,7 +100,7 @@ class Tile:
)
content = get_osm(boundary_box, Path("cache"))
if not content:
error("cannot download OSM data")
logging.error("Cannot download OSM data.")
return None
return OSMReader().parse_osm_file(cache_path / (boundary_box + ".osm"))
@ -120,13 +119,17 @@ class Tile:
f"https://tile.openstreetmap.org/{self.scale}/{self.x}/{self.y}.png"
)
def draw(self, directory_name: Path, cache_path: Path):
def draw(self, directory_name: Path, cache_path: Path) -> None:
"""
Draw tile to SVG file.
:param directory_name: output directory to storing tiles
:param cache_path: directory to store temporary files
"""
map_ = self.load_map(cache_path)
if map_ is None:
logging.fatal("No map to draw.")
return
lat1, lon1 = self.get_coordinates()
lat2, lon2 = Tile(self.x + 1, self.y + 1, self.scale).get_coordinates()
@ -181,8 +184,7 @@ def ui(options) -> None:
scale, x, y = map(int, options.tile.split("/"))
tile = Tile(x, y, scale)
else:
logging.fatal("specify either --coordinates, or --tile")
logging.fatal("Specify either --coordinates, or --tile.")
sys.exit(1)
tile.draw(directory, Path(options.cache))
print(tile.get_carto_address())

View file

@ -4,8 +4,6 @@ Command-line user interface.
import argparse
import sys
from typing import Optional
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
@ -185,15 +183,3 @@ def progress_bar(
f"{int(length - fill_length - 1) * ' '}{text}"
)
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.")