Files
meta-openembedded/meta-python/recipes-devtools/python/python3-html5lib/0001-setup.py-fix-version-parsing-on-Python-3.14-ast.Str-.patch
2026-01-19 20:47:10 -08:00

42 lines
1.6 KiB
Diff

From 39db97412da6b9f4918ae1350ae9561be9af48ea 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.
Upstream-Status: Submitted [https://github.com/html5lib/html5lib-python/pull/589]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
setup.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/setup.py b/setup.py
index f84c128..c393c9c 100644
--- a/setup.py
+++ b/setup.py
@@ -89,9 +89,14 @@ with open(join(here, "html5lib", "__init__.py"), "rb") as init_file:
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,