Avoid loading timezone at runtime (#157)
* Avoid loading timezone at runtime Pytz will load timezone info from files in a lazy fashion on first access. This triggers warnings in HA due to it blocking the event loop. Pre-load the needed timezone info at module import instead, which will run in executor in HA. * Update value_types.py
This commit is contained in:
parent
3cf627eedc
commit
b42ceb6555
@ -2,6 +2,10 @@ import datetime
|
|||||||
|
|
||||||
import pytz
|
import pytz
|
||||||
|
|
||||||
|
# TODO : Use system timezone
|
||||||
|
# Preload timezone to avoid loading in event loop later
|
||||||
|
local_tz = pytz.timezone('Europe/Amsterdam')
|
||||||
|
|
||||||
|
|
||||||
def timestamp(value):
|
def timestamp(value):
|
||||||
try:
|
try:
|
||||||
@ -20,8 +24,6 @@ def timestamp(value):
|
|||||||
else:
|
else:
|
||||||
is_dst = False
|
is_dst = False
|
||||||
|
|
||||||
# TODO : Use system timezone
|
|
||||||
local_tz = pytz.timezone('Europe/Amsterdam')
|
|
||||||
localized_datetime = local_tz.localize(naive_datetime, is_dst=is_dst)
|
localized_datetime = local_tz.localize(naive_datetime, is_dst=is_dst)
|
||||||
|
|
||||||
return localized_datetime.astimezone(pytz.utc)
|
return localized_datetime.astimezone(pytz.utc)
|
||||||
|
Loading…
Reference in New Issue
Block a user