* Don't use ast.Str to parse the version if it isn't available. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-html5lib?expand=0&rev=59
39 lines
1.4 KiB
Diff
39 lines
1.4 KiB
Diff
From b90dafff1bf342d34d539098013d0b9f318c7641 Mon Sep 17 00:00:00 2001
|
|
From: Andrew Sukach <andrew@sukach.org>
|
|
Date: Fri, 12 Sep 2025 21:53:31 -0700
|
|
Subject: [PATCH] `setup.py`: fix version parsing on Python 3.14 (ast.Str
|
|
removed)
|
|
|
|
Python 3.14 removes the ast.Str node type. String literals now appear
|
|
as ast.Constant(value=str).
|
|
Update the AST check to accept both ast.Str (for older Pythons) and
|
|
ast.Constant with a string value (for Python 3.8+), allowing html5lib to
|
|
build successfully on Python 3.14 while remaining compatible with older
|
|
version.
|
|
---
|
|
setup.py | 11 ++++++++---
|
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/setup.py b/setup.py
|
|
index 30ee0575..42ab6f67 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -92,9 +92,14 @@ def default_environment():
|
|
for a in assignments:
|
|
if (len(a.targets) == 1 and
|
|
isinstance(a.targets[0], ast.Name) and
|
|
- a.targets[0].id == "__version__" and
|
|
- isinstance(a.value, ast.Str)):
|
|
- version = a.value.s
|
|
+ a.targets[0].id == "__version__"):
|
|
+ if hasattr(ast, "Str") and isinstance(a.value, ast.Str):
|
|
+ version = a.value.s
|
|
+ elif (hasattr(ast, "Constant")
|
|
+ and isinstance(a.value, ast.Constant)
|
|
+ and isinstance(a.value.value, str)):
|
|
+ version = a.value.value
|
|
+assert version is not None
|
|
|
|
setup(name='html5lib',
|
|
version=version,
|