Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

dateparser throws regex._regex_core.error

I am trying to run a very basic script:

import dateparser

dateparser.parse('12/12/12')

but I keep getting the same error

Traceback (most recent call last):
  File ".../app/test.py", line 3, in <module>
    dateparser.parse('12/12/12')
  File ".../lib/python3.9/site-packages/dateparser/conf.py", line 92, in wrapper
    return f(*args, **kwargs)
  File ".../lib/python3.9/site-packages/dateparser/__init__.py", line 61, in parse
    data = parser.get_date_data(date_string, date_formats)
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 428, in get_date_data
    parsed_date = _DateLocaleParser.parse(
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 178, in parse
    return instance._parse()
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 182, in _parse
    date_data = self._parsers[parser_name]()
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 196, in _try_freshness_parser
    return freshness_date_parser.get_date_data(self._get_translated_date(), self._settings)
  File ".../lib/python3.9/site-packages/dateparser/date.py", line 234, in _get_translated_date
    self._translated_date = self.locale.translate(
  File ".../lib/python3.9/site-packages/dateparser/languages/locale.py", line 131, in translate
    relative_translations = self._get_relative_translations(settings=settings)
  File ".../lib/python3.9/site-packages/dateparser/languages/locale.py", line 158, in _get_relative_translations
    self._generate_relative_translations(normalize=True))
  File ".../lib/python3.9/site-packages/dateparser/languages/locale.py", line 172, in _generate_relative_translations
    pattern = DIGIT_GROUP_PATTERN.sub(r'?P<n>\d+', pattern)
  File ".../lib/python3.9/site-packages/regex/regex.py", line 700, in _compile_replacement_helper
    is_group, items = _compile_replacement(source, pattern, is_unicode)
  File ".../lib/python3.9/site-packages/regex/_regex_core.py", line 1736, in _compile_replacement
    raise error("bad escape \\%s" % ch, source.string, source.pos)
regex._regex_core.error: bad escape \d at position 7

Could it be a compatibility version between dateparser and python? I am using dateparser 1.1 and python 3.9 and the documentation of dateparsers says that it accepts this python versoin.

like image 881
user3714205 Avatar asked Oct 21 '25 19:10

user3714205


1 Answers

Our team just experienced this exact issue which took down our production servers. Last night, one of the dependencies of dateparser, regex was updated to version 2022.3.15. Dateparser installs regex, but without a frozen version. It seems that the newest version of regex does not like something that dateparser is doing, leading to the error you saw. By pip installing regex==2022.3.2 before dateparser, this completely fixed our issue.

like image 150
Lukas Schmit Avatar answered Oct 24 '25 10:10

Lukas Schmit