https://bugs.gentoo.org/965490 https://github.com/html5lib/html5lib-python/pull/589 From b90dafff1bf342d34d539098013d0b9f318c7641 Mon Sep 17 00:00:00 2001 From: Andrew Sukach 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,