This is an automated email from the ASF dual-hosted git repository.
vincbeck pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 25cd12d307 zoneinfo.ZoneInfo is not available on < Python 3.9 (#34804)
25cd12d307 is described below
commit 25cd12d307be6359c844f4764b6f90e954bccb56
Author: Bolke de Bruin <[email protected]>
AuthorDate: Fri Oct 6 19:31:02 2023 +0200
zoneinfo.ZoneInfo is not available on < Python 3.9 (#34804)
---
airflow/serialization/serializers/timezone.py | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/airflow/serialization/serializers/timezone.py
b/airflow/serialization/serializers/timezone.py
index 5d3b940cd7..23901b9d44 100644
--- a/airflow/serialization/serializers/timezone.py
+++ b/airflow/serialization/serializers/timezone.py
@@ -18,6 +18,7 @@
from __future__ import annotations
import datetime
+import sys
from typing import TYPE_CHECKING, Any, cast
from airflow.utils.module_loading import qualname
@@ -29,10 +30,15 @@ if TYPE_CHECKING:
serializers = [
"pendulum.tz.timezone.FixedTimezone",
"pendulum.tz.timezone.Timezone",
- "zoneinfo.ZoneInfo",
- "backports.zoneinfo.ZoneInfo",
]
+PY39 = sys.version_info >= (3, 9)
+
+if PY39:
+ serializers.append("zoneinfo.ZoneInfo")
+else:
+ serializers.append("backports.zoneinfo.ZoneInfo")
+
deserializers = serializers
__version__ = 1
@@ -79,17 +85,11 @@ def deserialize(classname: str, version: int, data: object)
-> Any:
if isinstance(data, int):
return fixed_timezone(data)
- if classname == "zoneinfo.ZoneInfo":
- from zoneinfo import ZoneInfo
-
- return ZoneInfo(data)
-
- if classname == "backports.zoneinfo.ZoneInfo":
- # python version might have been upgraded, so we need to check
+ if "zoneinfo.ZoneInfo" in classname:
try:
- from backports.zoneinfo import ZoneInfo
- except ImportError:
from zoneinfo import ZoneInfo
+ except ImportError:
+ from backports.zoneinfo import ZoneInfo
return ZoneInfo(data)