From 1df38a85fdf70a4d19001ca862a3d7d0c05a9214 Mon Sep 17 00:00:00 2001 From: Dmitry Shachnev Date: Sat, 27 Sep 2025 13:39:13 +0300 Subject: [PATCH 1/2] Fix KeyError: 'backrefs' with Docutils 0.22 That attribute is no longer present since this Docutils commit: https://sourceforge.net/p/docutils/code/9684/ Fixes #206. --- sphinx_tabs/tabs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: sphinx-tabs-3.4.7/sphinx_tabs/tabs.py =================================================================== --- sphinx-tabs-3.4.7.orig/sphinx_tabs/tabs.py +++ sphinx-tabs-3.4.7/sphinx_tabs/tabs.py @@ -66,7 +66,7 @@ def visit(translator, node): attrs.pop("ids") attrs.pop("names") attrs.pop("dupnames") - attrs.pop("backrefs") + attrs.pop("backrefs", None) text = translator.starttag(node, node.tagname, **attrs) translator.body.append(text.strip()) Index: sphinx-tabs-3.4.7/tests/conftest.py =================================================================== --- sphinx-tabs-3.4.7.orig/tests/conftest.py +++ sphinx-tabs-3.4.7/tests/conftest.py @@ -2,6 +2,7 @@ import os import pytest from pathlib import Path from bs4 import BeautifulSoup +import docutils import sphinx from sphinx_tabs.tabs import JS_FILES, CSS_FILES @@ -132,6 +133,9 @@ def get_sphinx_app_doctree(file_regressi '', "", ) + if docutils.__version_info__ < (0, 22): + text = text.replace('="False"', '="0"') + text = text.replace('linenos="True"', 'linenos="1"') file_regression.check(text, extension=extension) return doctree Index: sphinx-tabs-3.4.7/tests/test_build/test_conditional_assets_html_assets_policy_index_.xml =================================================================== --- sphinx-tabs-3.4.7.orig/tests/test_build/test_conditional_assets_html_assets_policy_index_.xml +++ sphinx-tabs-3.4.7/tests/test_build/test_conditional_assets_html_assets_policy_index_.xml @@ -1,6 +1,6 @@ -