From fb9bb532eca716b9c160f892da17d68135790cc4 Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Sun, 4 Oct 2026 20:09:51 +0000 Subject: [PATCH] Format Python source and tests --- geocode/model.py | 1 - geocode/wikidata.py | 4 ++-- lookup.py | 24 ++++++++++++++++-------- tests/capture_fixtures.py | 6 +++--- tests/conftest.py | 1 + tests/test_coordinates.py | 2 +- tests/test_examples.py | 12 ++++++------ tests/test_wikidata_api.py | 3 ++- 8 files changed, 31 insertions(+), 22 deletions(-) diff --git a/geocode/model.py b/geocode/model.py index 50cc1e8..3ed9b51 100644 --- a/geocode/model.py +++ b/geocode/model.py @@ -64,7 +64,6 @@ class Polygon(Base): ).order_by(cls.area, cast(cls.admin_level, Integer).desc()) return q # type: ignore - @classmethod def nearest( cls, diff --git a/geocode/wikidata.py b/geocode/wikidata.py index 5f7c736..e995a25 100644 --- a/geocode/wikidata.py +++ b/geocode/wikidata.py @@ -1,9 +1,9 @@ """Wikidata API functions.""" import os -from pathlib import Path import typing import urllib.parse +from pathlib import Path import backoff import backoff.types @@ -255,7 +255,7 @@ def hit_from_row(row: Row) -> Hit: commons_cat = row["commonsCat"]["value"] elif "commonsSiteLink" in row: site_link = row["commonsSiteLink"]["value"] - commons_cat = unescape_title(site_link[len(commons_cat_start):]) + commons_cat = unescape_title(site_link[len(commons_cat_start) :]) return {"wikidata": qid, "commons_cat": commons_cat} diff --git a/lookup.py b/lookup.py index 93877e9..ce5c13a 100755 --- a/lookup.py +++ b/lookup.py @@ -346,7 +346,9 @@ def validate_coordinates(lat: float, lon: float) -> str | None: @app.route("/") -def index() -> str | Response | tuple[Response, int] | tuple[Response, int, dict[str, str]]: +def index() -> ( + str | Response | tuple[Response, int] | tuple[Response, int, dict[str, str]] +): """Index page.""" t0 = time() database.session.execute(text("SELECT 1")) @@ -364,12 +366,15 @@ def index() -> str | Response | tuple[Response, int] | tuple[Response, int, dict lat = parse_coordinate(lat_str) lon = parse_coordinate(lon_str) except ValueError: - return jsonify( - coords={"lat": lat_str, "lon": lon_str}, - error="Invalid coordinate format. " - + "Please use decimal degrees (e.g., 56.099600) " - + "or DMS format (e.g., 56°5'58.56\"N)", - ), 400 + return ( + jsonify( + coords={"lat": lat_str, "lon": lon_str}, + error="Invalid coordinate format. " + + "Please use decimal degrees (e.g., 56.099600) " + + "or DMS format (e.g., 56°5'58.56\"N)", + ), + 400, + ) if error_msg := validate_coordinates(lat, lon): return jsonify(coords={"lat": lat_str, "lon": lon_str}, error=error_msg), 400 @@ -401,7 +406,10 @@ def index() -> str | Response | tuple[Response, int] | tuple[Response, int, dict 503, ) except requests.exceptions.RequestException: - return jsonify(error="Could not connect to Wikidata, please try again later"), 503 + return ( + jsonify(error="Could not connect to Wikidata, please try again later"), + 503, + ) result.pop("element", None) result.pop("geojson", None) if logging_enabled: diff --git a/tests/capture_fixtures.py b/tests/capture_fixtures.py index dc72597..db2a79a 100644 --- a/tests/capture_fixtures.py +++ b/tests/capture_fixtures.py @@ -63,9 +63,9 @@ def capture_sample(i: int, lat: float, lon: float, name: str) -> None: "wdqs": wdqs_calls, "api": api_calls, "expected_wikidata": result.get("wikidata"), - "expected_commons_cat": commons_cat["title"] - if isinstance(commons_cat, dict) - else None, + "expected_commons_cat": ( + commons_cat["title"] if isinstance(commons_cat, dict) else None + ), } fixture_path = FIXTURES_DIR / f"sample_{i:02d}.json" diff --git a/tests/conftest.py b/tests/conftest.py index d530d08..8f8af2f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -7,6 +7,7 @@ import pytest def flask_app(): """Return the Flask application.""" from lookup import app + return app diff --git a/tests/test_coordinates.py b/tests/test_coordinates.py index 61fea43..7dded03 100644 --- a/tests/test_coordinates.py +++ b/tests/test_coordinates.py @@ -42,7 +42,7 @@ def test_invalid_coordinates_return_400(monkeypatch, parameter, value): "lat, lon, expected", [ ("55.7644", "-4.177", (55.7644, -4.177)), - ('56°6\'0"N', '3°30\'0"W', (56.1, -3.5)), + ("56°6'0\"N", "3°30'0\"W", (56.1, -3.5)), ("-90", "180", (-90.0, 180.0)), ], ) diff --git a/tests/test_examples.py b/tests/test_examples.py index 9835d40..453c806 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -83,14 +83,14 @@ def test_example(app_ctx, mocker, i: int, lat: float, lon: float, name: str) -> expected_cat = fixture["expected_commons_cat"] if expected_cat: commons = result.get("commons_cat") - assert isinstance(commons, dict), ( - f"{name}: expected commons_cat={expected_cat!r} but result has none" - ) + assert isinstance( + commons, dict + ), f"{name}: expected commons_cat={expected_cat!r} but result has none" assert commons["title"] == expected_cat, ( f"{name}: commons_cat mismatch — expected {expected_cat!r}, " f"got {commons['title']!r}" ) else: - assert not result.get("commons_cat"), ( - f"{name}: expected no commons_cat but got {result.get('commons_cat')!r}" - ) + assert not result.get( + "commons_cat" + ), f"{name}: expected no commons_cat but got {result.get('commons_cat')!r}" diff --git a/tests/test_wikidata_api.py b/tests/test_wikidata_api.py index 5f5ae4f..877fbd7 100644 --- a/tests/test_wikidata_api.py +++ b/tests/test_wikidata_api.py @@ -5,8 +5,8 @@ import pytest import pytest_mock import requests import responses + from geocode import headers -from geocode.wikimedia_api_logging import WikimediaApiLogConfig from geocode.wikidata import ( APIResponseError, QueryError, @@ -14,6 +14,7 @@ from geocode.wikidata import ( mediawiki_error_message, wdqs, ) +from geocode.wikimedia_api_logging import WikimediaApiLogConfig max_tries = 5