From c5cb87104d605e6d991309d14601abedacc740ab Mon Sep 17 00:00:00 2001 From: Yiming Huang Date: Wed, 3 Dec 2025 06:06:56 +0000 Subject: [PATCH] fix: support ast.Index, ast.ExtSlice in py3.8 when use subscript --- varname/utils.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/varname/utils.py b/varname/utils.py index f720514..1475182 100644 --- a/varname/utils.py +++ b/varname/utils.py @@ -284,10 +284,15 @@ def node_name( name = type(node).__name__ if isinstance(node, ast.Subscript): + node_slice = node.slice + if isinstance(node_slice, ast.Index): + node_slice = node.slice.value + elif isinstance(node_slice, ast.ExtSlice): + node_slice = ast.Tuple(node_slice.dims) try: - return f"{node_name(node.value)}[{node_name(node.slice, True)}]" + return f"{node_name(node.value)}[{node_name(node_slice, True)}]" except ImproperUseError: - name = f"{node_name(node.value)}[{type(node.slice).__name__}]" + name = f"{node_name(node.value)}[{type(node_slice).__name__}]" raise ImproperUseError( f"Node {name!r} detected, but only following nodes are supported: \n"