From 3b98ab4f69bf0e8d295039467f71e956becfaf3b Mon Sep 17 00:00:00 2001 From: tobymao Date: Thu, 30 Jan 2025 10:35:14 -0800 Subject: [PATCH] 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 --- MANIFEST.in | 1 + dateparser/data/dateparser_tz_cache.pkl | Bin 0 -> 57317 bytes dateparser/timezone_parser.py | 48 ++++++++++++++++++++++-- setup.py | 16 ++++++++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 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..2b3fc006847eae1f76b85566e9258a6fc86c4f1d GIT binary patch literal 57317 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

OdM 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 q-mN*_tvTMUIo_?Yt*ztT8tkSV@75ge*1TG~HSe