Skip to content

Commit caf7262

Browse files
committed
Fix InventoryItem deprecation warning (#173)
1 parent a1ef88d commit caf7262

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

docs/src/release_notes.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ sphinx-codeautolink adheres to
1010

1111
Unreleased
1212
----------
13+
- Fix Sphinx InventoryItem deprecation warning (:issue:`173`)
1314
- Add support for the DIRHTML Sphinx builder (:issue:`188`)
1415

1516
0.17.2 (2025-03-02)

pyproject.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ version = {attr = "sphinx_codeautolink.__version__"}
4848
[tool.pytest.ini_options]
4949
python_files = "*.py"
5050
testpaths = ["tests"]
51+
filterwarnings = [
52+
"error",
53+
"ignore:.*IPython:UserWarning",
54+
]
5155

5256
[tool.coverage.run]
5357
source = ["src"]

src/sphinx_codeautolink/extension/__init__.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from pathlib import Path
88
from traceback import print_exc
99

10+
from sphinx import version_info as sphinx_version
1011
from sphinx.ext.intersphinx import InventoryAdapter
1112
from sphinx.util import import_object
1213

@@ -177,7 +178,9 @@ def make_inventory(app):
177178
}
178179
inter_inv = InventoryAdapter(app.env).main_inventory
179180
transposed = transpose_inventory(inter_inv, relative_to=app.outdir)
180-
transposed.update(transpose_inventory(inventory, relative_to=app.outdir))
181+
transposed.update(
182+
transpose_inventory(inventory, relative_to=app.outdir, use_tuple=True)
183+
)
181184
return transposed
182185

183186
@print_exceptions()
@@ -296,7 +299,9 @@ def apply_links(self, app, exception) -> None:
296299
self.cache.write()
297300

298301

299-
def transpose_inventory(inv: dict, relative_to: str) -> dict[str, str]:
302+
def transpose_inventory(
303+
inv: dict, relative_to: str, *, use_tuple: bool = False
304+
) -> dict[str, str]:
300305
"""
301306
Transpose Sphinx inventory from {type: {name: (..., location)}} to {name: location}.
302307
@@ -308,13 +313,18 @@ def transpose_inventory(inv: dict, relative_to: str) -> dict[str, str]:
308313
Sphinx inventory
309314
relative_to
310315
if a local file is found, transform it to be relative to this dir
316+
use_tuple
317+
force using Sphinx inventory tuple interface,
318+
TODO: move to class interface if it becomes public (#173)
311319
"""
312320
transposed = {}
313321
for type_, items in inv.items():
314322
if not type_.startswith("py:"):
315323
continue
316324
for item, info in items.items():
317-
location = info[2]
325+
location = (
326+
info.uri if not use_tuple and sphinx_version >= (8, 2) else info[2]
327+
)
318328
if not location.startswith("http"):
319329
location = str(Path(location).relative_to(relative_to))
320330
transposed[item] = location

0 commit comments

Comments
 (0)