[3.9] gh-90953: Don't use deprecated AST nodes in clinic.py (GH-104322) (GH-140854)

(cherry picked from commit fe694a6db620062f467469bd2bb987315d72fd62)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Miss Islington (bot) 2025-10-31 17:56:55 +01:00 committed by GitHub
parent 2e6150adcc
commit fde6ac1290
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4518,10 +4518,8 @@ class DSLParser:
c_default = "NULL"
elif (isinstance(expr, ast.BinOp) or
(isinstance(expr, ast.UnaryOp) and
not (isinstance(expr.operand, ast.Num) or
(hasattr(ast, 'Constant') and
isinstance(expr.operand, ast.Constant) and
type(expr.operand.value) in (int, float, complex)))
not (isinstance(expr.operand, ast.Constant) and
type(expr.operand.value) in {int, float, complex})
)):
c_default = kwargs.get("c_default")
if not (isinstance(c_default, str) and c_default):
@ -4613,14 +4611,10 @@ class DSLParser:
self.function.parameters[parameter_name] = p
def parse_converter(self, annotation):
if (hasattr(ast, 'Constant') and
isinstance(annotation, ast.Constant) and
if (isinstance(annotation, ast.Constant) and
type(annotation.value) is str):
return annotation.value, True, {}
if isinstance(annotation, ast.Str):
return annotation.s, True, {}
if isinstance(annotation, ast.Name):
return annotation.id, False, {}