Commit Graph

4850 Commits

Author SHA1 Message Date
James Addison
91c5cd3abd
Improve relevance scoring in HTML search results (#12441)
Co-authored-by: Will Lachance <wlach@protonmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-07-11 11:55:40 +01:00
Stephen Finucane
6b37a6b2a2
Allow explicitly specifying modules in the coverage builder (#11592)
Currently there is no mechanism to identify totally undocumented modules
in the coverage builder, unlike with partially documented modules.
Resolve this by introducing a new ``coverage_modules`` config option.
This is a list of modules that should be documented somewhere
within the documentation tree. 
Any modules that are specified in the configuration value but 
are not documented anywhere will result in a warning. 
Likewise, any modules that are not in the config option but 
are documented somewhere will result in a warning.

Signed-off-by: Stephen Finucane <stephen@that.guru>
2024-07-11 07:36:36 +01:00
Thomas Fanning
6cc1177d10
Allow configuring the separator used in numbering equations (#12523)
Co-authored-by: Thomas Fanning <tom@ferb.ne.anl.gov>
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-07-10 22:23:38 +01:00
Adam Turner
82edc3d385
Rewrite `usage/configuration.rst` (#12537)
- Remove now-removed configuration values
- Use obvious 'unset' defaults for ``project`` and ``author``
- Prefer 'e.g.' to 'ex.'
- Allow non-list sequence types in various configuration values
- Add types and defaults to every confval directive
2024-07-10 21:43:14 +01:00
tuncbkose
bdd9140842
Remove custom SVG processing in the HTML builder (#12425)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-07-10 18:31:01 +00:00
James Addison
84c11b2f66
Improve JavaScript test fixture generation (#12531)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-07-10 19:00:34 +01:00
M Bussonnier
6e3a191185
Bump Ruff to 0.5.1 (#12530) 2024-07-10 14:13:10 +01:00
Tim Hoffmann
a95d716f7f
Add a class option to the toctree directive (#12524)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-07-10 11:07:49 +01:00
James Addison
c67ef51df9
Update MyPy for types-docutils 0.21.0.20240708 (#12522) 2024-07-09 20:59:49 +01:00
James Addison
7eb77f2372
HTML Search: omit anchor reference from document titles in the search index. (#12047) 2024-07-08 13:34:11 +02:00
James Addison
e63e2f3ccb
Update MyPy for types-docutils 0.21.0.20240704 (#12511)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-07-06 19:29:18 +01:00
Nicolas Peugnet
b23ac4f16e
Fix invalid genindex.html file produced with translated docs (#12495) 2024-07-04 03:00:28 +02:00
Bénédikt Tran
3209275a4a
Support `typing_extensions.Unpack` (#12258)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-07-03 03:03:41 +01:00
James Addison
778013f91a
Regression: restore extraction of data-URI images from source for builders whose output formats do not support them natively (#12344) 2024-07-03 02:16:43 +01:00
Adam Turner
24a0385997
Add `allow_section_headings` to SphinxDirective parsing methods (#12503) 2024-07-02 23:53:58 +01:00
Adam Turner
86c51f3bfa Bump Ruff to 0.5.0 2024-07-02 22:50:35 +01:00
Adam Turner
1887df0b5c
Add reStructuredText parsing functions to `SphinxDirective` (#12492) 2024-07-02 22:14:19 +01:00
James Addison
6b237d9a70
[linkcheck] Allow integer for linkcheck_rate_limit_timeout (#12470)
Eliminate type-related warnings when users configure a valid integer value for the `linkcheck_rate_limit_timeout` config setting.

Co-authored-by: Chris Sewell <chrisj_sewell@hotmail.com>
2024-06-24 17:26:24 +00:00
Chris Sewell
bc1a5c5c88
[autogen] Add --remove-old option (#12456)
A common "gotcha" of re-running `sphinx-autogen`, is that if there are changes it will not remove old files, leading to build errors for files not in a `toctree`

This commit introduces a `--remove-old` option to remove these files.

Note, a key detail here is that we don't want to simply clear the directory before running `sphinx-autogen`,
since this would lead to all files having a new `mtime`,
and then `sphinx-build` would rebuild all of them even if they have not changed.
So we must first collect the list of all correct files, then remove any not in the list.
2024-06-21 19:29:46 +02:00
Chris Sewell
d7e1bfeb4b
[apidoc] Add --remove-old option (#12448)
A common "gotcha" of re-running `sphinx-apidoc`, is that if the modules API changes it will not remove old files, leading to build errors for files not in a `toctree`

This commit introduces a `--remove-old` option to remove these files.

Note, a key detail here is that we don't want to simply clear the directory before running `sphinx-apidoc`,
since this would lead to all files having a new `mtime`,
and then `sphinx-build` would rebuild all of them even if they have not changed.
So we must first collect the list of all correct files, then remove any not in the list.

The commit also improves some typing of the code and replace `os.path` by `pathlib.Path` in most instances
2024-06-20 13:12:37 +02:00
Thomas Weißschuh
6471027d19
[themes]: Include project name in logo_alt by default (#12421)
The "alt" attribute of an `<img>` is required to convey all information.
Make it clear which logo is shown.
Also make it possible for users to override the logo_alt with a custom value.
2024-06-18 01:47:14 +02:00
Bénédikt Tran
581bcdd140
[config] correctly synchronize `root_doc and master_doc` (#12417) 2024-06-17 18:04:33 +02:00
Thomas Weißschuh
d5bdabdd80
themes: Don't duplicate "navigation" in aria-label (#12422)
The word "navigation" is not supposed to be included as part of the aria-label attribute:
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/navigation_role
2024-06-17 12:50:34 +02:00
James Addison
799ae16a01
Intersphinx: log warnings for ambiguous target resolutions. (#12329)
This commit adds detection of ambiguous ``std:label`` and ``std:term`` references (due to case-insensitivity)
during loading and resolution of Intersphinx targets,
and emits a warning if found.

Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
Co-authored-by: Chris Sewell <chrisj_sewell@hotmail.com>
2024-06-17 12:42:22 +02:00
James Addison
568e26c797
[tests] JavaScript: refactor test fixtures (#12102)
This PR allows to serve JavaScript test fixtures using a fixture-based logic as for Python tests.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-06-13 13:07:46 +02:00
Nicolas Peugnet
ac3f74a3e0
[tests] Add intl regression test for term not found warning (#12388)
Add test for term not found warning in test_intl to prevent future regressions
2024-05-19 12:14:13 +02:00
Chris Sewell
3496de62b7
🧪 Fix python 3.13 tests (#12373) 2024-05-15 06:28:40 +02:00
Hugo van Kemenade
c06f246124
sphinx.ext.extlinks: Add extlink-{name} CSS class to links (#12319) 2024-05-15 04:21:11 +02:00
James Addison
9467bf7849
[typehints] tests: enable mypy for linkcheck builder tests. (#12160) 2024-05-15 04:13:57 +02:00
Adam Turner
0d74c85e8c
Extract inner check functions in `test_domain_cpp` (#12336) 2024-04-29 02:07:56 +01:00
Adam Turner
938d3732f8
Collapse unions of `Literal types in stringify_annotation` (#12325) 2024-04-25 16:07:10 +01:00
Chris Sewell
49726c28f4 Split `sphinx.ext.intersphinx._load`
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-25 15:30:55 +01:00
Adam Turner
3b907a1caa Import INVENTORY_FILENAME from canonical location 2024-04-25 13:35:06 +01:00
Benjamin Cabé
a66546895e
Properly support WebP in the image converter (#12224)
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-25 03:43:45 +01:00
Adam Turner
50895827ba Mark `test_restify_Annotated` as an expected failure 2024-04-25 03:07:48 +01:00
Adam Turner
6b70620993 Add a test for `restify(Annotated[...])` 2024-04-24 23:16:22 +01:00
Adam Turner
173b5912e5 linkcheck: Fix test to use dynamic port numbers 2024-04-24 19:36:36 +01:00
Will Lachance
208f4bcb66
HTML Search: Fix removal of unwanted anchor content from search results (#12321) 2024-04-24 19:09:14 +01:00
James Addison
2008aa8c78
linkcheck: Store the original (unquoted) anchor (#12206) 2024-04-24 18:07:31 +00:00
James Addison
9ebc46a74f
Remove test result sharing between 'test_html5_output' and 'test_html5_download' (#12119) 2024-04-24 07:45:36 +01:00
James Addison
0806a00f05
Support `.jinja` for theme static templates (#11916)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-04-23 10:40:24 +01:00
Adam Turner
5a55856dd1
Properly format `collections.abc.Callable` (#12314) 2024-04-23 08:01:09 +00:00
Nicolas Peugnet
55ca37f684
Add more internationalisation tests (#12277)
- Add test for basic literal block & literalinclude translation
- Add gettext builder test for litteral blocks additional targets
- Add i18n test for xref roles in titles
- Add i18n tests for strange markup
2024-04-23 05:22:43 +01:00
Bénédikt Tran
48a345b7c5
Improve type hints for `sphinx.ext.autodoc.mock` (#12280)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-22 23:23:57 +01:00
Adam Turner
2361db5748 Enable more Ruff checks 2024-04-22 23:09:01 +01:00
Adam Turner
740b964d45 fixup! Elaborate a little more in the warning message for `config.cache` 2024-04-17 21:50:46 +01:00
Adam Turner
141f3ecdf3 Elaborate a little more in the warning message for `config.cache` 2024-04-17 21:24:11 +01:00
James Addison
943f6fbf9a
Fix test expectations for enum rendering on Python 3.12.3 (#12293)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-04-17 04:18:52 +01:00
Adam Turner
7bf847d2b9 Fix the valid types check for `Any in sphinx.config` 2024-04-17 02:27:21 +01:00
Adam Turner
09d05a0858 Don't render types with `Optional[...]`
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-04-15 01:35:47 +01:00
James Addison
67303920fe
Make the test suite connectivity-agnostic (#12095)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-04-12 23:32:12 +01:00
James Addison
532ad0306e
linkcheck: Make the new 'timeout' status opt-in (#12023)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-04-12 23:18:22 +01:00
Adam Turner
b30088d68f Bump Ruff to 0.3.7 2024-04-12 21:04:51 +01:00
Adam Turner
44a42d53af Add basic tests for `_ConfigFile` 2024-04-11 19:01:17 +01:00
Adam Turner
8976fa4498 Support `theme.toml` 2024-04-11 19:01:17 +01:00
Adam Turner
6fd8b30043
Parse `theme.conf to a new _ConfigFile` type (#12254) 2024-04-10 00:10:26 +01:00
Adam Turner
3421e5382a
Narrow `Generator[T, None, None] types to Iterator[T]` (#12241) 2024-04-09 03:26:44 +01:00
Bénédikt Tran
db4939f007
[misc] update wording of `versionadded to Added in [...]` (#12184)
Motivated by the community feedback, the wording of ``versionadded`` is changed 
from ``New in [...]`` to ``Added in [...]``.
2024-04-05 13:32:55 +02:00
Bénédikt Tran
f7a1397d6c
[console] enhance detection and elimination of known ANSI escape sequences (#12216)
This PR improves the logic for detecting and eliminating ANSI color codes and other escape sequences introduced by Sphinx. ANSI escape sequences that are not natively known to Sphinx are not eliminated (e.g., VT100-specific functions).
2024-04-04 12:35:38 +02:00
James Addison
df3cde65fa
[tests] linkcheck: bind each test HTTP server to a unique port per-testcase (#12126)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-04-04 11:25:53 +02:00
Chris Sewell
430866e029
👌 Add warning log for config values that cannot be cached (#12203)
As a user and/or extension developer, it can be a source of confusion when,
on performing a `sphinx-build` for a cached project, 
an unchanged configuration variable is always marked as changed (triggering a full rebuild).

This is often due to the variable being an unpicklable value,
which is silently omitted from the cache (i.e. the `environment.pickle`).

This commit introduces a specific warning for when a configuration variable is omitted from the cache,
allowing users to understand the root of the problem.
2024-03-27 12:59:24 +01:00
Chris Sewell
448cb9931d
🔧 CI: fix Python 3.13 tests (#12210) 2024-03-27 12:45:24 +01:00
James Addison
bfce4f54b0
[HTML search] include partially-matched document titles in search results (#12041)
Co-authored-by: William Lachance <wlach@protonmail.com>
2024-03-26 12:18:26 +01:00
Chris Sewell
04bd0df100
👌 Improve external role warnings (and revert object fallback) (#12193)
The key issue this commit seeks to address, is that existing tools / documentation often lead users to mistakenly use object types and not role names, a classic example being `function` not `func`

Previously, the warning message for using e.g. `` external:function`target` `` (with `py` as the default domain), would be:

```
WARNING: role for external cross-reference not found: function
```

This gives no information to the user on how to fix the issue, even though there is actually quite an easy fix

This commit adds logic to create more specific / helpful warning messages, e.g.

```
WARNING: role for external cross-reference not found in domains 'py', 'std': 'function' (perhaps you meant one of: 'py:func', 'py:obj')
```

This goes through the same original logic but, if the role is not found, it will look if the role name is actually an available object type on the domain(s), and then suggest its related roles.

This commit also reverts #12133, which provided a (silent) fallback to auto convert an object type to a role name.
2024-03-25 14:39:51 +01:00
James Addison
0ef96a7d52
[tests] fix flakiness of `test_linkcheck_exclude_documents` (#12189) 2024-03-25 11:48:03 +01:00
Bénédikt Tran
f26d492d6d
[config] protect `is_serializable` against circular references (#12196) 2024-03-25 11:19:02 +01:00
Bénédikt Tran
885818bb7f
[tests] move utilities and static data into dedicated modules and remove `html5lib` (#12173)
Since #12168, HTML files are now XML compliant, hence ``html5lib`` is no more needed as a testing dependencies.
2024-03-25 11:03:44 +01:00
Bénédikt Tran
f24eef7b6b
[cleanup] deprecate `sphinx.testing.util.strip_escseq in favor of sphinx.util.console.strip_colors` (#12186) 2024-03-24 00:43:54 +01:00
Bénédikt Tran
d91ba115bd
Verify that an asset file to be copied exists (#12183) 2024-03-23 14:57:32 +01:00
Chris Sewell
66fa790b3a
[tests] Add basic build test for all builtin themes (#12168)
Add `tests/test_theming/test_theming.py::test_theme_builds`, which is a parametrized test against all builtin sphinx HTML themes, that tests:

1. that the themes builds without warnings for a basic project, and
2. that all `.html` files it produces are valid XML (see https://html.spec.whatwg.org/)

https://pypi.org/project/defusedxml/ was added to the test dependencies, in order to safely parse the XML

This required one fix for `sphinx/themes/basic/search.html`, and one for `sphinx/themes/bizstyle/layout.html`

Also, `tests/test_theming` was removed from the `ruff format` exclude list
2024-03-22 12:57:34 +01:00
danieleades
6c92c5c0f3
[lint] bump ruff version (#12170)
Co-authored-by: daniel.eades <daniel.eades@seebyte.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-22 10:33:42 +01:00
James Addison
4eede5c534
[tests] Increase timeouts for linkcheck build tests. (#12166)
This is an attempt to resolve intermittent failures of the linkcheck tests currently occuring on the GitHub CI
2024-03-21 21:46:27 +01:00
James Addison
d7c94d1696
[cleanup] test utils: more concise BaseHTTPRequestHandler references. (#12158) 2024-03-21 15:08:49 +01:00
Bénédikt Tran
da0733b338
[autodoc] fix rendering of enumerations inheriting from mixin and data types (#11596) 2024-03-21 12:36:36 +01:00
James Addison
078a80a42d
[refactor] test utils: simplify signatures and remove from ruff exclusion list. (#12155)
Apply some small method-signature cleanups in `tests/utils.py`,
and remove it from the `ruff format` exclusion list.
2024-03-21 11:08:35 +01:00
James Addison
b7f708dc63
[tests] utils: refactor type-hint signatures. (#12144)
Consolidate the provision of a single `http_server` utility method, with `tls_enabled` as a boolean flag,
and rework type annotations to make them more understandable.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Chris Sewell <chrisj_sewell@hotmail.com>
2024-03-20 23:13:41 +01:00
Chris Sewell
565d4104d5
👌 Handle external references pointing to object types (#12133)
This commit fixes the issue of `objects.inv` denoting object names, whilst the `external` role only allows for role names. 

As an example, take the `objects.inv` for the sphinx documentation, which contains:

```
py:function
    compile                  : usage/domains/python.html#compile
```

A user might understandably expect that they could reference this using `` :external:py:function:`compile` ``, but actually this would previously error with:

```
WARNING: role for external cross-reference not found: py:function
```

this is because, `function` is the object type, yet `external` expects the related role name `func`.

It should not be necessary for the user to know about this distinction,
so in this commit, we add logic, to first look if the name relates to a role name (as previous, to not be back-breaking) but, if not, then also look if the name relates to an object that has a known role and, if so, use that.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-19 13:42:50 +01:00
Chris Sewell
b0f096f440
Add show_warning_types configuration variable (#12131)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-19 10:22:28 +01:00
James Addison
7894b5a269
[tests] linkcheck: add test coverage for behaviour of a locally-existing file. (#12128)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-18 18:36:22 +01:00
Bénédikt Tran
ff252861a7
[tests] add missing `@pytest.mark.sphinx` markers (#12125) 2024-03-18 11:16:15 +01:00
Bénédikt Tran
6ac2210109
[tests] use deduced `srcdir` instead of an explicit one (#12124) 2024-03-18 10:59:48 +01:00
James Addison
bf0bec3b4b
[search] filter script and style elements from search result summary text. (#12057)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-17 15:14:03 +01:00
danieleades
4f7318767c
[lint] extend FURB lints (#12088) 2024-03-17 12:06:39 +01:00
Bénédikt Tran
57e302ed74
[lint] run `mypy on tests/test_addnodes.py` (#12111) 2024-03-16 18:38:22 +01:00
Bénédikt Tran
b0ded2e624
[lint] run `mypy on test_application.py` (#12112) 2024-03-16 18:29:44 +01:00
Bénédikt Tran
2df5b0a8ab
[lint] whitelist all test files except configuration and utils in tests (#12109) 2024-03-16 18:06:58 +01:00
James Addison
5695b76f05
[tests] epub: skip the epubcheck test if Java or epubcheck itself are not found (#12098)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-15 12:02:41 +01:00
Bénédikt Tran
98d0cc8602
[tests] skip tests that need remote content if host is offline (#12091) 2024-03-14 15:33:24 +01:00
Bénédikt Tran
c86e90842f
[autodoc] add support for singledispatchmethod class methods (#11284) 2024-03-14 12:26:35 +01:00
Bénédikt Tran
dbb4da375f
[tests] correctly intercept or suppress warnings in tests (#12085) 2024-03-14 11:45:45 +01:00
danieleades
92380e60d1
[lint] add RUFF005 lint (#12068)
Co-authored-by: daniel.eades <daniel.eades@seebyte.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-14 11:26:30 +01:00
danieleades
fb91cb3f43
[lint] add FURB105 lint (#12069)
Co-authored-by: daniel.eades <daniel.eades@seebyte.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-14 11:05:40 +01:00
danieleades
d74a450213
[deps] bump ruff version (#12065)
Co-authored-by: daniel.eades <daniel.eades@seebyte.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-14 10:42:55 +01:00
James Addison
c6bd97ceae
Revert "tests: implement readiness check before yielding local-http(s) test servers" (#12078) 2024-03-14 09:01:17 +01:00
James Addison
5523c9bbe4
[tests] reflect changes to Enum signature in Python 3.13 (#12054) 2024-03-08 11:58:04 +01:00
James Addison
1bfddf81e0
[CI/CD] implement readiness check before yielding local-http(s) test servers (#12050)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-08 11:16:31 +01:00
Will Lachance
ae51974e21
[search] fix multiple term matching edge case (#11960) 2024-03-03 18:01:10 +01:00
Will Lachance
1e4f80d7a4
[search] fix partial matches overwriting full matches (#11958) 2024-03-03 15:18:07 +01:00
Ned Batchelder
a7df31cfc6
[render] do not use a dash if there's no description to introduce (#12035)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-03-03 10:46:11 +01:00
Bénédikt Tran
d8c301482d
[hotfix] fix a warning in #12036 (#12043) 2024-03-03 09:29:47 +00:00
Ned Batchelder
574519900e
[test] force rendering of ANSI colors for non-tty objects (#12036) 2024-03-02 17:36:41 +01:00
Michael Goerz
265ffeedbd
[intersphinx] allow case-insensitive match of label-refs through intersphinx (#12033) 2024-03-02 12:39:51 +01:00
Will Lachance
9a30ca7da1
[HTML search] use anchor for search preview (#11944) 2024-02-27 15:22:52 +01:00
James Addison
8aa5edd585
[config] copyright correction logic: handle year-to-year ranges without trailing authorship info (#11914) 2024-02-24 16:21:29 +01:00
Bénédikt Tran
707bfbd669
[gettext] fix flaky test on windows (#11940) 2024-02-24 13:34:52 +01:00
MatrixEditor
182053198d
Added support for `slice` objects in subscriptions (#11981)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-02-14 14:45:30 +01:00
Bénédikt Tran
08386826fb
Add tests for `:manpage:` inside a title (#11705) 2024-02-14 10:33:09 +01:00
Bénédikt Tran
b587eb243a
Fix `:paramtype:` reference targets (#11964) 2024-02-14 00:04:49 +01:00
Frank Dana
41ab0f9a41
[test] add py:currentmodule unit test (#11920) 2024-02-03 16:14:26 +01:00
j-carson
cd2bf0a7e5
#11917 - Fix rendering of inherited members for Python 3.9 (#11919)
Co-authored-by: j-carson <j-carson@fastmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-02-03 10:46:13 +01:00
danieleades
f9c8943889
Use `# NoQA` consistently (#11903)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-01-21 20:20:58 +00:00
Hugo van Kemenade
95b2cce9a0
Add a `versionremoved` directive (#11905)
Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-01-21 20:12:52 +00:00
James Addison
2418e007ce
Support unary subtraction in annotation parsing (#11904) 2024-01-21 14:31:04 +00:00
Adam Turner
360c7a8022 Load themes through iteration rather than recursion 2024-01-21 03:59:31 +00:00
Adam Turner
99dd0cb4c6 Refactor `sphinx.theming` to prepare for iterative loading 2024-01-21 03:59:31 +00:00
Adam Turner
0ca2ddf924 Make various theme-related objects private 2024-01-21 03:59:31 +00:00
Adam Turner
e9dcfebcf9 Split the Python domain into multiple modules
``sphinx.domains.python`` was previously over 1,700 lines long
2024-01-19 03:55:47 +00:00
Adam Turner
1327ec71f2 Fix flake8 in test_build_latex 2024-01-19 03:28:23 +00:00
Adam Turner
4f962bf8e0 Split the C domain into multiple modules
``sphinx.domains.c`` was previously over 3,90 lines long
2024-01-19 03:28:23 +00:00
Adam Turner
7d30821e87 Split the C++ domain into multiple modules
``sphinx.domains.cpp`` was previously over 8,200 lines long
2024-01-19 03:28:23 +00:00
Adam Turner
38ac67bd6c Use long `re` flags 2024-01-19 02:28:06 +00:00
Adam Turner
183dd51f4d Explode the test matrix for test_build_latex_doc 2024-01-19 02:28:06 +00:00
Adam Turner
4c9364896e Consolidate warnings tests in `test_build_warnings` 2024-01-19 02:28:06 +00:00
Adam Turner
6fab64fb55 Explicitly remove the `autodoc_fodder` module 2024-01-19 02:28:06 +00:00
Adam Turner
f195c4ae87
Various C++ domain performance improvements (#11895)
Authored-by: Jakob Lykke Andersen <Jakob@caput.dk>
Co-authored-by: Jakob Lykke Andersen <Jakob@caput.dk>
2024-01-19 02:20:43 +00:00
Adam Turner
e3b613aa37 Clean up global state in SphinxTestApp 2024-01-18 23:30:22 +00:00
Adam Turner
1785fc9352 Remove spurious blank lines 2024-01-18 01:26:17 +00:00
Adam Turner
311ca30564 Improve `check_xpath` 2024-01-18 01:21:09 +00:00
Adam Turner
898e50c2c7 Remove `flat_dict` 2024-01-18 01:16:49 +00:00
Adam Turner
0331bdec0e Fix import order 2024-01-18 00:54:27 +00:00
Adam Turner
7800bf00dc Split `test_domain_py` 2024-01-18 00:52:25 +00:00
Adam Turner
1cb9fc3e63 Split `test_build_html` 2024-01-18 00:52:25 +00:00
Adam Turner
462404cb25 Organise tests into directories 2024-01-17 03:56:35 +00:00
Adam Turner
841f2bd9b7 Remove unneeded uses of `flat_dict()` 2024-01-17 01:58:52 +00:00
Nicolas Peugnet
59cf4d4c35
Allow custom targets in the manpage role (#11825)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-01-17 01:09:18 +00:00
James Addison
95fb0e5e57
Ensure that document titles are sorted in `searchindex.js` (#11888) 2024-01-17 01:08:29 +00:00
Adam Turner
569fde84d4 Happy New Year! 2024-01-16 22:13:47 +00:00
Adam Turner
55f3089981 Improve uses of `str.join` with a throwaway list 2024-01-16 22:06:34 +00:00
Shengyu Zhang
1b39b20479
Use `repr() when an enum has a custom __repr__()` (#11879)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-01-16 20:28:22 +00:00
danieleades
f7fbfaa471
Enable various pydocstyle (D) rules (#11878)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2024-01-14 21:13:46 +00:00
Adam Turner
23cef9b59a Use `https://` where possible 2024-01-14 04:18:57 +00:00
James Addison
9e198c70fd
linkcheck: add a distinct 'timeout' reporting status (#11876) 2024-01-13 08:14:06 +00:00
James Addison
3b5d2afb9a
Fix 'test_html_scaled_image_link' for Docutils' HEAD (#11863)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-01-10 01:01:47 +00:00
James Addison
5211c01646
Enable reporting HTTP 401 hyperlinks as broken in linkcheck (#11684)
Co-authored-by: picnixz <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-01-09 12:33:40 +00:00
Adam Turner
db9e476288
Increase the minimum supported version of Alabaster to 0.7.14 (#11858) 2024-01-08 19:49:04 +00:00
Adam Turner
18394ae96b
Add more types with an incorrect `__module__` attribute (#11861) 2024-01-08 18:25:05 +00:00
Adam Turner
e570f56022 Enable flake8-logging (LOG) rules 2024-01-04 04:16:13 +00:00
Adam Turner
1b4177540e Enable RUF017 2024-01-04 04:12:26 +00:00
Adam Turner
97a83acb17 Enable RUF013 2024-01-04 04:12:26 +00:00
Adam Turner
9d6667d8f7 Enable Ruff perflint (PERF) rules 2024-01-04 04:12:26 +00:00
Adam Turner
3d98eeea79 Update Ruff to 0.1.11 2024-01-04 02:43:52 +00:00
Dimitri Papadopoulos Orfanos
460a63010f
Fix various spelling errors (#11735) 2024-01-04 02:37:44 +00:00
Adam Turner
efd24cf4ca
Defer computation of configuration values (#11855) 2024-01-04 02:23:45 +00:00
Adam Turner
4ce2d84761 Move special-case bool conversion to 'gettext' 2024-01-03 23:41:35 +00:00
Adam Turner
68af0ac2be Make `Config.values` private 2024-01-03 22:17:11 +00:00
Adam Turner
259118d182 Narrow the type for configuration option 'valid_types' values 2024-01-03 21:51:39 +00:00
Adam Turner
fd23cf0256 Introduce a configuration option type
* Normalise rebuild values
* Ensure that the tuple interface continues to work
2024-01-03 19:58:55 +00:00
Dimitri Papadopoulos Orfanos
b9691c0ce6
Add some recent Ruff rules (#11833) 2024-01-02 01:22:08 +00:00
James Addison
d66d51ad8c
test_build_linkcheck: test_defaults: fix line-number assertion when using docutils 0.21b+ (#11818)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2023-12-30 13:38:30 +01:00
danieleades
f7f4fb42b0
Enable more entire categories in Ruff (#11816)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-12-29 09:55:28 +00:00
James Addison
246312287e
Resolve lint warnings reported by Ruff (#11719) 2023-12-28 06:51:32 +00:00
danieleades
64e7ba5e3f
Enable the entire pycodestyle category (#11820)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-12-28 06:41:32 +00:00
Hugo van Kemenade
7d4ca9cb3e
Fix autodoc tests for Python 3.11 and later (#11793)
Since Python 3.11.7, 3.12.0 and 3.13.0a2, "list of weak references to the object (if defined)" was changed to "list of weak references to the object".

Add a version check to decide which text to assert.
2023-12-26 04:10:22 +00:00
Adam Turner
8878bee000 Replace the header image with a new SVG logo 2023-10-04 16:56:46 +01:00
James Addison
71d3eaee75
Add 'noindex' meta robots tag to the search results page (#11700) 2023-10-03 14:15:57 +01:00
Jakob Lykke Andersen
b9c85984d2 intersphinx: Group all std domain tests together 2023-09-21 23:04:42 +01:00
Bénédikt Tran
46f8f76e56
Fix the lazy loading conditions for MathJax (#11597)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-09-21 18:18:09 +01:00
Aryaz Eghbali
abf42e901e
Skip all hidden directories in `CatalogRepository` (#11667)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-09-21 09:30:26 +00:00
Bénédikt Tran
5fe0bd41eb
Strip ANSI control codes when writing to the warnings file (#11624)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-09-21 10:01:07 +01:00
Adam Turner
cb0c6a359b Add `sphinx.util._strip_escape_sequences` 2023-09-20 23:55:00 +01:00
Pietro Albini
8e768e6c23
Make `searchindex.js deterministic (#11665) 2023-09-16 04:36:51 +01:00
Vinay Sajip
f0c25a0ada
Raise a useful error if `theme.conf` doesn't exist (#11671) 2023-09-14 11:49:41 +01:00
Matt Wozniski
43d69755df
Leverage `importlib.reload` for reloading modules (#11679)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-09-13 22:58:35 +01:00
Adam Turner
3d0110a95a Enable test_cython on Python 3.12 2023-09-13 03:07:19 +01:00
Adam Turner
2a631f97ef Restore support for YYYY copyright lines 2023-08-30 22:51:23 +01:00
Adam Turner
ff18318613
Add an `'include-read'` event (#11657) 2023-08-30 22:21:16 +01:00
Adam Turner
7d046a862f
Allow `?config=... in mathjax_path` (#11659) 2023-08-30 19:35:29 +01:00
Albert Y. Shih
4692208fde
Fix two relative link bugs in inheritance diagrams (#11634)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-08-30 18:44:37 +01:00
Matt Wozniski
8248be31db
autodoc: Reset `sys.modules` on partial import failure (#11645)
If importing with ``TYPE_CHECKING is True`` fails, reset the state of ``sys.modules``
so that the attempt with ``TYPE_CHECKING is False`` may succeed.

Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-08-29 20:05:41 +01:00
Dmitry Shachnev
2f025a4b22
linkcheck: Fix conversion from UTC time to the UNIX epoch (#11649)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-28 03:39:13 +00:00
Adam Turner
5e88b9f886
Fix the MoveModuleTargets transform (#11647)
This resolves a regression introduced in GH-10478
(commit 97d2c5da2f).
2023-08-26 09:30:28 +00:00
Bénédikt Tran
76658c49a9
Fix `sphinx.ext.autodoc.preserve_defaults` (#11550)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-17 01:19:25 +00:00
Adam Turner
9d8ef833db Fix `test_inspect_main_noargs` 2023-08-16 23:49:30 +01:00
Adam Turner
e3f0342932 Enable E241 (Multiple spaces after comma) 2023-08-15 18:16:27 +01:00
Stephen Finucane
53a930f8c7
Fix C coverage support in `sphinx.ext.coverage` (#11591) 2023-08-15 14:50:15 +01:00
Bénédikt Tran
19018f01b6
Improve SigElementFallbackTransform fallback logic. (#11311)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-15 14:25:25 +01:00
picnixz
2656f34848
Fix rendering of `Literal` annotations with enum values (#11517)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-08-14 23:33:57 +01:00
Riccardo Mori
137b3adce1
Make stringify_annotation recursive on builtins with args (#11570)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-08-14 19:28:12 +01:00
Halldor Fannar
0bad447070
Emit "source-read" events for files read via the `include` directive (#11510)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
Co-authored-by: picnixz <10796600+picnixz@users.noreply.github.com>
2023-08-14 16:02:04 +01:00
Adam Turner
08dbaa793e Fix SIM117 (use single 'with' statement) 2023-08-14 00:18:13 +01:00
Adam Turner
3600862477 Fix SIM118 (use `key in dict not key in dict.keys()`) 2023-08-14 00:18:13 +01:00
Adam Turner
1fae1470a4 Fix SLOT002 (subclasses of collections.namedtuple() should define `__slots__`) 2023-08-13 22:32:46 +01:00
Adam Turner
d80eab689d Fix EM10{1,2} (exception must not use a string) 2023-08-13 22:11:15 +01:00
Adam Turner
b533ef1662 Fix DTZ00{0-4} (Do not use naive datetime objects) 2023-08-13 22:11:15 +01:00
Adam Turner
d4169a32e7 Use `parsedate_tz` in the linkcheck builder 2023-08-13 22:11:15 +01:00
Adam Turner
e010e24728 Fix B904 (raise exceptions with `raise ... from ...`) 2023-08-13 22:11:15 +01:00
Adam Turner
bbfd3cd248 Fix B023 (function definition does not bind loop variable) 2023-08-13 22:11:15 +01:00
Adam Turner
1dcc112608 Fix B006 (Do not use mutable data structures for argument defaults) 2023-08-13 22:11:15 +01:00
Adam Turner
92e60b3f15 Fix PGH003 (type: ignore comment must have parameters) 2023-08-13 22:11:15 +01:00
Adam Turner
e2ff04eafe Fix RES102 (Remove unnecessary parentheses) 2023-08-13 22:11:15 +01:00
picnixz
af38180a14
Allow inline links in first line of Google style docstrings (#11316) 2023-08-12 07:24:28 +01:00
Adam Turner
0a42d91e7e Fix `test_{html,latex}_warnings` 2023-08-12 06:40:55 +01:00
Adam Turner
7d8df06e19 Relax Pygments parsing on lexing failures 2023-08-12 06:27:16 +01:00
Adam Turner
7e9a2066c2 Be more ephemeral (in anchor link title text) 2023-08-12 05:30:38 +01:00
Adam Turner
2ef9728b6e
Mark idempotent translations as 'translated' (#11580) 2023-08-12 04:51:52 +01:00
Adam Turner
c19f0ac8e9 Clarify why `test_logging_in_ParallelTasks` fails on Windows 2023-08-12 04:24:09 +01:00
Adam Turner
1ea5a434b3 Fix `test_get_filename_for_language` on Windows 2023-08-12 04:23:56 +01:00
Adam Turner
1a47e3a8be Fix `test_missing_reference` on Windows 2023-08-12 04:23:48 +01:00
Adam Turner
8111a3a211 Fix `test_html_inventory` on Windows 2023-08-12 04:23:33 +01:00
Adam Turner
a392f4d5f4 Fix `test_graphviz_svg_html` on Windows 2023-08-12 02:57:55 +01:00
Adam Turner
58b628263f
Deprecate `css_files and script_files` (#11582) 2023-08-12 00:46:44 +00:00
Adam Turner
818895a158 Placate `isort` 2023-08-12 00:27:13 +01:00
Adam Turner
42a6546404 Move `_file_checksum() to sphinx.builders.html._assets` 2023-08-12 00:20:00 +01:00
Adam Turner
44a7820cd9 Raise an error when local asset files contain a `?` 2023-08-11 22:07:07 +01:00
Adam Turner
177565584a
Tighten Pytest configuration (#11577) 2023-08-10 20:48:04 +01:00
Adam Turner
b91d763db8 Fix PT011 (`pytest.raises(ValueError)` is too broad) 2023-08-10 13:11:25 +01:00
Adam Turner
78976662d9 Fix PT003 (implied `scope='function'`) 2023-08-10 13:11:25 +01:00
Adam Turner
fb5b80c340 Fix PT007 (use lists in `pytest.mark.parametrize`) 2023-08-10 13:11:24 +01:00
Adam Turner
02e011e4ff Fix PT006 (use tuples in `pytest.mark.parametrize`) 2023-08-10 13:00:48 +01:00
Adam Turner
976dd07ffe
Require Pygments 2.14 or later (#11576) 2023-08-10 11:35:45 +00:00
Adam Turner
8cabf08668
Cache the docname<->filename map in `Project` instances (#11575) 2023-08-10 12:25:38 +01:00
Adam Turner
4dd2ed4bde
Spring-clean `test_build_gettext` (#11573) 2023-08-10 09:20:48 +00:00
alvinhochun
c52d55ebd7
Exclude substitution definitions from the `gettext` builder (#9846)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-10 10:01:25 +01:00
Adam Turner
6f5a99a05d
Refactor `sphinx.environment.adapters.TocTree` (#11565) 2023-08-09 15:43:26 +01:00
Albert Y. Shih
3e30fa36a2
Fix missing and broken links in inheritance diagrams (#10614)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-08-08 20:32:58 +01:00
grayjk
ac2b7599d2
autosummary: Extract summary line after "e.g." (#11196)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-07 22:20:30 +01:00
Adam Turner
8cd677f929 Add a new test for `_file_checksum` 2023-08-07 21:51:25 +01:00
Adam Turner
85ffb3b0fd Fix `test_assets_order` for Pygments 2.16 2023-08-07 21:51:05 +01:00
Adam Turner
083d573b7c Fix `test_dark_style` for Pygments 2.16 2023-08-07 21:04:14 +01:00
Dmitry Shachnev
8a990db49e
Update `test_captioned_code_block` for latest Docutils (#11551)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-08-05 04:46:41 +01:00
Adam Turner
43ab23a61f Merge branch '7.1.x'
# Conflicts:
#	CHANGES
#	sphinx/__init__.py
2023-08-02 02:58:30 +01:00
James Addison
06c1339bb3
Ensure that `linkcheck_anchors` is properly respected (#11544)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-02 02:55:37 +01:00
Jean-François B
4958d2abf1 Fix flake8 E231 reported linting failure 2023-08-02 02:04:55 +01:00
Jean-François B
eb0499a696 Fix flake8 E231 reported linting failure 2023-07-30 15:00:55 +02:00
Adam Turner
629b862cde
Spring-clean `sphinx.testing.utils` (#11534) 2023-07-28 23:24:13 +01:00
Adam Turner
1cfb68d8be
Consistently name the object description options (#11533)
*  The directive option ``:noindex:`` was renamed to ``:no-index:``.
*  The directive option ``:noindexentry:`` was renamed to ``:no-index-entry:``.
*  The directive option ``:nocontentsentry:`` was renamed to ``:no-contents-entry:``.

The previous names are retained as aliases, but will be deprecated
and removed in a future version of Sphinx (9.0 or later).
2023-07-28 22:30:26 +01:00
latosha-maltba
97d2c5da2f
Add the `:no-typesetting:` option for only creating targets (#10478)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-07-28 19:43:27 +01:00
Christoph Hasse
fca33a203d
Add additional `stringify_annotation` tests (#11027) 2023-07-28 06:45:20 +01:00
benkrikler
762ed8540a
Add line numbers in `sphinx.ext.viewdoc` (#6319)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-07-28 05:52:48 +01:00
Ralf Grubenmann
6178163cb1
Fix relative references in SVGs generated by `sphinx.ext.graphviz` (#11078)
Co-authored-by: Ralf Grubenmann <ralf.grubenmann@gmail.com>
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-07-28 05:47:23 +01:00
Martin Liška
2c0b81d88b
Refactor `test_attrgetter_using` (#11293)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
2023-07-28 04:20:36 +01:00
Jorge Leitao
99f9209924
Add summary statistics to the coverage report (#5474)
The current implementation of ``sphinx.ext.coverage`` outputs which
methods,classes, and functions are documented.
This commit adds a short summary of this report in terms of
``documented objects / total number of objects``,
both per module and total.

The purpose of this is to support
a currently not mainstream but relevant use-case:
a coverage report on the number of objects that are documented.

By having the statistics on the report or on the stdout,
a regex expression can capture the coverage percentage
(e.g. ``re.search(r'TOTAL.*?([0-9.]{4,6}\%)', d).group(1)``)
and use it e.g. in another report, a status badge, etc.

Two options were added to the configuration to allow a table
to be printed in the report and/or to stdout.

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-07-28 02:33:42 +01:00
Adam Turner
7cce00aa7d
Refactor `sphinx.util.inspect` and tests (#11527) 2023-07-28 02:05:40 +01:00
Adam Turner
49d8304670
Start using `pathlib.Path and deprecate sphinx.testing.path` (#11526) 2023-07-28 00:39:12 +01:00
James Addison
467e94dc62
object inspection: produce deterministic descriptions for nested collection datastructures (#11312)
``util.inspect.object_description`` already attempts to sort collections, but this can fail.
This commit handles the failure case by using string-based object descriptions
as a fallback deterministic sort ordering, and protects against recursive collections.

Co-authored-by: Chris Lamb <lamby@debian.org>
Co-authored-by: Faidon Liambotis <paravoid@debian.org>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-07-27 22:45:51 +01:00
Adam Turner
a01e1a21ac Merge branch '7.1.x'
# Conflicts:
#	CHANGES
#	sphinx/__init__.py
#	sphinx/config.py
2023-07-27 21:38:35 +01:00
Adam Turner
8452300d54
Fix multi-line copyright when `SOURCE_DATE_EPOCH` is set (#11524)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2023-07-27 21:27:14 +01:00
Adam Turner
5cf3dce36e
Deprecate `md5 and sha1 wrappers in sphinx.util` (#11512) 2023-07-25 02:29:28 +01:00
Adam Turner
ad61e41157
Drop support for Python 3.8 (#11511) 2023-07-25 02:07:23 +01:00
Adam Turner
066e0fabc6
Add translation progress information (#11509)
Co-authored-by: Manuel Kaufmann <humitos@gmail.com>
2023-07-24 20:19:31 +01:00