From 31171d7ae6b3800a204fd8383a686599ab449bb3 Mon Sep 17 00:00:00 2001 From: Batuhan Taskaya Date: Sun, 28 Jun 2020 18:04:42 +0300 Subject: [PATCH] Handle 3.9>= f-string errors --- parso/normalizer.py | 4 ++-- parso/python/errors.py | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/parso/normalizer.py b/parso/normalizer.py index 53193c8..09fde99 100644 --- a/parso/normalizer.py +++ b/parso/normalizer.py @@ -163,7 +163,7 @@ class Rule(object): def get_node(self, node): return node - def _get_message(self, message): + def _get_message(self, message, node): if message is None: message = self.message if message is None: @@ -176,7 +176,7 @@ class Rule(object): if code is None: raise ValueError("The error code on the class is not set.") - message = self._get_message(message) + message = self._get_message(message, node) self._normalizer.add_issue(node, code, message) diff --git a/parso/python/errors.py b/parso/python/errors.py index c34995e..2095eb6 100644 --- a/parso/python/errors.py +++ b/parso/python/errors.py @@ -444,8 +444,8 @@ class ErrorFinder(Normalizer): class IndentationRule(Rule): code = 903 - def _get_message(self, message): - message = super(IndentationRule, self)._get_message(message) + def _get_message(self, message, node): + message = super(IndentationRule, self)._get_message(message, node) return "IndentationError: " + message @@ -469,8 +469,10 @@ class ErrorFinderConfig(NormalizerConfig): class SyntaxRule(Rule): code = 901 - def _get_message(self, message): - message = super(SyntaxRule, self)._get_message(message) + def _get_message(self, message, node): + message = super(SyntaxRule, self)._get_message(message, node) + if search_ancestor(node, "fstring") and self._normalizer.version >= (3, 9): + message = "f-string: " + message return "SyntaxError: " + message