From 586f3dbe15139cafb2a6ffb82cea146906561844 Mon Sep 17 00:00:00 2001 From: Irit Katriel Date: Fri, 25 Dec 2020 17:04:31 +0000 Subject: bpo-28964: add line number of node (if available) to ast.literal_eval error messages (GH-23677) --- Lib/ast.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Lib/ast.py') diff --git a/Lib/ast.py b/Lib/ast.py index 7275fe28ba..845c80c2bb 100644 --- a/Lib/ast.py +++ b/Lib/ast.py @@ -63,7 +63,10 @@ def literal_eval(node_or_string): if isinstance(node_or_string, Expression): node_or_string = node_or_string.body def _raise_malformed_node(node): - raise ValueError(f'malformed node or string: {node!r}') + msg = "malformed node or string" + if lno := getattr(node, 'lineno', None): + msg += f' on line {lno}' + raise ValueError(msg + f': {node!r}') def _convert_num(node): if not isinstance(node, Constant) or type(node.value) not in (int, float, complex): _raise_malformed_node(node) -- cgit v1.2.1