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.
31 lines
902 B
Python
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
|