From 1bac98fd6a220186983c15a3badb02d8c0a4b70e Mon Sep 17 00:00:00 2001 From: Nicolas Thumann Date: Sun, 19 May 2024 00:30:31 +0200 Subject: [PATCH 1/3] perf: Prefer datetime.fromisoformat over dateutil.parse in Python 3.11+ --- influxdb_client/client/util/date_utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/influxdb_client/client/util/date_utils.py b/influxdb_client/client/util/date_utils.py index 11baecb5..7b6750c8 100644 --- a/influxdb_client/client/util/date_utils.py +++ b/influxdb_client/client/util/date_utils.py @@ -1,5 +1,6 @@ """Utils to get right Date parsing function.""" import datetime +from sys import version_info import threading from datetime import timezone as tz @@ -78,7 +79,8 @@ def get_date_helper() -> DateHelper: """ Return DateHelper with proper implementation. - If there is a 'ciso8601' than use 'ciso8601.parse_datetime' else use 'dateutil.parse'. + If there is a 'ciso8601' than use 'ciso8601.parse_datetime' else + use 'datetime.fromisoformat' (Python >= 3.11) or 'dateutil.parse' (Python < 3.11). """ global date_helper if date_helper is None: @@ -90,7 +92,10 @@ def get_date_helper() -> DateHelper: import ciso8601 _date_helper.parse_date = ciso8601.parse_datetime except ModuleNotFoundError: - _date_helper.parse_date = parser.parse + if (version_info.major, version_info.minor) >= (3, 11): + _date_helper.parse_date = datetime.datetime.fromisoformat + else: + _date_helper.parse_date = parser.parse date_helper = _date_helper return date_helper From 46f4f7e2ec0287641a3cc0ea9730aa2fd7103980 Mon Sep 17 00:00:00 2001 From: Nicolas Thumann Date: Sun, 19 May 2024 01:18:35 +0200 Subject: [PATCH 2/3] docs: Add PR to changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0eb128ef..b77f61e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## 1.44.0 [unreleased] +### Performance +1. [#657](https://github.com/influxdata/influxdb-client-python/pull/657): Prefer datetime.fromisoformat over dateutil.parse in Python 3.11+ + ## 1.43.0 [2024-05-17] ### Bug Fixes From b97b611299c2c3ba535eadcee588e3b146717944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Bedn=C3=A1=C5=99?= Date: Mon, 20 May 2024 12:45:30 +0200 Subject: [PATCH 3/3] docs: Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b77f61e8..d7a3a503 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## 1.44.0 [unreleased] -### Performance +### Features 1. [#657](https://github.com/influxdata/influxdb-client-python/pull/657): Prefer datetime.fromisoformat over dateutil.parse in Python 3.11+ ## 1.43.0 [2024-05-17]