Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-mkdocstrings for
openSUSE:Factory checked in at 2026-07-21 23:08:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mkdocstrings (Old)
and /work/SRC/openSUSE:Factory/.python-mkdocstrings.new.24530 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mkdocstrings"
Tue Jul 21 23:08:58 2026 rev:2 rq:1366800 version:1.0.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-mkdocstrings/python-mkdocstrings.changes
2026-04-17 20:54:18.689194443 +0200
+++
/work/SRC/openSUSE:Factory/.python-mkdocstrings.new.24530/python-mkdocstrings.changes
2026-07-21 23:09:08.251706843 +0200
@@ -1,0 +2,12 @@
+Mon Jul 20 15:24:34 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 1.0.6:
+ * Stop propagating Zensical's `zrelpath` treeprocessor and its
+ `preview` extension (4732798 by Timothée Mazzucotelli).
+ Issue-zensical-818
+ * Parse inventory project and version (acc0da3 by Timothée
+ Mazzucotelli).
+ * <small>Compare with 1.0.3</small>
+ * Add timeout when downloading inventories (10 seconds)
+
+-------------------------------------------------------------------
Old:
----
mkdocstrings-1.0.3.tar.gz
New:
----
mkdocstrings-1.0.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-mkdocstrings.spec ++++++
--- /var/tmp/diff_new_pack.ghhJG8/_old 2026-07-21 23:09:09.635754162 +0200
+++ /var/tmp/diff_new_pack.ghhJG8/_new 2026-07-21 23:09:09.635754162 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-mkdocstrings
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,17 +15,18 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
+
%{?sle15_python_module_pythons}
Name: python-mkdocstrings
-Version: 1.0.3
+Version: 1.0.6
Release: 0
Summary: Automatic documentation from sources, for MkDocs
License: ISC
URL: https://github.com/mkdocstrings/mkdocstrings
Source:
https://files.pythonhosted.org/packages/source/m/mkdocstrings/mkdocstrings-%{version}.tar.gz
-BuildRequires: python-rpm-macros
BuildRequires: %{python_module pdm-backend}
BuildRequires: %{python_module pip}
+BuildRequires: python-rpm-macros
# SECTION test requirements
BuildRequires: %{python_module Jinja2 >= 2.11.1}
BuildRequires: %{python_module Markdown >= 3.3}
++++++ mkdocstrings-1.0.3.tar.gz -> mkdocstrings-1.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/CHANGELOG.md
new/mkdocstrings-1.0.6/CHANGELOG.md
--- old/mkdocstrings-1.0.3/CHANGELOG.md 2026-02-07 15:31:16.076285800 +0100
+++ new/mkdocstrings-1.0.6/CHANGELOG.md 2026-07-11 21:37:39.800620800 +0200
@@ -6,6 +6,30 @@
and this project adheres to [Semantic
Versioning](http://semver.org/spec/v2.0.0.html).
<!-- insertion marker -->
+## [1.0.6](https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.6) -
2026-07-11
+
+<small>[Compare with
1.0.5](https://github.com/mkdocstrings/mkdocstrings/compare/1.0.5...1.0.6)</small>
+
+### Bug Fixes
+
+- Stop propagating Zensical's `zrelpath` treeprocessor and its `preview`
extension
([4732798](https://github.com/mkdocstrings/mkdocstrings/commit/473279816aff4cc8ee3215fdf8b2d186517fc63d)
by Timothée Mazzucotelli).
[Issue-zensical-818](https://github.com/zensical/zensical/issues/818)
+
+## [1.0.5](https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.5) -
2026-07-10
+
+<small>[Compare with
1.0.4](https://github.com/mkdocstrings/mkdocstrings/compare/1.0.4...1.0.5)</small>
+
+### Bug Fixes
+
+- Parse inventory project and version
([acc0da3](https://github.com/mkdocstrings/mkdocstrings/commit/acc0da32d11428ea9c60f8e50f90df329f2e6460)
by Timothée Mazzucotelli).
+
+## [1.0.4](https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.4) -
2026-04-15
+
+<small>[Compare with
1.0.3](https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4)</small>
+
+### Bug Fixes
+
+- Add timeout when downloading inventories (10 seconds)
([3d1969a](https://github.com/mkdocstrings/mkdocstrings/commit/3d1969a279ea396792c682810d029503e48d8fcd)
by Simon Lloyd).
[Issue-819](https://github.com/mkdocstrings/mkdocstrings/issues/819)
+
## [1.0.3](https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.3) -
2026-02-07
<small>[Compare with
1.0.2](https://github.com/mkdocstrings/mkdocstrings/compare/1.0.2...1.0.3)</small>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/CONTRIBUTING.md
new/mkdocstrings-1.0.6/CONTRIBUTING.md
--- old/mkdocstrings-1.0.3/CONTRIBUTING.md 2026-02-05 18:35:00.602334300
+0100
+++ new/mkdocstrings-1.0.6/CONTRIBUTING.md 2026-04-15 10:54:06.436562000
+0200
@@ -2,6 +2,8 @@
Contributions are welcome, and they are greatly appreciated! Every little bit
helps, and credit will always be given.
+**Please always create an issue before working on a new feature or a bug fix,
so that we can discuss the implementation and make sure that your work will be
merged.**
+
## Environment setup
Nothing easier!
@@ -38,8 +40,7 @@
## Tasks
-The entry-point to run commands and tasks is the `make` Python script, located
in the `scripts` directory. Try running `make` to show the available commands
and tasks. The *commands* do not need the Python dependencies to be installed,
-while the *tasks* do. The cross-platform tasks are written in Python, thanks
to [duty](https://github.com/pawamoy/duty).
+The entry-point to run commands and tasks is the `make` Python script, located
in the `scripts` directory. Try running `make` to show the available commands
and tasks. The *commands* do not need the Python dependencies to be installed,
while the *tasks* do. The cross-platform tasks are written in Python, thanks to
[duty](https://github.com/pawamoy/duty).
If you work in VSCode, we provide [an action to configure
VSCode](https://pawamoy.github.io/copier-uv/work/#vscode-setup) for the project.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/LICENSE
new/mkdocstrings-1.0.6/LICENSE
--- old/mkdocstrings-1.0.3/LICENSE 2025-07-23 01:58:10.935877800 +0200
+++ new/mkdocstrings-1.0.6/LICENSE 2026-04-15 10:54:04.327815000 +0200
@@ -1,6 +1,6 @@
ISC License
-Copyright (c) 2019, Timothée Mazzucotelli
+Copyright (c) 2019, Timothée Mazzucotelli and contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/PKG-INFO
new/mkdocstrings-1.0.6/PKG-INFO
--- old/mkdocstrings-1.0.3/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/mkdocstrings-1.0.6/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: mkdocstrings
-Version: 1.0.3
+Version: 1.0.6
Summary: Automatic documentation from sources, for MkDocs.
Keywords: mkdocs,mkdocs-plugin,docstrings,autodoc,documentation
Author-Email: =?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <[email protected]>
@@ -47,7 +47,7 @@
# mkdocstrings
[](https://github.com/mkdocstrings/mkdocstrings/actions?query=workflow%3Aci)
-[](https://mkdocstrings.github.io/)
+[](https://mkdocstrings.github.io/mkdocstrings/)
[](https://pypi.org/project/mkdocstrings/)
[](https://anaconda.org/conda-forge/mkdocstrings)
[](https://app.gitter.im/#/room/#mkdocstrings:gitter.im)
@@ -66,7 +66,7 @@
- [**Language-agnostic:**](https://mkdocstrings.github.io/handlers/overview/)
just like *MkDocs*, *mkdocstrings* is written in Python but is
language-agnostic.
It means you can use it with any programming language, as long as there is a
- [**handler**](https://mkdocstrings.github.io/reference/handlers/base/) for
it.
+
[**handler**](https://mkdocstrings.github.io/reference/api/#mkdocstrings.BaseHandler)
for it.
We currently have
[handlers](https://mkdocstrings.github.io/handlers/overview/) for the
[C](https://mkdocstrings.github.io/c/),
[Crystal](https://mkdocstrings.github.io/crystal/),
@@ -188,7 +188,6 @@
<div id="silver-sponsors"><b>Silver sponsors</b><p>
<a href="https://fastapi.tiangolo.com/"><img alt="FastAPI"
src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png"
style="height: 200px; "></a><br>
-<a href="https://docs.pydantic.dev/latest/"><img alt="Pydantic"
src="https://pydantic.dev/assets/for-external/pydantic_logfire_logo_endorsed_lithium_rgb.svg"
style="height: 180px; "></a><br>
</p></div>
<div id="bronze-sponsors"><b>Bronze sponsors</b><p>
@@ -211,7 +210,7 @@
<a href="https://github.com/BenHammersley"><img alt="BenHammersley"
src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/trevorWieland"><img alt="trevorWieland"
src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli"
src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4"
style="height: 32px; border-radius: 100%;"></a>
-<a href="https://github.com/analog-cbarber"><img alt="analog-cbarber"
src="https://avatars.githubusercontent.com/u/7408243?u=642fc2bdcc9904089c62fe5aec4e03ace32da67d&v=4"
style="height: 32px; border-radius: 100%;"></a>
+<a href="https://github.com/analog-cbarber"><img alt="analog-cbarber"
src="https://avatars.githubusercontent.com/u/7408243?u=fe0e7bf2882d1c9c901a341c2502e1518466527a&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/OdinManiac"><img alt="OdinManiac"
src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/rstudio-sponsorship"><img
alt="rstudio-sponsorship"
src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/schlich"><img alt="schlich"
src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4"
style="height: 32px; border-radius: 100%;"></a>
@@ -223,17 +222,15 @@
<a href="https://github.com/activeloopai"><img alt="activeloopai"
src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px;
border-radius: 100%;"></a>
<a href="https://github.com/roboflow"><img alt="roboflow"
src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px;
border-radius: 100%;"></a>
<a href="https://github.com/cmclaughlin"><img alt="cmclaughlin"
src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4"
style="height: 32px; border-radius: 100%;"></a>
-<a href="https://github.com/blaisep"><img alt="blaisep"
src="https://avatars.githubusercontent.com/u/254456?u=97d584b7c0a6faf583aa59975df4f993f671d121&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/RapidataAI"><img alt="RapidataAI"
src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height:
32px; border-radius: 100%;"></a>
<a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau"
src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate"
src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height:
32px; border-radius: 100%;"></a>
<a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato"
src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/ChargeStorm"><img alt="ChargeStorm"
src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px;
border-radius: 100%;"></a>
-<a href="https://github.com/Alphadelta14"><img alt="Alphadelta14"
src="https://avatars.githubusercontent.com/u/480845?v=4" style="height: 32px;
border-radius: 100%;"></a>
<a href="https://github.com/Cusp-AI"><img alt="Cusp-AI"
src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height:
32px; border-radius: 100%;"></a>
</p></div>
-*And 7 more private sponsor(s).*
+*And 4 more private sponsor(s).*
<!-- sponsors-end -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/README.md
new/mkdocstrings-1.0.6/README.md
--- old/mkdocstrings-1.0.3/README.md 2026-02-05 18:35:00.602334300 +0100
+++ new/mkdocstrings-1.0.6/README.md 2026-07-10 12:48:02.433773500 +0200
@@ -1,7 +1,7 @@
# mkdocstrings
[](https://github.com/mkdocstrings/mkdocstrings/actions?query=workflow%3Aci)
-[](https://mkdocstrings.github.io/)
+[](https://mkdocstrings.github.io/mkdocstrings/)
[](https://pypi.org/project/mkdocstrings/)
[](https://anaconda.org/conda-forge/mkdocstrings)
[](https://app.gitter.im/#/room/#mkdocstrings:gitter.im)
@@ -20,7 +20,7 @@
- [**Language-agnostic:**](https://mkdocstrings.github.io/handlers/overview/)
just like *MkDocs*, *mkdocstrings* is written in Python but is
language-agnostic.
It means you can use it with any programming language, as long as there is a
- [**handler**](https://mkdocstrings.github.io/reference/handlers/base/) for
it.
+
[**handler**](https://mkdocstrings.github.io/reference/api/#mkdocstrings.BaseHandler)
for it.
We currently have
[handlers](https://mkdocstrings.github.io/handlers/overview/) for the
[C](https://mkdocstrings.github.io/c/),
[Crystal](https://mkdocstrings.github.io/crystal/),
@@ -142,7 +142,6 @@
<div id="silver-sponsors"><b>Silver sponsors</b><p>
<a href="https://fastapi.tiangolo.com/"><img alt="FastAPI"
src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png"
style="height: 200px; "></a><br>
-<a href="https://docs.pydantic.dev/latest/"><img alt="Pydantic"
src="https://pydantic.dev/assets/for-external/pydantic_logfire_logo_endorsed_lithium_rgb.svg"
style="height: 180px; "></a><br>
</p></div>
<div id="bronze-sponsors"><b>Bronze sponsors</b><p>
@@ -165,7 +164,7 @@
<a href="https://github.com/BenHammersley"><img alt="BenHammersley"
src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/trevorWieland"><img alt="trevorWieland"
src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli"
src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4"
style="height: 32px; border-radius: 100%;"></a>
-<a href="https://github.com/analog-cbarber"><img alt="analog-cbarber"
src="https://avatars.githubusercontent.com/u/7408243?u=642fc2bdcc9904089c62fe5aec4e03ace32da67d&v=4"
style="height: 32px; border-radius: 100%;"></a>
+<a href="https://github.com/analog-cbarber"><img alt="analog-cbarber"
src="https://avatars.githubusercontent.com/u/7408243?u=fe0e7bf2882d1c9c901a341c2502e1518466527a&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/OdinManiac"><img alt="OdinManiac"
src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/rstudio-sponsorship"><img
alt="rstudio-sponsorship"
src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/schlich"><img alt="schlich"
src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4"
style="height: 32px; border-radius: 100%;"></a>
@@ -177,17 +176,15 @@
<a href="https://github.com/activeloopai"><img alt="activeloopai"
src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px;
border-radius: 100%;"></a>
<a href="https://github.com/roboflow"><img alt="roboflow"
src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px;
border-radius: 100%;"></a>
<a href="https://github.com/cmclaughlin"><img alt="cmclaughlin"
src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4"
style="height: 32px; border-radius: 100%;"></a>
-<a href="https://github.com/blaisep"><img alt="blaisep"
src="https://avatars.githubusercontent.com/u/254456?u=97d584b7c0a6faf583aa59975df4f993f671d121&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/RapidataAI"><img alt="RapidataAI"
src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height:
32px; border-radius: 100%;"></a>
<a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau"
src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate"
src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height:
32px; border-radius: 100%;"></a>
<a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato"
src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4"
style="height: 32px; border-radius: 100%;"></a>
<a href="https://github.com/ChargeStorm"><img alt="ChargeStorm"
src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px;
border-radius: 100%;"></a>
-<a href="https://github.com/Alphadelta14"><img alt="Alphadelta14"
src="https://avatars.githubusercontent.com/u/480845?v=4" style="height: 32px;
border-radius: 100%;"></a>
<a href="https://github.com/Cusp-AI"><img alt="Cusp-AI"
src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height:
32px; border-radius: 100%;"></a>
</p></div>
-*And 7 more private sponsor(s).*
+*And 4 more private sponsor(s).*
<!-- sponsors-end -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/config/.ruff_cache/.gitignore
new/mkdocstrings-1.0.6/config/.ruff_cache/.gitignore
--- old/mkdocstrings-1.0.3/config/.ruff_cache/.gitignore 1970-01-01
01:00:00.000000000 +0100
+++ new/mkdocstrings-1.0.6/config/.ruff_cache/.gitignore 2026-05-05
10:16:20.226924200 +0200
@@ -0,0 +1,2 @@
+# Automatically created by ruff.
+*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/config/.ruff_cache/CACHEDIR.TAG
new/mkdocstrings-1.0.6/config/.ruff_cache/CACHEDIR.TAG
--- old/mkdocstrings-1.0.3/config/.ruff_cache/CACHEDIR.TAG 1970-01-01
01:00:00.000000000 +0100
+++ new/mkdocstrings-1.0.6/config/.ruff_cache/CACHEDIR.TAG 2026-05-05
10:16:20.226924200 +0200
@@ -0,0 +1 @@
+Signature: 8a477f597d28d172789f06886806bc55
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/config/ruff.toml
new/mkdocstrings-1.0.6/config/ruff.toml
--- old/mkdocstrings-1.0.3/config/ruff.toml 2026-02-05 18:43:20.968256700
+0100
+++ new/mkdocstrings-1.0.6/config/ruff.toml 2026-04-15 10:57:42.373919000
+0200
@@ -1,5 +1,6 @@
-target-version = "py39"
+target-version = "py310"
line-length = 120
+output-format = "concise"
[lint]
exclude = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/config/ty.toml
new/mkdocstrings-1.0.6/config/ty.toml
--- old/mkdocstrings-1.0.3/config/ty.toml 2026-02-05 18:55:22.336795000
+0100
+++ new/mkdocstrings-1.0.6/config/ty.toml 2026-04-15 10:57:51.004196400
+0200
@@ -1,2 +1,6 @@
[src]
exclude = ["tests/fixtures"]
+
+[terminal]
+error-on-warning = true
+output-format = "concise"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/config/vscode/launch.json
new/mkdocstrings-1.0.6/config/vscode/launch.json
--- old/mkdocstrings-1.0.3/config/vscode/launch.json 2025-07-23
01:58:10.936070200 +0200
+++ new/mkdocstrings-1.0.6/config/vscode/launch.json 2026-04-15
10:54:04.276192700 +0200
@@ -23,11 +23,10 @@
"name": "docs",
"type": "debugpy",
"request": "launch",
- "module": "mkdocs",
+ "module": "zensical",
"justMyCode": false,
"args": [
"serve",
- "-v"
]
},
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/config/vscode/settings.json
new/mkdocstrings-1.0.6/config/vscode/settings.json
--- old/mkdocstrings-1.0.3/config/vscode/settings.json 2026-02-05
18:34:51.527169700 +0100
+++ new/mkdocstrings-1.0.6/config/vscode/settings.json 2026-04-15
10:54:04.273369800 +0200
@@ -16,6 +16,7 @@
"ruff.lint.args": [
"--config=config/ruff.toml"
],
+ "ty.configurationFile": "config/ty.toml",
"yaml.schemas": {
"https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/docs/.overrides/partials/comments.html
new/mkdocstrings-1.0.6/docs/.overrides/partials/comments.html
--- old/mkdocstrings-1.0.3/docs/.overrides/partials/comments.html
2025-07-23 01:58:10.936601200 +0200
+++ new/mkdocstrings-1.0.6/docs/.overrides/partials/comments.html
2026-04-15 10:54:06.436759500 +0200
@@ -1,5 +1,5 @@
<!-- Giscus -->
-<!--
https://squidfunk.github.io/mkdocs-material/setup/adding-a-comment-system/#giscus-integration
-->
+<!-- https://zensical.org/docs/setup/comment-system/#giscus-integration -->
<div id="feedback" style="display: none;">
<h2 id="__comments">Feedback</h2>
<script src="https://giscus.app/client.js"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/docs/.overrides/partials/path-item.html
new/mkdocstrings-1.0.6/docs/.overrides/partials/path-item.html
--- old/mkdocstrings-1.0.3/docs/.overrides/partials/path-item.html
2025-07-23 01:58:10.936661700 +0200
+++ new/mkdocstrings-1.0.6/docs/.overrides/partials/path-item.html
1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-{# Fix breadcrumbs for when mkdocs-section-index is used. #}
-{# See https://github.com/squidfunk/mkdocs-material/issues/7614. #}
-
-<!-- Render navigation link content -->
-{% macro render_content(nav_item) %}
- <span class="md-ellipsis">
- {{ nav_item.title }}
- </span>
-{% endmacro %}
-
-<!-- Render navigation item -->
-{% macro render(nav_item, ref=nav_item) %}
- {% if nav_item.is_page %}
- <li class="md-path__item">
- <a href="{{ nav_item.url | url }}" class="md-path__link">
- {{ render_content(ref) }}
- </a>
- </li>
- {% elif nav_item.children %}
- {{ render(nav_item.children | first, ref) }}
- {% endif %}
-{% endmacro %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/docs/css/apidocs.css
new/mkdocstrings-1.0.6/docs/css/apidocs.css
--- old/mkdocstrings-1.0.3/docs/css/apidocs.css 1970-01-01 01:00:00.000000000
+0100
+++ new/mkdocstrings-1.0.6/docs/css/apidocs.css 2026-04-15 10:54:04.248158700
+0200
@@ -0,0 +1,21 @@
+/* Mark external links as such. */
+a.external::after,
+a.autorefs-external::after {
+ /* https://primer.style/octicons/arrow-up-right-24 */
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"><path d="M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0
00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5
7.56v7.19c0 .414.336.75.75.75z"></path></svg>');
+ -webkit-mask-image: url('data:image/svg+xml,<svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.25
15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22
16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z"></path></svg>');
+ content: ' ';
+
+ display: inline-block;
+ vertical-align: middle;
+ position: relative;
+
+ height: 1em;
+ width: 1em;
+ background-color: currentColor;
+}
+
+a.external:hover::after,
+a.autorefs-external:hover::after {
+ background-color: var(--md-accent-fg-color);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/docs/css/material.css
new/mkdocstrings-1.0.6/docs/css/material.css
--- old/mkdocstrings-1.0.3/docs/css/material.css 2025-07-23
01:58:10.937153600 +0200
+++ new/mkdocstrings-1.0.6/docs/css/material.css 1970-01-01
01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-/* More space at the bottom of the page. */
-.md-main__inner {
- margin-bottom: 1.5rem;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/docs/css/mkdocstrings.css
new/mkdocstrings-1.0.6/docs/css/mkdocstrings.css
--- old/mkdocstrings-1.0.3/docs/css/mkdocstrings.css 2026-02-05
18:35:00.603050000 +0100
+++ new/mkdocstrings-1.0.6/docs/css/mkdocstrings.css 1970-01-01
01:00:00.000000000 +0100
@@ -1,82 +0,0 @@
-/* Indentation. */
-div.doc-contents:not(.first) {
- padding-left: 25px;
- border-left: .05rem solid var(--md-typeset-table-color);
-}
-
-/* Mark external links as such. */
-a.external::after,
-a.autorefs-external::after {
- /* https://primer.style/octicons/arrow-up-right-24 */
- mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"><path d="M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0
00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5
7.56v7.19c0 .414.336.75.75.75z"></path></svg>');
- -webkit-mask-image: url('data:image/svg+xml,<svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.25
15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22
16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z"></path></svg>');
- content: ' ';
-
- display: inline-block;
- vertical-align: middle;
- position: relative;
-
- height: 1em;
- width: 1em;
- background-color: currentColor;
-}
-
-a.external:hover::after,
-a.autorefs-external:hover::after {
- background-color: var(--md-accent-fg-color);
-}
-
-/* Avoid breaking parameters name, etc. in table cells. */
-td code {
- word-break: normal !important;
-}
-
-/* Hide parameters in ToC. */
-li.md-nav__item:has(> a[href*="("]) {
- display: none;
-}
-
-/* Tree-like output for backlinks. */
-.doc-backlink-list {
- --tree-clr: var(--md-default-fg-color);
- --tree-font-size: 1rem;
- --tree-item-height: 1;
- --tree-offset: 1rem;
- --tree-thickness: 1px;
- --tree-style: solid;
- display: grid;
- list-style: none !important;
-}
-
-.doc-backlink-list li > span:first-child {
- text-indent: .3rem;
-}
-.doc-backlink-list li {
- padding-inline-start: var(--tree-offset);
- border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);
- position: relative;
- margin-left: 0 !important;
-
- &:last-child {
- border-color: transparent;
- }
- &::before{
- content: '';
- position: absolute;
- top: calc(var(--tree-item-height) / 2 * -1 * var(--tree-font-size) +
var(--tree-thickness));
- left: calc(var(--tree-thickness) * -1);
- width: calc(var(--tree-offset) + var(--tree-thickness) * 2);
- height: calc(var(--tree-item-height) * var(--tree-font-size));
- border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);
- border-bottom: var(--tree-thickness) var(--tree-style) var(--tree-clr);
- }
- &::after{
- content: '';
- position: absolute;
- border-radius: 50%;
- background-color: var(--tree-clr);
- top: calc(var(--tree-item-height) / 2 * 1rem);
- left: var(--tree-offset) ;
- translate: calc(var(--tree-thickness) * -1) calc(var(--tree-thickness) *
-1);
- }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/duties.py
new/mkdocstrings-1.0.6/duties.py
--- old/mkdocstrings-1.0.3/duties.py 2026-02-05 18:49:06.144284500 +0100
+++ new/mkdocstrings-1.0.6/duties.py 2026-07-10 12:43:44.786940600 +0200
@@ -35,7 +35,7 @@
def _get_changelog_version() -> str:
changelog_version_re = re.compile(r"^## \[(\d+\.\d+\.\d+)\].*$")
with Path(__file__).parent.joinpath("CHANGELOG.md").open("r",
encoding="utf8") as file:
- return next(filter(bool, map(changelog_version_re.match,
file))).group(1) # ty: ignore[invalid-argument-type]
+ return next(filter(bool, map(changelog_version_re.match,
file))).group(1) # ty: ignore[unresolved-attribute]
@duty
@@ -58,7 +58,7 @@
def check_quality(ctx: Context) -> None:
"""Check the code quality."""
ctx.run(
- tools.ruff.check(*PY_SRC_LIST, config="config/ruff.toml"),
+ tools.ruff.check(*PY_SRC_LIST, config="config/ruff.toml", color=True),
title=pyprefix("Checking code quality"),
)
@@ -66,10 +66,8 @@
@duty(nofail=PY_VERSION == PY_DEV)
def check_docs(ctx: Context) -> None:
"""Check if the documentation builds correctly."""
- Path("htmlcov").mkdir(parents=True, exist_ok=True)
- Path("htmlcov/index.html").touch(exist_ok=True)
ctx.run(
- tools.mkdocs.build(strict=True, verbose=True),
+ tools.zensical.build(strict=True),
title=pyprefix("Building documentation"),
)
@@ -109,7 +107,7 @@
port: The port to serve the docs on.
"""
ctx.run(
- tools.mkdocs.serve(dev_addr=f"{host}:{port}").add_args(*cli_args),
+ tools.zensical.serve(dev_addr=f"{host}:{port}").add_args(*cli_args),
title="Serving documentation",
capture=False,
)
@@ -118,8 +116,22 @@
@duty
def docs_deploy(ctx: Context) -> None:
"""Deploy the documentation to GitHub pages."""
- os.environ["DEPLOY"] = "true"
- ctx.run(tools.mkdocs.gh_deploy(remote_name="org-pages", force=True),
title="Deploying documentation")
+ from ghp_import import ghp_import # noqa: PLC0415
+
+ ctx.run(tools.zensical.build(), title="Building documentation site")
+ ctx.run(
+ ghp_import,
+ kwargs={
+ "srcdir": "site",
+ "mesg": "chore: Update documentation",
+ "push": True,
+ "force": True,
+ "remote": "org-pages",
+ },
+ title="Deploying site to GitHub Pages",
+ command="ghp-import site -r org-pages -fpm 'chore: Update
documentation'",
+ pty=PTY,
+ )
@duty
@@ -136,8 +148,8 @@
def build(ctx: Context) -> None:
"""Build source and wheel distributions."""
ctx.run(
- tools.build(),
- title="Building source and wheel distributions",
+ ["uv", "build"],
+ title="Building distributions",
pty=PTY,
)
@@ -147,10 +159,10 @@
"""Publish source and wheel distributions to PyPI."""
if not Path("dist").exists():
ctx.run("false", title="No distribution files found")
- dists = [str(dist) for dist in Path("dist").iterdir()]
+ dists = [str(dist) for dist in Path("dist").iterdir() if dist.suffix in
(".gz", ".whl")]
ctx.run(
tools.twine.upload(*dists, skip_existing=True),
- title="Publishing source and wheel distributions to PyPI",
+ title="Publishing distributions to PyPI",
pty=PTY,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/mkdocs.yml
new/mkdocstrings-1.0.6/mkdocs.yml
--- old/mkdocstrings-1.0.3/mkdocs.yml 2026-02-05 18:35:00.603156000 +0100
+++ new/mkdocstrings-1.0.6/mkdocs.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,209 +0,0 @@
-site_name: "mkdocstrings"
-site_description: "Automatic documentation from sources, for MkDocs."
-site_url: "https://mkdocstrings.github.io/"
-repo_url: "https://github.com/mkdocstrings/mkdocstrings"
-repo_name: "mkdocstrings/mkdocstrings"
-site_dir: "site"
-watch: [mkdocs.yml, README.md, CONTRIBUTING.md, CHANGELOG.md, src/mkdocstrings]
-copyright: Copyright © 2019 Timothée Mazzucotelli
-edit_uri: edit/main/docs/
-
-validation:
- omitted_files: warn
- absolute_links: warn
- unrecognized_links: warn
-
-nav:
-- Home:
- - Overview: index.md
- - Changelog: changelog.md
- - Credits: credits.md
- - License: license.md
-- Usage:
- - usage/index.md
- - Theming: usage/theming.md
- - Handlers: usage/handlers.md
- - All handlers:
- - C: https://mkdocstrings.github.io/c/
- - Crystal: https://mkdocstrings.github.io/crystal/
- - GitHub Actions: https://watermarkhu.nl/mkdocstrings-github/
- - Python: https://mkdocstrings.github.io/python/
- - Python (Legacy): https://mkdocstrings.github.io/python-legacy/
- - MATLAB: https://watermarkhu.nl/mkdocstrings-matlab/
- - Shell: https://mkdocstrings.github.io/shell/
- - TypeScript: https://mkdocstrings.github.io/typescript/
- - VBA: https://pypi.org/project/mkdocstrings-vba
- - Guides:
- - Recipes: recipes.md
- - Troubleshooting: troubleshooting.md
-- API reference: reference/api.md
-- Development:
- - Contributing: contributing.md
- - Code of Conduct: code_of_conduct.md
- - Coverage report: coverage.md
-- Author's website: https://pawamoy.github.io/
-
-theme:
- name: material
- logo: logo.svg
- custom_dir: docs/.overrides
- features:
- - announce.dismiss
- - content.action.edit
- - content.action.view
- - content.code.annotate
- - content.code.copy
- - content.tooltips
- - navigation.footer
- - navigation.instant.preview
- - navigation.path
- - navigation.sections
- - navigation.tabs
- - navigation.tabs.sticky
- - navigation.top
- - search.highlight
- - search.suggest
- - toc.follow
- palette:
- - media: "(prefers-color-scheme)"
- toggle:
- icon: material/brightness-auto
- name: Switch to light mode
- - media: "(prefers-color-scheme: light)"
- scheme: default
- primary: teal
- accent: purple
- toggle:
- icon: material/weather-sunny
- name: Switch to dark mode
- - media: "(prefers-color-scheme: dark)"
- scheme: slate
- primary: black
- accent: lime
- toggle:
- icon: material/weather-night
- name: Switch to system preference
-
-extra_css:
-- css/style.css
-- css/material.css
-- css/mkdocstrings.css
-
-extra_javascript:
-- js/feedback.js
-
-markdown_extensions:
-- attr_list
-- admonition
-- callouts:
- strip_period: false
-- footnotes
-- pymdownx.details
-- pymdownx.emoji:
- emoji_index: !!python/name:material.extensions.emoji.twemoji
- emoji_generator: !!python/name:material.extensions.emoji.to_svg
-- pymdownx.highlight:
- pygments_lang_class: true
-- pymdownx.magiclink
-- pymdownx.snippets:
- base_path: [!relative $config_dir]
- check_paths: true
-- pymdownx.superfences
-- pymdownx.tabbed:
- alternate_style: true
- slugify: !!python/object/apply:pymdownx.slugs.slugify
- kwds:
- case: lower
-- pymdownx.tasklist:
- custom_checkbox: true
-- pymdownx.tilde
-- toc:
- permalink: "¤"
-
-plugins:
-- search
-- autorefs
-- markdown-exec
-- section-index
-- coverage
-- mkdocstrings:
- handlers:
- python:
- inventories:
- - https://docs.python.org/3/objects.inv
- - https://installer.readthedocs.io/en/stable/objects.inv #
demonstration purpose in the docs
- - https://mkdocstrings.github.io/autorefs/objects.inv
- - https://www.mkdocs.org/objects.inv
- - https://python-markdown.github.io/objects.inv
- - https://jinja.palletsprojects.com/en/stable/objects.inv
- - https://markupsafe.palletsprojects.com/en/stable/objects.inv
- paths: [src]
- options:
- backlinks: tree
- docstring_options:
- ignore_init_summary: true
- docstring_section_style: list
- filters: ["!^_"]
- heading_level: 1
- inherited_members: true
- merge_init_into_class: true
- parameter_headings: true
- separate_signature: true
- show_root_heading: true
- show_root_full_path: false
- show_signature_annotations: true
- show_source: true
- show_symbol_type_heading: true
- show_symbol_type_toc: true
- signature_crossrefs: true
- summary: true
-- llmstxt:
- full_output: llms-full.txt
- sections:
- Usage:
- - index.md
- - usage/index.md
- - usage/handlers.md
- - usage/theming.md
- - recipes.md
- - troubleshooting.md
- API:
- - reference/api.md
-- git-revision-date-localized:
- enabled: !ENV [DEPLOY, false]
- enable_creation_date: true
- type: timeago
-- redirects:
- redirect_maps:
- theming.md: usage/theming.md
- handlers/overview.md: usage/handlers.md
- reference/mkdocstrings.md: reference/api.md
- reference/index.md: reference/api.md#mkdocstrings
-- minify:
- minify_html: !ENV [DEPLOY, false]
-- typeset
-
-extra:
- social:
- - icon: fontawesome/brands/github
- link: https://github.com/pawamoy
- - icon: fontawesome/brands/mastodon
- link: https://fosstodon.org/@pawamoy
- - icon: fontawesome/brands/twitter
- link: https://twitter.com/pawamoy
- - icon: fontawesome/brands/gitter
- link: https://gitter.im/mkdocstrings/community
- - icon: fontawesome/brands/python
- link: https://pypi.org/project/mkdocstrings/
- analytics:
- feedback:
- title: Was this page helpful?
- ratings:
- - icon: material/emoticon-happy-outline
- name: This page was helpful
- data: 1
- note: Thanks for your feedback!
- - icon: material/emoticon-sad-outline
- name: This page could be improved
- data: 0
- note: Let us know how we can improve this page.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/pyproject.toml
new/mkdocstrings-1.0.6/pyproject.toml
--- old/mkdocstrings-1.0.3/pyproject.toml 2026-02-07 15:31:35.132069300
+0100
+++ new/mkdocstrings-1.0.6/pyproject.toml 2026-07-11 21:37:57.548427600
+0200
@@ -49,7 +49,7 @@
"mkdocs-autorefs>=1.4",
"pymdown-extensions>=6.3",
]
-version = "1.0.3"
+version = "1.0.6"
[project.optional-dependencies]
crystal = [
@@ -90,7 +90,7 @@
"share",
"tests",
"duties.py",
- "mkdocs.yml",
+ "zensical.toml",
"*.md",
"LICENSE",
]
@@ -109,7 +109,6 @@
[dependency-groups]
maintain = [
- "build>=1.2",
"git-changelog>=2.5",
"twine>=5.1",
"yore>=0.3.3",
@@ -117,26 +116,21 @@
ci = [
"dirty-equals>=0.9",
"duty>=1.6",
- "ruff>=0.4",
+ "griffe>=2.0",
"pytest>=8.2",
"pytest-cov>=5.0",
"pytest-randomly>=3.15",
"pytest-xdist>=3.6",
+ "ruff>=0.4",
"ty>=0.0.14",
"types-markdown>=3.6",
"types-pyyaml>=6.0",
]
docs = [
+ "ghp-import>=2.1",
"markdown-callouts>=0.4",
"markdown-exec>=1.8",
- "mkdocs>=1.6",
- "mkdocs-coverage>=1.0",
- "mkdocs-git-revision-date-localized-plugin>=1.2",
- "mkdocs-llmstxt>=0.2",
- "mkdocs-material>=9.5",
- "mkdocs-minify-plugin>=0.8",
- "mkdocs-redirects>=1.2.1",
- "mkdocs-section-index>=0.3",
- "mkdocstrings-python>=2.0",
+ "mkdocstrings[python]>=0.29",
"tomli>=2.0; python_version < '3.11'",
+ "zensical>=0.0.21",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/scripts/gen_credits.py
new/mkdocstrings-1.0.6/scripts/gen_credits.py
--- old/mkdocstrings-1.0.3/scripts/gen_credits.py 2026-02-05
18:34:51.345126200 +0100
+++ new/mkdocstrings-1.0.6/scripts/gen_credits.py 2026-05-21
15:02:57.180529800 +0200
@@ -2,7 +2,6 @@
from __future__ import annotations
-import os
import sys
from collections import defaultdict
from collections.abc import Iterable
@@ -10,7 +9,6 @@
from itertools import chain
from pathlib import Path
from textwrap import dedent
-from typing import Union
from jinja2 import StrictUndefined
from jinja2.sandbox import SandboxedEnvironment
@@ -22,14 +20,14 @@
else:
import tomli as tomllib
-project_dir = Path(os.getenv("MKDOCS_CONFIG_DIR", "."))
+project_dir = Path.cwd()
with project_dir.joinpath("pyproject.toml").open("rb") as pyproject_file:
pyproject = tomllib.load(pyproject_file)
project = pyproject["project"]
project_name = project["name"]
devdeps = [dep for group in pyproject["dependency-groups"].values() for dep in
group if not dep.startswith("-e")]
-PackageMetadata = dict[str, Union[str, Iterable[str]]]
+PackageMetadata = dict[str, str | Iterable[str]]
Metadata = dict[str, PackageMetadata]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/scripts/get_version.py
new/mkdocstrings-1.0.6/scripts/get_version.py
--- old/mkdocstrings-1.0.3/scripts/get_version.py 2026-02-05
18:34:51.321406000 +0100
+++ new/mkdocstrings-1.0.6/scripts/get_version.py 2026-07-10
12:43:53.692831000 +0200
@@ -22,7 +22,7 @@
if scm_version.version <= Version("0.1"): # Missing Git tags?
with suppress(OSError, StopIteration): # noqa: SIM117
with _changelog.open("r", encoding="utf8") as file:
- match = next(filter(None, map(_changelog_version_re.match,
file))) # ty: ignore[invalid-argument-type]
+ match = next(filter(None, map(_changelog_version_re.match,
file)))
scm_version =
scm_version._replace(version=Version(match.group(1)))
return default_version_formatter(scm_version)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/download.py
new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/download.py
--- old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/download.py
2026-02-05 18:54:29.505668400 +0100
+++ new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/download.py
2026-05-21 15:02:57.180529800 +0200
@@ -19,6 +19,9 @@
# Regex pattern for an environment variable in the form ${ENV_VAR}.
_ENV_VAR_PATTERN = re.compile(r"\$\{([A-Za-z_][A-Za-z0-9_]*)\}")
+# Timeout in seconds for downloading.
+_TIMEOUT = 10
+
def _download_url_with_gz(url: str) -> bytes:
url, auth_header = _extract_auth_from_url(url)
@@ -27,7 +30,7 @@
url,
headers={"Accept-Encoding": "gzip", "User-Agent":
"mkdocstrings/0.15.0", **auth_header},
)
- with urllib.request.urlopen(req) as resp: # noqa: S310
+ with urllib.request.urlopen(req, timeout=_TIMEOUT) as resp: # noqa: S310
content: BinaryIO = resp
if "gzip" in resp.headers.get("content-encoding", ""):
content = gzip.GzipFile(fileobj=resp) # ty:
ignore[invalid-assignment]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/extension.py
new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/extension.py
--- old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/extension.py
2026-02-07 13:23:42.653612900 +0100
+++ new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/extension.py
2026-05-21 15:02:57.180529800 +0200
@@ -432,7 +432,7 @@
global _AUTOREFS # noqa: PLW0603
if _AUTOREFS is None:
_AUTOREFS = AutorefsPlugin()
- _AUTOREFS.config = AutorefsConfig()
+ _AUTOREFS.config = AutorefsConfig() # ty:ignore[invalid-assignment]
_AUTOREFS.config.resolve_closest = True
_AUTOREFS.config.link_titles = "auto"
_AUTOREFS.config.strip_title_tags = "auto"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/handlers/base.py
new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/handlers/base.py
--- old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/handlers/base.py
2026-02-05 18:53:46.840261700 +0100
+++ new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/handlers/base.py
2026-07-11 21:31:44.583777000 +0200
@@ -178,7 +178,7 @@
self.env.filters["convert_markdown"] = self.do_convert_markdown
self.env.filters["heading"] = self.do_heading
self.env.filters["any"] = do_any
- self.env.globals["log"] = get_template_logger(self.name)
+ self.env.globals["log"] = get_template_logger(self.name) #
ty:ignore[invalid-assignment]
@property
def md(self) -> Markdown:
@@ -376,7 +376,7 @@
if BacklinksTreeProcessor.name in treeprocessors:
treeprocessors[BacklinksTreeProcessor.name].initial_id = None
if AutorefsInlineProcessor.name in self.md.inlinePatterns:
- self.md.inlinePatterns[AutorefsInlineProcessor.name].hook =
None
+ self.md.inlinePatterns[AutorefsInlineProcessor.name].hook =
None # ty: ignore[unresolved-attribute]
self.md.reset()
_markdown_conversion_layer -= 1
@@ -466,7 +466,17 @@
def _update_env(self, md: Markdown, *, config: Any | None = None) -> None:
"""Update our handler to point to our configured Markdown instance,
grabbing some of the config from `md`."""
- extensions: list[str | Extension] = [*self.mdx,
MkdocstringsInnerExtension(self._headings)]
+ # Remove extensions that are not useful in the inner conversion layer.
+ # Zensical's `preview` is especially problematic because it expects to
find
+ # the `zrelpath` treeprocessor while this treeprocessor is registered
"manually"
+ # by Zensical, meaning that mkdocstrings cannot propagate it naturally.
+ # Previously we did propagate it ourselves, but Zensical recently
started
+ # applying its logic onto HTML stashes, meaning the logic was applied
twice:
+ # once by mkdocstrings-propagated `zrelpath` treeprocessor, and a
second time
+ # by Zensical's `zrelpath` postprocessor. See zensical/zensical#818.
+ remove_names = ("zensical.extensions.preview",)
+ mdx = [ext for ext in self.mdx if ext not in remove_names]
+ extensions: list[str | Extension] = [*mdx,
MkdocstringsInnerExtension(self._headings)]
new_md = Markdown(extensions=extensions,
extension_configs=self.mdx_config)
@@ -475,10 +485,6 @@
relpath = md.treeprocessors["relpath"]
new_relpath = type(relpath)(relpath.file, relpath.files,
relpath.config)
new_md.treeprocessors.register(new_relpath, "relpath", priority=0)
- elif "zrelpath" in md.treeprocessors:
- zrelpath = md.treeprocessors["zrelpath"]
- new_zrelpath = type(zrelpath)(new_md, zrelpath.path,
zrelpath.use_directory_urls)
- new_md.treeprocessors.register(new_zrelpath, "zrelpath",
priority=0)
self._md = new_md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/inventory.py
new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/inventory.py
--- old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/inventory.py
2025-07-23 01:58:11.016069200 +0200
+++ new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/inventory.py
2026-07-10 12:45:31.627627400 +0200
@@ -174,12 +174,15 @@
Returns:
An inventory containing the collected items.
"""
- for _ in range(4):
- in_file.readline()
+ in_file.readline() # "Sphinx inventory version X"
+ project = in_file.readline().removeprefix(b"# Project:
").decode("utf8").rstrip()
+ version = in_file.readline().removeprefix(b"# Version:
").decode("utf8").rstrip()
+ in_file.readline() # "The remainder of this file is compressed using
zlib"
+
lines = zlib.decompress(in_file.read()).splitlines()
items: list[InventoryItem] = [
item for line in lines if (item :=
InventoryItem.parse_sphinx(line.decode("utf8"), return_none=True))
]
if domain_filter:
items = [item for item in items if item.domain in domain_filter]
- return cls(items)
+ return cls(items, project=project, version=version)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/loggers.py
new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/loggers.py
--- old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/loggers.py
2026-02-05 18:52:08.417687200 +0100
+++ new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/loggers.py
2026-05-21 15:02:57.195529500 +0200
@@ -5,12 +5,12 @@
import logging
from contextlib import suppress
from pathlib import Path
-from typing import TYPE_CHECKING, Any, Callable
+from typing import TYPE_CHECKING, Any
from jinja2 import pass_context
if TYPE_CHECKING:
- from collections.abc import MutableMapping, Sequence
+ from collections.abc import Callable, MutableMapping, Sequence
from jinja2.runtime import Context
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/plugin.py
new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/plugin.py
--- old/mkdocstrings-1.0.3/src/mkdocstrings/_internal/plugin.py 2026-02-05
18:52:42.960477000 +0100
+++ new/mkdocstrings-1.0.6/src/mkdocstrings/_internal/plugin.py 2026-05-21
15:02:57.195529500 +0200
@@ -161,7 +161,7 @@
except KeyError:
# Otherwise, add a limited instance of it that acts only on what's
added through `register_anchor`.
autorefs = AutorefsPlugin()
- autorefs.config = AutorefsConfig()
+ autorefs.config = AutorefsConfig() # ty:ignore[invalid-assignment]
autorefs.scan_toc = False
config.plugins["autorefs"] = autorefs
_logger.debug("Added a subdued autorefs instance %r", autorefs)
@@ -199,7 +199,7 @@
@event_priority(50) # Early, before autorefs' starts applying cross-refs
and collecting backlinks.
def _on_env_load_inventories(self, env: Environment, config: MkDocsConfig,
*args: Any, **kwargs: Any) -> None: # noqa: ARG002
if self.plugin_enabled and self._handlers:
- register = config.plugins["autorefs"].register_url # ty:
ignore[possibly-missing-attribute]
+ register = config.plugins["autorefs"].register_url # ty:
ignore[unresolved-attribute]
for identifier, url in self._handlers._yield_inventory_items():
register(identifier, url)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/tests/conftest.py
new/mkdocstrings-1.0.6/tests/conftest.py
--- old/mkdocstrings-1.0.3/tests/conftest.py 2026-02-05 18:49:45.048784700
+0100
+++ new/mkdocstrings-1.0.6/tests/conftest.py 2026-05-21 15:02:57.195529500
+0200
@@ -33,7 +33,7 @@
**getattr(request, "param", {}),
}
# Re-create it manually as a workaround for
https://github.com/mkdocs/mkdocs/issues/2289
- mdx_configs: dict[str, Any] =
dict(ChainMap(*conf_dict.get("markdown_extensions", []))) # ty:
ignore[invalid-argument-type]
+ mdx_configs: dict[str, Any] =
dict(ChainMap(*conf_dict.get("markdown_extensions", []))) # ty:
ignore[invalid-argument-type,invalid-assignment]
conf.load_dict(conf_dict)
assert conf.validate() == ([], [])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/tests/test_api.py
new/mkdocstrings-1.0.6/tests/test_api.py
--- old/mkdocstrings-1.0.3/tests/test_api.py 2026-02-05 18:35:00.603239800
+0100
+++ new/mkdocstrings-1.0.6/tests/test_api.py 2026-05-21 15:02:57.196529600
+0200
@@ -141,7 +141,7 @@
for obj in public_objects
if obj.name not in ignore_names and obj.path not in inventory
]
- msg = "Objects not in the inventory (try running `make run mkdocs
build`):\n{paths}"
+ msg = "Objects not in the inventory (try running `make run zensical build
--clean`):\n{paths}"
assert not not_in_inventory,
msg.format(paths="\n".join(sorted(not_in_inventory)))
@@ -164,7 +164,7 @@
if obj.path not in public_api_paths and not any(path in
public_api_paths for path in obj.aliases):
not_in_api.append(item.name)
- msg = "Inventory objects not in public API (try running `make run mkdocs
build`):\n{paths}"
+ msg = "Inventory objects not in public API (try running `make run zensical
build --clean`):\n{paths}"
assert not not_in_api, msg.format(paths="\n".join(sorted(not_in_api)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/tests/test_extension.py
new/mkdocstrings-1.0.6/tests/test_extension.py
--- old/mkdocstrings-1.0.3/tests/test_extension.py 2026-02-05
18:51:26.194103500 +0100
+++ new/mkdocstrings-1.0.6/tests/test_extension.py 2026-05-21
15:02:57.197529600 +0200
@@ -154,7 +154,7 @@
def test_register_every_identifier_alias(plugin: MkdocstringsPlugin,
ext_markdown: Markdown) -> None:
"""Assert that we don't preemptively register all identifiers of a
rendered object."""
- handler = plugin._handlers.get_handler("python") # ty:
ignore[possibly-missing-attribute]
+ handler = plugin._handlers.get_handler("python") # ty:
ignore[unresolved-attribute]
ids = ("id1", "id2", "id3")
handler.get_aliases = lambda _: ids # ty: ignore[invalid-assignment]
autorefs = ext_markdown.parser.blockprocessors["mkdocstrings"]._autorefs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/tests/test_handlers.py
new/mkdocstrings-1.0.6/tests/test_handlers.py
--- old/mkdocstrings-1.0.3/tests/test_handlers.py 2026-02-05
18:51:02.048111700 +0100
+++ new/mkdocstrings-1.0.6/tests/test_handlers.py 2026-05-21
15:02:57.197529600 +0200
@@ -62,7 +62,7 @@
tmp_path: Temporary folder.
plugin: Instance of our plugin.
"""
- handler = plugin._handlers.get_handler("python") # ty:
ignore[possibly-missing-attribute]
+ handler = plugin._handlers.get_handler("python") # ty:
ignore[unresolved-attribute]
# monkeypatch Jinja env search path
search_paths = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/tests/test_inventory.py
new/mkdocstrings-1.0.6/tests/test_inventory.py
--- old/mkdocstrings-1.0.3/tests/test_inventory.py 2026-02-05
18:39:17.173590200 +0100
+++ new/mkdocstrings-1.0.6/tests/test_inventory.py 2026-07-10
12:41:46.544393500 +0200
@@ -83,3 +83,11 @@
assert round_tripped_item.uri == value.uri
assert round_tripped_item.priority == value.priority
assert round_tripped_item.dispname == value.dispname.splitlines()[0]
+
+
+def test_parse_inventory_project_and_version() -> None:
+ """Parse project and version in inventory header."""
+ base_inv = Inventory(project="hello", version="1000")
+ parsed_inv = Inventory.parse_sphinx(BytesIO(base_inv.format_sphinx()))
+ assert base_inv.project == parsed_inv.project
+ assert base_inv.version == parsed_inv.version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mkdocstrings-1.0.3/zensical.toml
new/mkdocstrings-1.0.6/zensical.toml
--- old/mkdocstrings-1.0.3/zensical.toml 1970-01-01 01:00:00.000000000
+0100
+++ new/mkdocstrings-1.0.6/zensical.toml 2026-04-15 11:03:31.633040200
+0200
@@ -0,0 +1,214 @@
+[project]
+site_name = "mkdocstrings"
+site_description = "Automatic documentation from sources, for MkDocs."
+site_author = "Timothée Mazzucotelli"
+site_url = "https://mkdocstrings.github.io/mkdocstrings"
+repo_url = "https://github.com/mkdocstrings/mkdocstrings"
+repo_name = "mkdocstrings/mkdocstrings"
+copyright = "Copyright © 2019 Timothée Mazzucotelli"
+extra_css = ["css/apidocs.css"]
+extra_javascript = ["js/feedback.js"]
+nav = [
+ { "Home" = [
+ { "Overview" = "index.md" },
+ { "Changelog" = "changelog.md" },
+ { "Credits" = "credits.md" },
+ { "License" = "license.md" },
+ ] },
+ { "Usage" = [
+ "usage/index.md",
+ { "Theming" = "usage/theming.md" },
+ { "Handlers" = "usage/handlers.md" },
+ { "All handlers" = [
+ { "C" = "https://mkdocstrings.github.io/c/" },
+ { "Crystal" = "https://mkdocstrings.github.io/crystal/" },
+ { "GitHub Actions" = "https://watermarkhu.nl/mkdocstrings-github/" },
+ { "Python" = "https://mkdocstrings.github.io/python/" },
+ { "Python (Legacy)" = "https://mkdocstrings.github.io/python-legacy/" },
+ { "MATLAB" = "https://watermarkhu.nl/mkdocstrings-matlab/" },
+ { "Shell" = "https://mkdocstrings.github.io/shell/" },
+ { "TypeScript" = "https://mkdocstrings.github.io/typescript/" },
+ { "VBA" = "https://pypi.org/project/mkdocstrings-vba" },
+ ] },
+ { "Guides" = [
+ { "Recipes" = "recipes.md" },
+ { "Troubleshooting" = "troubleshooting.md" },
+ ] },
+ ] },
+ { "API reference" = "reference/api.md" },
+ { "Development" = [
+ { "Contributing" = "contributing.md" },
+ { "Code of Conduct" = "code_of_conduct.md" },
+ ] },
+ { "Author's website" = "https://pawamoy.github.io" },
+]
+
+# ----------------------------------------------------------------------------
+# Theme configuration
+# ----------------------------------------------------------------------------
+[project.theme]
+logo = "logo.svg"
+custom_dir = "docs/.overrides"
+language = "en"
+features = [
+ "announce.dismiss",
+ "content.action.edit",
+ "content.action.view",
+ "content.code.annotate",
+ "content.code.copy",
+ "content.code.select",
+ "content.footnote.tooltips",
+ "content.tabs.link",
+ "content.tooltips",
+ "navigation.footer",
+ "navigation.indexes",
+ "navigation.instant",
+ "navigation.instant.prefetch",
+ "navigation.path",
+ "navigation.sections",
+ "navigation.tabs",
+ "navigation.tabs.sticky",
+ "navigation.top",
+ "search.highlight",
+ "toc.follow",
+]
+
+[[project.theme.palette]]
+media = "(prefers-color-scheme)"
+toggle.icon = "material/brightness-auto"
+toggle.name = "Switch to light mode"
+
+[[project.theme.palette]]
+media = "(prefers-color-scheme: light)"
+scheme = "default"
+primary = "teal"
+accent = "purple"
+toggle.icon = "material/weather-sunny"
+toggle.name = "Switch to dark mode"
+
+[[project.theme.palette]]
+media = "(prefers-color-scheme: dark)"
+scheme = "slate"
+primary = "black"
+accent = "lime"
+toggle.icon = "material/weather-night"
+toggle.name = "Switch to system preference"
+
+[project.theme.icon]
+logo = "material/currency-sign"
+
+# ----------------------------------------------------------------------------
+# Social configuration
+# ----------------------------------------------------------------------------
+[[project.extra.social]]
+icon = "fontawesome/brands/github"
+link = "https://github.com/pawamoy"
+
+[[project.extra.social]]
+icon = "fontawesome/brands/mastodon"
+link = "https://fosstodon.org/@pawamoy"
+
+[[project.extra.social]]
+icon = "fontawesome/brands/twitter"
+link = "https://twitter.com/pawamoy"
+
+[[project.extra.social]]
+icon = "fontawesome/brands/gitter"
+link = "https://gitter.im/mkdocstrings/community"
+
+[[project.extra.social]]
+icon = "fontawesome/brands/python"
+link = "https://pypi.org/project/mkdocstrings/"
+
+[project.extra.analytics.feedback]
+title = "Was this page helpful?"
+
+[[project.extra.analytics.feedback.ratings]]
+icon = "material/emoticon-happy-outline"
+name = "This page was helpful"
+data = 1
+note = "Thank you for your feedback!"
+
+[[project.extra.analytics.feedback.ratings]]
+icon = "material/emoticon-sad-outline"
+name = "This page could be improved"
+data = 0
+note = "Let us know how we can improve this page."
+
+# ----------------------------------------------------------------------------
+# Markdown extensions configuration
+# ----------------------------------------------------------------------------
+[project.markdown_extensions.abbr]
+[project.markdown_extensions.admonition]
+[project.markdown_extensions.attr_list]
+[project.markdown_extensions.callouts]
+[project.markdown_extensions.def_list]
+[project.markdown_extensions.footnotes]
+[project.markdown_extensions.md_in_html]
+[project.markdown_extensions.toc]
+permalink = "¤"
+[project.markdown_extensions.pymdownx.arithmatex]
+generic = true
+[project.markdown_extensions.pymdownx.betterem]
+smart_enable = "all"
+[project.markdown_extensions.pymdownx.caret]
+[project.markdown_extensions.pymdownx.details]
+[project.markdown_extensions.pymdownx.emoji]
+emoji_generator = "zensical.extensions.emoji.to_svg"
+emoji_index = "zensical.extensions.emoji.twemoji"
+[project.markdown_extensions.pymdownx.highlight]
+[project.markdown_extensions.pymdownx.inlinehilite]
+[project.markdown_extensions.pymdownx.keys]
+[project.markdown_extensions.pymdownx.magiclink]
+[project.markdown_extensions.pymdownx.mark]
+[project.markdown_extensions.pymdownx.smartsymbols]
+[project.markdown_extensions.pymdownx.snippets]
+check_paths = true
+[project.markdown_extensions.pymdownx.superfences]
+[[project.markdown_extensions.pymdownx.superfences.custom_fences]]
+name = "python"
+class = "python"
+validator = "markdown_exec.validator"
+format = "markdown_exec.formatter"
+[project.markdown_extensions.pymdownx.tabbed]
+alternate_style = true
+[project.markdown_extensions.pymdownx.tasklist]
+custom_checkbox = true
+[project.markdown_extensions.pymdownx.tilde]
+[project.markdown_extensions.zensical.extensions.preview]
+configurations = [{targets.include = ["reference/api.md"]}]
+
+# ----------------------------------------------------------------------------
+# Plugins configuration
+# ----------------------------------------------------------------------------
+[project.plugins.mkdocstrings.handlers.python]
+paths = ["src"]
+inventories = [
+ "https://docs.python.org/3/objects.inv",
+ "https://installer.readthedocs.io/en/stable/objects.inv", # demonstration
purpose in the docs
+ "https://mkdocstrings.github.io/autorefs/objects.inv",
+ "https://www.mkdocs.org/objects.inv",
+ "https://python-markdown.github.io/objects.inv",
+ "https://jinja.palletsprojects.com/en/stable/objects.inv",
+ "https://markupsafe.palletsprojects.com/en/stable/objects.inv",
+]
+
+[project.plugins.mkdocstrings.handlers.python.options]
+backlinks = "tree"
+docstring_options = { "ignore_init_summary" = true }
+docstring_section_style = "list"
+filters = "public"
+heading_level = 1
+inherited_members = true
+merge_init_into_class = true
+parameter_headings = true
+separate_signature = true
+show_root_heading = true
+show_root_full_path = false
+show_signature_annotations = true
+show_source = true
+show_symbol_type_heading = true
+show_symbol_type_toc = true
+signature_crossrefs = true
+summary = true
+unwrap_annotated = true