aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fietsboek/__init__.py2
-rw-r--r--fietsboek/actions.py10
-rw-r--r--fietsboek/osm.py25
-rw-r--r--fietsboek/scripts/fietscron.py2
-rw-r--r--fietsboek/trackmap.py3
-rw-r--r--fietsboek/updater/scripts/upd_20260930_7fa8kflikvnlvuqe.py2
6 files changed, 28 insertions, 16 deletions
diff --git a/fietsboek/__init__.py b/fietsboek/__init__.py
index 3edb243..b2af484 100644
--- a/fietsboek/__init__.py
+++ b/fietsboek/__init__.py
@@ -158,6 +158,7 @@ def create_data_folders(data_dir: Path):
def main(global_config, **settings):
"""This function returns a Pyramid WSGI application."""
+ # pylint: disable=too-many-locals
# Avoid a circular import by not importing at the top level
# pylint: disable=import-outside-toplevel,cyclic-import
from .osm import OverpassApi
@@ -182,6 +183,7 @@ def main(global_config, **settings):
return redis.from_url(request.config.redis_url)
overpass_api = OverpassApi.from_config(parsed_config)
+
def overpass_api_(_request):
return overpass_api
diff --git a/fietsboek/actions.py b/fietsboek/actions.py
index 0c00fa9..3be9342 100644
--- a/fietsboek/actions.py
+++ b/fietsboek/actions.py
@@ -306,7 +306,7 @@ def extract_climbs(
layer: TileLayerConfig,
overpass_api: OverpassApi,
*,
- find_names: bool=True,
+ find_names: bool = True,
):
"""(Re-)extracts the climbs from the given track.
@@ -314,14 +314,18 @@ def extract_climbs(
:param dbsession: The database session.
:param track: The track for which to extract climbs.
+ :param tile_requester: The tile requester to use to render preview images.
+ :param layer: The layer to use for preview images.
+ :param overpass_api: The overpass API to use for naming the climbs.
+ :param find_names: Whether names should be searched or not.
"""
- # pylint: disable=too-many-locals
+ # pylint: disable=too-many-locals,too-many-arguments
track.climbs = []
dbsession.add(track)
path = track.path()
climbs = path.climbs()
for climb_start, climb_end in climbs:
- subpath = Path(path.points[climb_start:climb_end + 1])
+ subpath = Path(path.points[climb_start : climb_end + 1])
movement_data = subpath.movement_data()
preview = trackmap.render(subpath, layer, tile_requester)
diff --git a/fietsboek/osm.py b/fietsboek/osm.py
index de3c827..44e8b48 100644
--- a/fietsboek/osm.py
+++ b/fietsboek/osm.py
@@ -24,15 +24,15 @@ MAX_DISTANCE_WATER = 750
class ApiError(Exception):
- pass
+ """Base error class for errors occuring in OSM/Overpass accesses."""
class ApiTimeout(ApiError):
- pass
+ """API/Tile access timeout."""
class ApiNotOk(ApiError):
- pass
+ """Server error response (non-200 status code)."""
class OverpassApi:
@@ -45,7 +45,6 @@ class OverpassApi:
def __init__(self, interpreter_url: str):
self.session = requests.Session()
self.session.headers.update(HEADERS)
- self.session.timeout = API_TIMEOUT
self.url = interpreter_url
def basic_auth(self, username: str, password: str):
@@ -58,9 +57,14 @@ class OverpassApi:
@classmethod
def from_config(cls, config: Config) -> "OverpassApi":
+ """Construct an OverpassApi from the given fietsboek config.
+
+ :param config: The config object.
+ :return: The API with correct URL/auth.
+ """
api = cls(config.overpass_url)
if config.overpass_basic_username and config.overpass_basic_password:
- api.basic_auth(config.overpass_basic_username, config.overpass_basic_password)
+ api.basic_auth(config.overpass_basic_username, str(config.overpass_basic_password))
return api
def run_script(self, script: str) -> requests.Response:
@@ -74,14 +78,18 @@ class OverpassApi:
:return: The response.
"""
try:
- with self.session.post(self.url, data={"data": script}) as response:
+ with self.session.post(
+ self.url,
+ data={"data": script},
+ timeout=API_TIMEOUT,
+ ) as response:
if response.status_code != 200:
raise ApiNotOk(
f"Overpass error response: {response.status_code} {response.reason}"
)
return response
except (requests.ReadTimeout, requests.ConnectTimeout) as exc:
- raise ApiTimeout(f"Timeout when trying to access overpass at {self.url}")
+ raise ApiTimeout(f"Timeout when trying to access overpass at {self.url}") from exc
def find_name(api: OverpassApi, path: Path) -> str | None:
@@ -114,8 +122,7 @@ def find_name(api: OverpassApi, path: Path) -> str | None:
except ApiError as exc:
LOGGER.info("%s", exc)
return None
- else:
- data = response.content
+ data = response.content
LOGGER.debug("Got %s bytes of OSM-XML data, parsing...", len(data))
tree = ElementTree.fromstring(data)
diff --git a/fietsboek/scripts/fietscron.py b/fietsboek/scripts/fietscron.py
index e10efca..c9bb9dd 100644
--- a/fietsboek/scripts/fietscron.py
+++ b/fietsboek/scripts/fietscron.py
@@ -8,7 +8,7 @@ import click
import pyramid.paster
import redis as mod_redis
from redis import Redis
-from sqlalchemy import create_engine, delete, exists, not_, select
+from sqlalchemy import delete, exists, not_, select
from sqlalchemy.engine import Engine
from sqlalchemy.orm import Session
diff --git a/fietsboek/trackmap.py b/fietsboek/trackmap.py
index c2400bb..df21af1 100644
--- a/fietsboek/trackmap.py
+++ b/fietsboek/trackmap.py
@@ -3,8 +3,8 @@
import io
import logging
import math
-import requests
+import requests
from PIL import Image, ImageDraw
from . import geo
@@ -101,6 +101,7 @@ class TrackMapRenderer:
return DEFAULT_ZOOM, DEFAULT_BBOX
def _draw_base(self, image, zoom, bbox):
+ # pylint: disable=too-many-locals
min_x, max_x, min_y, max_y = bbox
# We center the track by centering its bounding box
start_x = min_x - (self.size[0] - (max_x - min_x)) // 2
diff --git a/fietsboek/updater/scripts/upd_20260930_7fa8kflikvnlvuqe.py b/fietsboek/updater/scripts/upd_20260930_7fa8kflikvnlvuqe.py
index e851d26..5ed4ae1 100644
--- a/fietsboek/updater/scripts/upd_20260930_7fa8kflikvnlvuqe.py
+++ b/fietsboek/updater/scripts/upd_20260930_7fa8kflikvnlvuqe.py
@@ -4,8 +4,6 @@ Add climbs table
Date created: 2026-09-30 19:54:52.669074
"""
-import time
-
import redis
from sqlalchemy import select
from sqlalchemy.orm import sessionmaker