schon/core/utils/nominatim.py
Egor fureunoir Gorbunov fdd92dbf8b Features: 1) Introduced strict parameter for zip function in widgets.py; 2) Added EXTENSIONS_MAX_UNIQUE_QUERY_ATTEMPTS setting;
Fixes: 1) Resolved redundant lines and formatting inconsistencies across multiple files; 2) Corrected Collection typing imports and Optional replacements with union types (e.g., `str | None`);

Extra: Improved formatting and readability by consolidating single-line code sections and simplifying expressions.
2025-06-21 20:38:37 +03:00

31 lines
902 B
Python

import requests
from constance import config
from django.utils.translation import gettext as _
def fetch_address_suggestions(query: str, limit: int = 5) -> list[dict]:
if not config.NOMINATIM_URL:
raise ValueError(_("NOMINATIM_URL must be configured."))
url = config.NOMINATIM_URL.rstrip("/") + "/search"
params: dict[str, str | int] = {
"format": "json",
"addressdetails": 1,
"q": query,
"limit": limit,
}
response = requests.get(url, params=params)
response.raise_for_status()
results = response.json()
suggestions = []
for item in results:
suggestions.append(
{
"display_name": item.get("display_name"),
"lat": item.get("lat"),
"lon": item.get("lon"),
"address": item.get("address", {}),
}
)
return suggestions