diff --git a/pkgs/development/python-modules/dateparser/default.nix b/pkgs/development/python-modules/dateparser/default.nix index 6d113b178c5aa8..5c151d518bb97f 100644 --- a/pkgs/development/python-modules/dateparser/default.nix +++ b/pkgs/development/python-modules/dateparser/default.nix @@ -29,7 +29,15 @@ buildPythonPackage rec { sha256 = "sha256-bDup3q93Zq+pvwsy/lQy2byOMjG6C/+7813hWQMbZRU="; }; + patches = [ + ./regex-compat.patch + ]; + postPatch = '' + substituteInPlace setup.py --replace \ + 'regex !=2019.02.19,!=2021.8.27,<2022.3.15' \ + 'regex' + # https://github.com/scrapinghub/dateparser/issues/1053 substituteInPlace tests/test_search.py --replace \ "('June 2020', datetime.datetime(2020, 6, datetime.datetime.utcnow().day, 0, 0))," \ diff --git a/pkgs/development/python-modules/dateparser/regex-compat.patch b/pkgs/development/python-modules/dateparser/regex-compat.patch new file mode 100644 index 00000000000000..4c69d14f10239e --- /dev/null +++ b/pkgs/development/python-modules/dateparser/regex-compat.patch @@ -0,0 +1,11 @@ +--- a/dateparser/languages/locale.py ++++ b/dateparser/languages/locale.py +@@ -169,7 +169,7 @@ class Locale: + if normalize: + value = list(map(normalize_unicode, value)) + pattern = '|'.join(sorted(value, key=len, reverse=True)) +- pattern = DIGIT_GROUP_PATTERN.sub(r'?P\d+', pattern) ++ pattern = pattern.replace(r'\d+', r'?P\d+') + pattern = re.compile(r'^(?:{})$'.format(pattern), re.UNICODE | re.IGNORECASE) + relative_dictionary[pattern] = key + return relative_dictionary