Commit Graph

21720 Commits

Author SHA1 Message Date
Adam Turner
66905d24e1 Use strict flake8-type-checking settings in Ruff 2025-01-13 21:56:36 +00:00
Adam Turner
f6d1665f84 Use frozensets for permitted types in `app.add_config_value()` 2025-01-13 21:18:17 +00:00
dependabot[bot]
e7dd42ea91
Bump Ruff to 0.9.1 (#13235) 2025-01-13 07:09:06 +00:00
Bénédikt Tran
2a19d293b6
autodoc: fix detection of class methods implemented by extension modules (#13200)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2025-01-12 11:07:30 +00:00
Adam Turner
72ce43619c
Remove unneeded runtime typing imports (#13233) 2025-01-12 01:04:14 +00:00
Adam Turner
d29c2c1ff3
Implement key splitting in the `:kbd: role and remove KeyboardTransform` (#13227)
``KeyboardTransform.run`` takes 1.2% of the runtime of a build, but
is not be needed if ``:kbd:`` is converted to a proper role.

We implement key splitting in the ``:kbd:`` role, and return a sequence
of parsed nodes rather than a nested collection of roles with ``class="kbd compound"``.
2025-01-10 19:51:17 +00:00
Adam Turner
fdb1b0cdad Update documentation for the `:no-search:` file-wide metadata option 2025-01-10 16:56:21 +00:00
Adam Turner
404e4ffbed Consolidate both `handle_exception()` implementations 2025-01-10 15:52:39 +00:00
Adam Turner
dec45eaf28 Bump Ruff to 0.9.0 2025-01-10 13:50:26 +00:00
Adam Turner
bd864d6858 Define `__slots__ in sphinx.builders.gettext` classes 2025-01-10 12:11:29 +00:00
James Addison
267fe9afa8
Tests: explicitly unset SOURCE_DATE_EPOCH during 'test_html_multi_line_copyright' (#13224)
Sphinx's copyright substitution currently allows years identified as
the current year to be downgraded to previous years when
``SOURCE_DATE_EPOCH`` is configured, to assist reproducibility [1] of
documentation builds.

However, we have a test case ``test_html_multi_line_copyright``,
written in 2024, that mentioned a future year (2025).

Now that we have reached 2025, it is eligible for substitution when
``SOURCE_DATE_EPOCH`` is configured.  Many buildsystems, such as those
used by Debian and Fedora, choose the most-recent packaging/commit
timestamp to use as `SOURCE_DATE_EPOCH`'s timestamp, since those
correspond sensibly to a time-of-build.

However, for the Sphinx 8.1.3 release including the updated
substitution logic, the year-of-release/commit was 2024. Thus, if a
commit/packaging date from that year is chosen, and
``SOURCE_DATE_EPOCH`` is configured when the unit tests run, the
``test_html_multi_line_copyright`` test will fail.

The fix suggested here is to explicitly unset ``SOURCE_DATE_EPOCH``
within ``test_html_multi_line_copyright``.

[1]: https://www.reproducible-builds.org/

Authored-by: Colin Watson <cjwatson@debian.org>
Co-authored-by: Colin Watson <cjwatson@debian.org>
Authored-by: James Addison <55152140+jayaddison@users.noreply.github.com>
Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com>
2025-01-10 11:21:11 +00:00
Adam Turner
95df419f49 apidoc: Move ApidocOptions to `sphinx.ext.apidoc._shared` 2025-01-10 02:12:20 +00:00
Adam Turner
d42cfa702f Further minor copyediting of the 'extension metadata' section 2025-01-10 01:26:17 +00:00
Adam Turner
daade2715a Rewrite the 'extension metadata' section 2025-01-10 01:09:49 +00:00
Adam Turner
74ec220479 apidoc: Rename test roots 2025-01-07 11:06:29 +00:00
Adam Turner
8e6883f8a0 apidoc: Rename `CliOptions to ApidocOptions` 2025-01-07 10:49:40 +00:00
Adam Turner
2c117bbbf0 Split out `sphinx.ext.apidoc._shared` 2025-01-07 10:41:40 +00:00
Adam Turner
5176a8f33a apidoc: Split `main()` into funtions 2025-01-07 09:35:23 +00:00
Adam Turner
fd3e7d3902 Convert CliOptions to a dataclass 2025-01-07 09:15:52 +00:00
Adam Turner
8732b2324a Split out `sphinx.ext.apidoc._generate` 2025-01-07 08:33:20 +00:00
Adam Turner
2bd70193b7 Split out `sphinx.ext.apidoc._cli` 2025-01-07 08:32:11 +00:00
Adam Turner
3a6111f141 Move `sphinx.ext.apidoc` into a package 2025-01-07 08:05:27 +00:00
Adam Turner
d1b49a12ef apidoc: Miscellaneous refactoring 2025-01-07 08:05:26 +00:00
Adam Turner
47599df1bc apidoc: Add `--automodule-options` 2025-01-07 08:05:20 +00:00
dependabot[bot]
76c4e9173e
Bump types-pygments to 2.19.0.20250107 (#13219) 2025-01-07 05:05:02 +00:00
Adam Turner
44aced1ab7
Add types and defaults to confval directives (#13218) 2025-01-07 03:55:27 +00:00
Adam Turner
9b7205b65e
Improve mathematics domain performance (#13044)
When profiling, ``MathDomain.process_doc()`` takes around 1% of runtime.
This change reduces this to ~0.
2025-01-07 01:34:18 +00:00
Adam Turner
df06e6d628
Add `InventoryFile.loads()` (#13215) 2025-01-07 00:40:57 +00:00
Adam Turner
b3035c7d22 Convert set-like containers to `frozenset` 2025-01-07 00:23:29 +00:00
Adam Turner
b852618c1b Avoid using camelCase names 2025-01-07 00:17:00 +00:00
Adam Turner
91bae649c1 Remove shebang from test-apidoc-toc test root 2025-01-06 21:55:29 +00:00
Adam Turner
a69d79bf67 Add .gitattributes 2025-01-06 21:55:29 +00:00
Adam Turner
5ff3740063 Adapt tests for Pygments 2.19 2025-01-06 06:56:10 +00:00
Adam Turner
d59084a1fa Bump Ruff to 0.8.6 2025-01-06 06:05:55 +00:00
Firefly
717dcc531a
Napoleon: Define confval types and defaults (#13094)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-01-05 11:05:12 +00:00
ProGamerGov
fec4d7c2f1
Viewcode: Fix issue with import paths that differ from the directory structure (#13195)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2025-01-05 10:43:57 +00:00
Adam Turner
83bf866059
Avoid attribute indirection with `env` (#13212) 2025-01-05 09:10:55 +00:00
Adam Turner
56c9e32fbc
Inline `sphinx_domains.lookup_domain_element` (#13211) 2025-01-05 06:57:49 +00:00
Adam Turner
531436b794 Remove redundant 'fmt: skip' comments 2025-01-05 05:42:39 +00:00
Adam Turner
0e8bff8e63 Napoleon: Use f-strings 2025-01-05 02:31:04 +00:00
Adam Turner
849d309db4 Napoleon: Use `:py:{...}` in type preprocessing 2025-01-05 02:13:15 +00:00
James Addison
872d270f10
linkcheck: support ignored-URIs for redirects (#13127)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2025-01-05 01:20:15 +00:00
Adam Turner
182f621cad Record the change to Napoleon type preprocessing in CHANGES.rst 2025-01-05 01:18:29 +00:00
Chris Barrick
8d75ae2d6b Napoleon: Unify the type preprocessing logic
Previously, there were two type preprocessing functions:
`_convert_type_spec` (used in Google-style docstrings) and
`_convert_numpy_type_spec` (used in Numpy-style docstrings).

The Google version simply applied type-alias translations or wrapped
the text in a `:py:class:` role.

The Numpy version does the same, plus adds special handling for keywords
`optional` and `default` and delimiter words `or`, `of`, and `and`. This
allows one to write in natural language, like `Array of int` instead of
`Array[int]` or `Widget, optional` instead of `Optional[Widget]` or
`Widget | None`. Numpy style is described in full at:
https://numpydoc.readthedocs.io/en/latest/format.html#parameters

This commit eliminates the distinction and allows Google-style
docstrings to use these preprocessing rules.
2025-01-05 01:18:29 +00:00
Chris Barrick
0dbaa5b6d1 Napoleon: Move the type preprocessing code
This puts all preprocessing code above both docstring classes, rather
than in between. This is in preparation to making both docstring classes
share the same preprocessing.
2025-01-05 01:18:29 +00:00
Adam Turner
02beccac0a
intersphinx: Define a restricted subset of Config as `InvConfig` (#13210) 2025-01-05 01:06:51 +00:00
Adam Turner
619a10efa7
intersphinx: Simplify `_fetch_inventory()` (#13209)
The streams-based interfaces in intersphinx and ``sphinx.util.inventory``
are clever, but also complex and prevent using compression methods
that don't support incrememntal decoding. This change refactors
``_fetch_inventory()`` to read all inventory content from disk or an
HTTP request at once.
2025-01-05 00:34:49 +00:00
Adam Turner
e17ed74fe0 Remove unneeded content from within `with` statements 2025-01-04 09:11:33 +00:00
Adam Turner
f63784310c Use script metadata in utils/convert_attestations.py 2025-01-04 09:11:33 +00:00
Adam Turner
81832e1dc7 Use pathlib in further places 2025-01-04 09:11:33 +00:00