From c80dee76989635564bf2233ff2d19860875293ab Mon Sep 17 00:00:00 2001 From: Michael Farrell Date: Thu, 20 Jun 2019 14:34:51 +1000 Subject: [PATCH] Fix issue when default locale cannot be detected When the default locale cannot be detected, `locale.getdefaultlocale` may return `(None, None)`. This works around the issue. --- datetime_tz/detect_windows.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/datetime_tz/detect_windows.py b/datetime_tz/detect_windows.py index 3f708aa..b2fe6db 100644 --- a/datetime_tz/detect_windows.py +++ b/datetime_tz/detect_windows.py @@ -116,7 +116,12 @@ def _detect_timezone_windows(): win32timezone.TimeZoneInfo._get_indexed_time_zone_keys("Std")) win32tz_key_name = win32timezone_to_en.get(win32tz_name, win32tz_name) - territory = locale.getdefaultlocale()[0].split("_", 1)[1] + language_code = locale.getdefaultlocale()[0] + if language_code is None: + # Failure getting the system locale, result may be wrong! + territory = None + else: + territory = language_code.split("_", 1)[1] olson_name = win32tz_map.win32timezones.get((win32tz_key_name, territory), win32tz_map.win32timezones.get(win32tz_key_name, None)) if not olson_name: return None