From b22e45810866f874bf36b082bdb866cfe9614b40 Mon Sep 17 00:00:00 2001 From: Yongjie Zhao Date: Wed, 13 Jan 2021 23:25:58 +0800 Subject: [PATCH] fix(timepicker): make pyparsing thread safe (#12489) * fix: make pyparsing thread safe * remove parenthesis for decorator --- superset/utils/date_parser.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/superset/utils/date_parser.py b/superset/utils/date_parser.py index aee2c83a0d..bd979f3c07 100644 --- a/superset/utils/date_parser.py +++ b/superset/utils/date_parser.py @@ -32,6 +32,7 @@ from pyparsing import ( Group, Optional as ppOptional, ParseException, + ParserElement, ParseResults, pyparsing_common, quotedString, @@ -40,6 +41,8 @@ from pyparsing import ( from .core import memoized +ParserElement.enablePackrat() + logger = logging.getLogger(__name__) @@ -375,7 +378,7 @@ class EvalHolidayFunc: # pylint: disable=too-few-public-methods raise ValueError(_("Unable to find such a holiday: [{}]").format(holiday)) -@memoized() +@memoized def datetime_parser() -> ParseResults: # pylint: disable=too-many-locals ( # pylint: disable=invalid-name DATETIME,