From 1f6c7c61a92485d9f4549ca3e9bdc9ae90e5057e Mon Sep 17 00:00:00 2001 From: tobymao Date: Thu, 30 Jan 2025 10:35:14 -0800 Subject: [PATCH 1/2] feat: add caching for timezone offsets, significantly speeds up import this is different from pr #1181. it builds a cache at install time which can be distributed. closes #533 --- CONTRIBUTING.rst | 13 ++++++ MANIFEST.in | 1 + dateparser/data/dateparser_tz_cache.pkl | Bin 0 -> 134536 bytes dateparser/timezone_parser.py | 50 ++++++++++++++++++++++-- 4 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 dateparser/data/dateparser_tz_cache.pkl diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index ecd87fd65..31d179b05 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -179,3 +179,16 @@ Whenever the content of the corresponding documentation table:: dateparser_scripts/update_supported_languages_and_locales.py + + +Updating the Timezone Cache +---------------------------------------------------- + +Whenever the content of +``dateparser/timezones.py`` is modified you need to rebuild the timezone cache. + +Run this command: +``BUILD_TZ_CACHE=1 python -c "import dateparser"`` + +which should update +``dateparser/data/dateparser_tz_cache.pkl`` diff --git a/MANIFEST.in b/MANIFEST.in index ce4030d7c..f51e2255e 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,6 +3,7 @@ include CONTRIBUTING.rst include HISTORY.rst include LICENSE include README.rst +include dateparser/data/dateparser_tz_cache.pkl include dateparser_data/settings.py include requirements.txt diff --git a/dateparser/data/dateparser_tz_cache.pkl b/dateparser/data/dateparser_tz_cache.pkl new file mode 100644 index 0000000000000000000000000000000000000000..4eac858abab5c2c6e260d88cf2d6b222174ce603 GIT binary patch literal 134536 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 Date: Fri, 14 Feb 2025 01:06:43 +0100 Subject: [PATCH 2/2] Upgrade the minimum version of regex --- dateparser/timezone_parser.py | 1 + setup.py | 2 +- tox.ini | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dateparser/timezone_parser.py b/dateparser/timezone_parser.py index 3156352d0..6ff6c9224 100644 --- a/dateparser/timezone_parser.py +++ b/dateparser/timezone_parser.py @@ -120,6 +120,7 @@ def _load_offsets(cache_path, current_hash): pickle.dump( (current_hash, _tz_offsets, _search_regex, _search_regex_ignorecase), file, + protocol=5, ) diff --git a/setup.py b/setup.py index edab943b3..784ab3eea 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ install_requires=[ "python-dateutil>=2.7.0", "pytz>=2024.2", - "regex>=2015.06.24,!=2019.02.19,!=2021.8.27", + "regex>=2024.9.11", "tzlocal>=0.2", ], entry_points={ diff --git a/tox.ini b/tox.ini index 312b4b3ae..565da544c 100644 --- a/tox.ini +++ b/tox.ini @@ -27,7 +27,7 @@ deps = {[testenv]deps} python-dateutil==2.7.0 pytz==2024.2 - regex==2015.06.24 + regex==2024.9.11 tzlocal==0.2 [testenv:min-all]