From 24c108bfce8db54a62a4014dd32fab83fd9dcd6e Mon Sep 17 00:00:00 2001 From: Yongjie Zhao Date: Wed, 13 Jan 2021 19:52:31 +0800 Subject: [PATCH 1/2] fix: make pyparsing thread safe --- superset/utils/date_parser.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/superset/utils/date_parser.py b/superset/utils/date_parser.py index aee2c83a0d7c3..2ae92758eefac 100644 --- a/superset/utils/date_parser.py +++ b/superset/utils/date_parser.py @@ -32,6 +32,7 @@ Group, Optional as ppOptional, ParseException, + ParserElement, ParseResults, pyparsing_common, quotedString, @@ -40,6 +41,8 @@ from .core import memoized +ParserElement.enablePackrat() + logger = logging.getLogger(__name__) From 29d400c8778320f22e3cb5589adfbda1aec0fc93 Mon Sep 17 00:00:00 2001 From: Yongjie Zhao Date: Wed, 13 Jan 2021 20:50:37 +0800 Subject: [PATCH 2/2] remove parenthesis for decorator --- superset/utils/date_parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/utils/date_parser.py b/superset/utils/date_parser.py index 2ae92758eefac..bd979f3c07a01 100644 --- a/superset/utils/date_parser.py +++ b/superset/utils/date_parser.py @@ -378,7 +378,7 @@ def eval(self) -> datetime: 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,