Fix code style.

This commit is contained in:
Sergey Vartanov 2021-08-15 06:33:42 +03:00
parent b02b7cc4ab
commit e5671fcf8f
12 changed files with 52 additions and 27 deletions

View file

@ -1,6 +1,7 @@
""" """
Construct Röntgen nodes and ways. Construct Röntgen nodes and ways.
""" """
import logging
from datetime import datetime from datetime import datetime
from hashlib import sha256 from hashlib import sha256
from typing import Any, Dict, Iterator, List, Optional, Set from typing import Any, Dict, Iterator, List, Optional, Set
@ -17,9 +18,7 @@ from roentgen.flinger import Flinger
from roentgen.icon import ( from roentgen.icon import (
DEFAULT_SMALL_SHAPE_ID, Icon, IconSet, ShapeExtractor, ShapeSpecification DEFAULT_SMALL_SHAPE_ID, Icon, IconSet, ShapeExtractor, ShapeSpecification
) )
from roentgen.osm_reader import ( from roentgen.osm_reader import Map, OSMNode, OSMRelation, OSMWay, Tagged
Map, OSMMember, OSMNode, OSMRelation, OSMWay, Tagged
)
from roentgen.point import Point from roentgen.point import Point
from roentgen.scheme import DEFAULT_COLOR, LineStyle, Scheme from roentgen.scheme import DEFAULT_COLOR, LineStyle, Scheme
from roentgen.util import MinMax from roentgen.util import MinMax
@ -48,7 +47,7 @@ def line_center(nodes: List[OSMNode], flinger: Flinger) -> np.array:
""" """
boundary: List[MinMax] = [MinMax(), MinMax()] boundary: List[MinMax] = [MinMax(), MinMax()]
for node in nodes: # type: OSMNode for node in nodes:
boundary[0].update(node.coordinates[0]) boundary[0].update(node.coordinates[0])
boundary[1].update(node.coordinates[1]) boundary[1].update(node.coordinates[1])
center_coordinates = np.array((boundary[0].center(), boundary[1].center())) center_coordinates = np.array((boundary[0].center(), boundary[1].center()))
@ -84,7 +83,7 @@ def glue(ways: List[OSMWay]) -> List[List[OSMNode]]:
result: List[List[OSMNode]] = [] result: List[List[OSMNode]] = []
to_process: Set[OSMWay] = set() to_process: Set[OSMWay] = set()
for way in ways: # type: OSMWay for way in ways:
if way.is_cycle(): if way.is_cycle():
result.append(way.nodes) result.append(way.nodes)
else: else:
@ -95,7 +94,7 @@ def glue(ways: List[OSMWay]) -> List[List[OSMNode]]:
glued: Optional[OSMWay] = None glued: Optional[OSMWay] = None
other_way: Optional[OSMWay] = None other_way: Optional[OSMWay] = None
for other_way in to_process: # type: OSMWay for other_way in to_process:
glued = way.try_to_glue(other_way) glued = way.try_to_glue(other_way)
if glued: if glued:
break break
@ -170,7 +169,7 @@ class Constructor:
Construct Röntgen ways. Construct Röntgen ways.
""" """
way_number: int = 0 way_number: int = 0
for way_id in self.map_.ways: # type: int for way_id in self.map_.ways:
ui.progress_bar( ui.progress_bar(
way_number, way_number,
len(self.map_.ways), len(self.map_.ways),
@ -226,7 +225,7 @@ class Constructor:
self.roads.append(Road(line.tags, inners, outers, road_matcher)) self.roads.append(Road(line.tags, inners, outers, road_matcher))
return return
for line_style in line_styles: # type: LineStyle for line_style in line_styles:
self.figures.append( self.figures.append(
StyledFigure(line.tags, inners, outers, line_style) StyledFigure(line.tags, inners, outers, line_style)
) )
@ -308,7 +307,7 @@ class Constructor:
continue continue
inner_ways: List[OSMWay] = [] inner_ways: List[OSMWay] = []
outer_ways: List[OSMWay] = [] outer_ways: List[OSMWay] = []
for member in relation.members: # type: OSMMember for member in relation.members:
if member.type_ == "way": if member.type_ == "way":
if member.role == "inner": if member.role == "inner":
if member.ref in self.map_.ways: if member.ref in self.map_.ways:
@ -317,7 +316,7 @@ class Constructor:
if member.ref in self.map_.ways: if member.ref in self.map_.ways:
outer_ways.append(self.map_.ways[member.ref]) outer_ways.append(self.map_.ways[member.ref])
else: else:
print(f'Unknown member role "{member.role}".') logging.warning(f'Unknown member role "{member.role}".')
if outer_ways: if outer_ways:
inners_path: List[List[OSMNode]] = glue(inner_ways) inners_path: List[List[OSMNode]] = glue(inner_ways)
outers_path: List[List[OSMNode]] = glue(outer_ways) outers_path: List[List[OSMNode]] = glue(outer_ways)
@ -334,7 +333,7 @@ class Constructor:
key=lambda x: -self.map_.nodes[x].coordinates[0], key=lambda x: -self.map_.nodes[x].coordinates[0],
) )
for node_id in sorted_node_ids: # type: int for node_id in sorted_node_ids:
processed: Set[str] = set() processed: Set[str] = set()
node_number += 1 node_number += 1

View file

@ -7,6 +7,9 @@ from roentgen.osm_reader import OSMNode, Tagged
from roentgen.road import Lane from roentgen.road import Lane
from roentgen.scheme import LineStyle, RoadMatcher, Scheme from roentgen.scheme import LineStyle, RoadMatcher, Scheme
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
class Figure(Tagged): class Figure(Tagged):
""" """
@ -182,7 +185,7 @@ def is_clockwise(polygon: List[OSMNode]) -> bool:
:param polygon: list of OpenStreetMap nodes :param polygon: list of OpenStreetMap nodes
""" """
count: float = 0 count: float = 0
for index, node in enumerate(polygon): # type: int, OSMNode for index, node in enumerate(polygon):
next_index: int = 0 if index == len(polygon) - 1 else index + 1 next_index: int = 0 if index == len(polygon) - 1 else index + 1
count += (polygon[next_index].coordinates[0] - node.coordinates[0]) * ( count += (polygon[next_index].coordinates[0] - node.coordinates[0]) * (
polygon[next_index].coordinates[1] + node.coordinates[1] polygon[next_index].coordinates[1] + node.coordinates[1]
@ -214,7 +217,7 @@ def get_path(nodes: List[OSMNode], shift: np.array, flinger: Flinger) -> str:
""" """
path: str = "" path: str = ""
prev_node: Optional[OSMNode] = None prev_node: Optional[OSMNode] = None
for node in nodes: # type: OSMNode for node in nodes:
flung = flinger.fling(node.coordinates) + shift flung = flinger.fling(node.coordinates) + shift
path += ("L" if prev_node else "M") + f" {flung[0]},{flung[1]} " path += ("L" if prev_node else "M") + f" {flung[0]},{flung[1]} "
prev_node = node prev_node = node

View file

@ -7,7 +7,7 @@ import re
from dataclasses import dataclass, field from dataclasses import dataclass, field
from pathlib import Path from pathlib import Path
from typing import Any, Dict, List, Optional, Set from typing import Any, Dict, List, Optional, Set
from xml.dom.minidom import Document, Element, Node, parse from xml.dom.minidom import Document, Element, parse
import numpy as np import numpy as np
import svgwrite import svgwrite
@ -183,10 +183,10 @@ class ShapeExtractor:
) )
with svg_file_name.open() as input_file: with svg_file_name.open() as input_file:
content: Document = parse(input_file) content: Document = parse(input_file)
for element in content.childNodes: # type: Element for element in content.childNodes:
if element.nodeName != "svg": if element.nodeName != "svg":
continue continue
for node in element.childNodes: # type: Node for node in element.childNodes:
if isinstance(node, Element): if isinstance(node, Element):
self.parse(node) self.parse(node)

View file

@ -13,6 +13,9 @@ from roentgen.icon import ShapeExtractor
from roentgen.osm_reader import STAGES_OF_DECAY from roentgen.osm_reader import STAGES_OF_DECAY
from roentgen.scheme import Scheme, Matcher from roentgen.scheme import Scheme, Matcher
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
class MapCSSWriter: class MapCSSWriter:
def __init__( def __init__(
@ -71,7 +74,7 @@ class MapCSSWriter:
return selector return selector
def write(self, output_file) -> None: def write(self, output_file: Path) -> None:
""" """
Construct icon selectors for MapCSS 0.2 scheme. Construct icon selectors for MapCSS 0.2 scheme.
""" """

View file

@ -17,7 +17,7 @@ from roentgen.figure import Road
from roentgen.flinger import Flinger from roentgen.flinger import Flinger
from roentgen.icon import ShapeExtractor from roentgen.icon import ShapeExtractor
from roentgen.osm_reader import Map, OSMNode from roentgen.osm_reader import Map, OSMNode
from roentgen.point import Occupied, Point from roentgen.point import Occupied
from roentgen.road import Intersection, RoadPart from roentgen.road import Intersection, RoadPart
from roentgen.scheme import Scheme from roentgen.scheme import Scheme
@ -100,7 +100,7 @@ class Painter:
nodes = sorted(constructor.points, key=lambda x: -x.priority) nodes = sorted(constructor.points, key=lambda x: -x.priority)
steps: int = len(nodes) steps: int = len(nodes)
for index, node in enumerate(nodes): # type: int, Point for index, node in enumerate(nodes):
if node.get_tag("natural") == "tree" and ( if node.get_tag("natural") == "tree" and (
"diameter_crown" in node.tags or "circumference" in node.tags "diameter_crown" in node.tags or "circumference" in node.tags
): ):
@ -110,13 +110,13 @@ class Painter:
) )
node.draw_main_shapes(self.svg, occupied) node.draw_main_shapes(self.svg, occupied)
for index, point in enumerate(nodes): # type: int, Point for index, point in enumerate(nodes):
ui.progress_bar( ui.progress_bar(
steps + index, steps * 3, step=10, text="Drawing extra icons" steps + index, steps * 3, step=10, text="Drawing extra icons"
) )
point.draw_extra_shapes(self.svg, occupied) point.draw_extra_shapes(self.svg, occupied)
for index, point in enumerate(nodes): # type: int, Point for index, point in enumerate(nodes):
ui.progress_bar( ui.progress_bar(
steps * 2 + index, steps * 3, step=10, text="Drawing texts" steps * 2 + index, steps * 3, step=10, text="Drawing texts"
) )
@ -181,7 +181,7 @@ class Painter:
) )
building_shade.add(path) building_shade.add(path)
for nodes in building.inners + building.outers: for nodes in building.inners + building.outers:
for i in range(len(nodes) - 1): # type: int for i in range(len(nodes) - 1):
flung_1 = self.flinger.fling(nodes[i].coordinates) flung_1 = self.flinger.fling(nodes[i].coordinates)
flung_2 = self.flinger.fling(nodes[i + 1].coordinates) flung_2 = self.flinger.fling(nodes[i + 1].coordinates)
command = ( command = (
@ -260,7 +260,7 @@ class Painter:
""" """
Draw gradient sectors for directions. Draw gradient sectors for directions.
""" """
for node in constructor.points: # type: Point for node in constructor.points:
angle = None angle = None
is_revert_gradient: bool = False is_revert_gradient: bool = False

View file

@ -3,6 +3,9 @@ import subprocess
from pathlib import Path from pathlib import Path
from typing import List from typing import List
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
def rasterize(from_: Path, to_: Path, area: str = "", dpi: float = 90) -> None: def rasterize(from_: Path, to_: Path, area: str = "", dpi: float = 90) -> None:
""" """

View file

@ -11,6 +11,9 @@ from roentgen.flinger import Flinger
from roentgen.osm_reader import OSMNode from roentgen.osm_reader import OSMNode
from roentgen.vector import Line, angle, norm, turn_by_angle from roentgen.vector import Line, angle, norm, turn_by_angle
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
@dataclass @dataclass
class Lane: class Lane:

View file

@ -303,7 +303,7 @@ class Scheme:
""" """
if key in self.tags_to_write or key in self.tags_to_skip: if key in self.tags_to_write or key in self.tags_to_skip:
return True return True
for prefix in self.prefix_to_write + self.prefix_to_skip: # type: str for prefix in self.prefix_to_write + self.prefix_to_skip:
if key[: len(prefix) + 1] == f"{prefix}:": if key[: len(prefix) + 1] == f"{prefix}:":
return True return True
return False return False
@ -319,7 +319,7 @@ class Scheme:
return False return False
if key in self.tags_to_write: if key in self.tags_to_write:
return True return True
for prefix in self.prefix_to_write: # type: str for prefix in self.prefix_to_write:
if key[: len(prefix) + 1] == f"{prefix}:": if key[: len(prefix) + 1] == f"{prefix}:":
return True return True
return False return False

View file

@ -7,6 +7,9 @@ from roentgen.workspace import workspace
from roentgen.raster import rasterize from roentgen.raster import rasterize
from roentgen.tile import Tile from roentgen.tile import Tile
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
class Handler(BaseHTTPRequestHandler): class Handler(BaseHTTPRequestHandler):

View file

@ -24,6 +24,9 @@ from roentgen.scheme import Scheme
from roentgen.util import MinMax from roentgen.util import MinMax
from roentgen.ui import BoundaryBox from roentgen.ui import BoundaryBox
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
@dataclass @dataclass
class Tiles: class Tiles:
@ -267,7 +270,7 @@ class Tile:
) )
painter.draw(constructor) painter.draw(constructor)
print(f"Writing output SVG {output_file_name}...") logging.info(f"Writing output SVG {output_file_name}...")
with output_file_name.open("w") as output_file: with output_file_name.open("w") as output_file:
svg.write(output_file) svg.write(output_file)
@ -301,5 +304,7 @@ def ui(options) -> None:
tiles.draw(directory, Path(options.cache)) tiles.draw(directory, Path(options.cache))
tiles.draw_image(Path(options.cache)) tiles.draw_image(Path(options.cache))
else: else:
logging.fatal("Specify either --coordinates, or --tile.") logging.fatal(
"Specify either --coordinates, --boundary-box, or --tile."
)
sys.exit(1) sys.exit(1)

View file

@ -3,6 +3,9 @@ Vector utility.
""" """
import numpy as np import numpy as np
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
def angle(vector: np.array): def angle(vector: np.array):
""" """

View file

@ -3,6 +3,9 @@ File and directory path in the project.
""" """
from pathlib import Path from pathlib import Path
__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"
def check_and_create(directory: Path) -> Path: def check_and_create(directory: Path) -> Path:
"""Create directory if it doesn't exist and return it.""" """Create directory if it doesn't exist and return it."""