summaryrefslogtreecommitdiff
path: root/astroid
diff options
context:
space:
mode:
authorMarc Mueller <30130371+cdce8p@users.noreply.github.com>2023-04-24 10:57:36 +0200
committerMarc Mueller <30130371+cdce8p@users.noreply.github.com>2023-04-24 10:57:36 +0200
commitc9da8f3e5874e0169ec9ebb26836d65573fa4ae4 (patch)
tree8b0e53ab967de68e5088882d05bd9871a052654d /astroid
parent65670d74cd28fa63aa7418272b04140daec13322 (diff)
parent420a59a7da81828e982fabfd34e1533ffddf6400 (diff)
downloadastroid-git-c9da8f3e5874e0169ec9ebb26836d65573fa4ae4.tar.gz
Merge branch 'maintenance/2.15.x' into main
Diffstat (limited to 'astroid')
-rw-r--r--astroid/__init__.py1
-rw-r--r--astroid/node_classes.py1
-rw-r--r--astroid/nodes/__init__.py2
-rw-r--r--astroid/nodes/as_string.py22
-rw-r--r--astroid/nodes/node_ng.py2
-rw-r--r--astroid/rebuilder.py6
6 files changed, 30 insertions, 4 deletions
diff --git a/astroid/__init__.py b/astroid/__init__.py
index 6711563a..d1251191 100644
--- a/astroid/__init__.py
+++ b/astroid/__init__.py
@@ -163,6 +163,7 @@ from astroid.nodes import ( # pylint: disable=redefined-builtin (Ellipsis)
Subscript,
TryExcept,
TryFinally,
+ TryStar,
Tuple,
UnaryOp,
Unknown,
diff --git a/astroid/node_classes.py b/astroid/node_classes.py
index de375917..fecb006e 100644
--- a/astroid/node_classes.py
+++ b/astroid/node_classes.py
@@ -76,6 +76,7 @@ from astroid.nodes.node_classes import ( # pylint: disable=redefined-builtin (E
Subscript,
TryExcept,
TryFinally,
+ TryStar,
Tuple,
UnaryOp,
Unknown,
diff --git a/astroid/nodes/__init__.py b/astroid/nodes/__init__.py
index 9b75ee65..d67c6a5b 100644
--- a/astroid/nodes/__init__.py
+++ b/astroid/nodes/__init__.py
@@ -197,6 +197,7 @@ ALL_NODE_CLASSES = (
Subscript,
TryExcept,
TryFinally,
+ TryStar,
Tuple,
UnaryOp,
Unknown,
@@ -291,6 +292,7 @@ __all__ = (
"Subscript",
"TryExcept",
"TryFinally",
+ "TryStar",
"Tuple",
"UnaryOp",
"Unknown",
diff --git a/astroid/nodes/as_string.py b/astroid/nodes/as_string.py
index 48d933c7..49ef1b77 100644
--- a/astroid/nodes/as_string.py
+++ b/astroid/nodes/as_string.py
@@ -9,6 +9,8 @@ from __future__ import annotations
from collections.abc import Iterator
from typing import TYPE_CHECKING
+from astroid import nodes
+
if TYPE_CHECKING:
from astroid.nodes import Const
from astroid.nodes.node_classes import (
@@ -254,13 +256,16 @@ class AsStringVisitor:
return ""
def visit_excepthandler(self, node) -> str:
+ n = "except"
+ if isinstance(getattr(node, "parent", None), nodes.TryStar):
+ n = "except*"
if node.type:
if node.name:
- excs = f"except {node.type.accept(self)} as {node.name.accept(self)}"
+ excs = f"{n} {node.type.accept(self)} as {node.name.accept(self)}"
else:
- excs = f"except {node.type.accept(self)}"
+ excs = f"{n} {node.type.accept(self)}"
else:
- excs = "except"
+ excs = f"{n}"
return f"{excs}:\n{self._stmt_list(node.body)}"
def visit_empty(self, node) -> str:
@@ -495,6 +500,17 @@ class AsStringVisitor:
self._stmt_list(node.body), self._stmt_list(node.finalbody)
)
+ def visit_trystar(self, node) -> str:
+ """return an astroid.TryStar node as string"""
+ trys = [f"try:\n{self._stmt_list(node.body)}"]
+ for handler in node.handlers:
+ trys.append(handler.accept(self))
+ if node.orelse:
+ trys.append(f"else:\n{self._stmt_list(node.orelse)}")
+ if node.finalbody:
+ trys.append(f"finally:\n{self._stmt_list(node.finalbody)}")
+ return "\n".join(trys)
+
def visit_tuple(self, node) -> str:
"""return an astroid.Tuple node as string"""
if len(node.elts) == 1:
diff --git a/astroid/nodes/node_ng.py b/astroid/nodes/node_ng.py
index bc981b91..41abc451 100644
--- a/astroid/nodes/node_ng.py
+++ b/astroid/nodes/node_ng.py
@@ -587,7 +587,7 @@ class NodeNG:
yield from ()
def _infer_name(self, frame, name):
- # overridden for ImportFrom, Import, Global, TryExcept and Arguments
+ # overridden for ImportFrom, Import, Global, TryExcept, TryStar and Arguments
pass
def _infer(
diff --git a/astroid/rebuilder.py b/astroid/rebuilder.py
index dd5c74f2..64c1c123 100644
--- a/astroid/rebuilder.py
+++ b/astroid/rebuilder.py
@@ -422,6 +422,12 @@ class TreeRebuilder:
) -> nodes.TryExcept | nodes.TryFinally:
...
+ if sys.version_info >= (3, 11):
+
+ @overload
+ def visit(self, node: ast.TryStar, parent: NodeNG) -> nodes.TryStar:
+ ...
+
@overload
def visit(self, node: ast.Tuple, parent: NodeNG) -> nodes.Tuple:
...