Improve coordinate timezone resolution with timezonefinder fallbacks

This commit is contained in:
Edward Betts 2026-02-26 15:15:37 +00:00
parent 1ee1f38a99
commit 38cf270307

View file

@ -797,8 +797,14 @@ def _timezone_from_coordinates(latitude: float, longitude: float) -> str | None:
if timezone_finder is None:
return None
tz_name = timezone_finder.timezone_at(lng=longitude, lat=latitude)
return tz_name if isinstance(tz_name, str) else None
for method_name in ("timezone_at", "certain_timezone_at", "closest_timezone_at"):
finder_method = getattr(timezone_finder, method_name, None)
if not callable(finder_method):
continue
tz_name = finder_method(lng=longitude, lat=latitude)
if isinstance(tz_name, str):
return tz_name
return None
@functools.lru_cache(maxsize=1)