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 <bo...@xs4all.nl>
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)
 

Reply via email to