mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-29 22:24:26 +00:00 
			
		
		
		
	Work around pytz tzname bug
Fixes https://github.com/esphome/issues/issues/445
This commit is contained in:
		| @@ -2,6 +2,7 @@ import bisect | ||||
| import datetime | ||||
| import logging | ||||
| import math | ||||
| import string | ||||
|  | ||||
| import pytz | ||||
| import tzlocal | ||||
| @@ -52,8 +53,18 @@ def _tz_dst_str(dt): | ||||
|                                  _tz_timedelta(td)) | ||||
|  | ||||
|  | ||||
| def _non_dst_tz(tz, dt): | ||||
| def _safe_tzname(tz, dt): | ||||
|     tzname = tz.tzname(dt) | ||||
|     # pytz does not always return valid tznames | ||||
|     # For example: 'Europe/Saratov' returns '+04' | ||||
|     # Work around it by using a generic name for the timezone | ||||
|     if not all(c in string.ascii_letters for c in tzname): | ||||
|         return 'TZ' | ||||
|     return tzname | ||||
|  | ||||
|  | ||||
| def _non_dst_tz(tz, dt): | ||||
|     tzname = _safe_tzname(tz, dt) | ||||
|     utcoffset = tz.utcoffset(dt) | ||||
|     _LOGGER.info("Detected timezone '%s' with UTC offset %s", | ||||
|                  tzname, _tz_timedelta(utcoffset)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user