Rebuild with python 3.14

This commit is contained in:
2026-05-06 20:26:20 +03:00
parent eb964a8d99
commit 2275f1d248
4 changed files with 79 additions and 1 deletions
+38
View File
@@ -0,0 +1,38 @@
From b90dafff1bf342d34d539098013d0b9f318c7641 Mon Sep 17 00:00:00 2001
From: Andrew Sukach <[email protected]>
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,
@@ -0,0 +1,30 @@
From 1dbc19cd6db72cb919885827bc4883423e0cb647 Mon Sep 17 00:00:00 2001
From: Rui Chen <[email protected]>
Date: Mon, 9 Feb 2026 18:36:08 -0500
Subject: [PATCH] setup.py: handle missing pkg_resources import
Signed-off-by: Rui Chen <[email protected]>
---
setup.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/setup.py b/setup.py
index 30ee0575..768c314f 100644
--- a/setup.py
+++ b/setup.py
@@ -6,9 +6,12 @@
from os.path import join, dirname
from setuptools import setup, find_packages, __version__ as setuptools_version
-from pkg_resources import parse_version
-
-import pkg_resources
+try:
+ from pkg_resources import parse_version
+ import pkg_resources
+except ModuleNotFoundError:
+ from setuptools._vendor.packaging.version import parse as parse_version
+ pkg_resources = None
try:
import _markerlib.markers