Merge branch 'master' into fix-searchtools

This commit is contained in:
Takeshi KOMIYA 2022-03-20 01:49:48 +09:00 committed by GitHub
commit 2beeaf746f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
420 changed files with 3612 additions and 5745 deletions

View File

@ -7,6 +7,7 @@ on:
jobs: jobs:
test: test:
if: github.repository_owner == 'sphinx-doc'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -10,6 +10,7 @@ permissions:
jobs: jobs:
action: action:
if: github.repository_owner == 'sphinx-doc'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: dessant/lock-threads@v2 - uses: dessant/lock-threads@v2

View File

@ -7,6 +7,7 @@ on:
jobs: jobs:
push: push:
if: github.repository_owner == 'sphinx-doc'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -27,6 +28,7 @@ jobs:
TX_TOKEN: ${{ secrets.TX_TOKEN }} TX_TOKEN: ${{ secrets.TX_TOKEN }}
pull: pull:
if: github.repository_owner == 'sphinx-doc'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -74,6 +74,7 @@ Other contributors, listed alphabetically, are:
* Pauli Virtanen -- autodoc improvements, autosummary extension * Pauli Virtanen -- autodoc improvements, autosummary extension
* Eric N. Vander Weele -- autodoc improvements * Eric N. Vander Weele -- autodoc improvements
* Stefan van der Walt -- autosummary extension * Stefan van der Walt -- autosummary extension
* Hugo van Kemenade -- support FORCE_COLOR and NO_COLOR
* Thomas Waldmann -- apidoc module fixes * Thomas Waldmann -- apidoc module fixes
* John Waltman -- Texinfo builder * John Waltman -- Texinfo builder
* Barry Warsaw -- setup command improvements * Barry Warsaw -- setup command improvements

View File

@ -91,12 +91,16 @@ Deprecated
Features added Features added
-------------- --------------
* #10260: Enable ``FORCE_COLOR`` and ``NO_COLOR`` for terminal colouring
* #10234: autosummary: Add "autosummary" CSS class to summary tables
* #10125: extlinks: Improve suggestion message for a reference having title * #10125: extlinks: Improve suggestion message for a reference having title
* #9494, #9456: html search: Add a config variable * #9494, #9456: html search: Add a config variable
:confval:`html_show_search_summary` to enable/disable the search summaries :confval:`html_show_search_summary` to enable/disable the search summaries
* #9337: HTML theme, add option ``enable_search_shortcuts`` that enables :kbd:'/' as * #9337: HTML theme, add option ``enable_search_shortcuts`` that enables :kbd:'/' as
a Quick search shortcut and :kbd:`Esc` shortcut that a Quick search shortcut and :kbd:`Esc` shortcut that
removes search highlighting. removes search highlighting.
* #10252: C++, support attributes on classes, unions, and enums.
* #10253: :rst:dir:`pep` role now generates URLs based on peps.python.org
Bugs fixed Bugs fixed
---------- ----------

View File

@ -1,6 +1,9 @@
License for Sphinx License for Sphinx
================== ==================
Unless otherwise indicated, all code in the Sphinx project is licenced under the
two clause BSD licence below.
Copyright (c) 2007-2022 by the Sphinx team (see AUTHORS file). Copyright (c) 2007-2022 by the Sphinx team (see AUTHORS file).
All rights reserved. All rights reserved.

View File

@ -304,6 +304,22 @@ variables to customize behavior:
Additional options for :program:`sphinx-build`. These options can Additional options for :program:`sphinx-build`. These options can
also be set via the shortcut variable **O** (capital 'o'). also be set via the shortcut variable **O** (capital 'o').
.. describe:: NO_COLOR
When set (regardless of value), :program:`sphinx-build` will not use color
in terminal output. ``NO_COLOR`` takes precedence over ``FORCE_COLOR``. See
`no-color.org <https://no-color.org/>`__ for other libraries supporting this
community standard.
.. versionadded:: 4.5.0
.. describe:: FORCE_COLOR
When set (regardless of value), :program:`sphinx-build` will use color in
terminal output. ``NO_COLOR`` takes precedence over ``FORCE_COLOR``.
.. versionadded:: 4.5.0
.. _when-deprecation-warnings-are-displayed: .. _when-deprecation-warnings-are-displayed:
Deprecation Warnings Deprecation Warnings

View File

@ -211,6 +211,12 @@ The following directives are provided for module and class contents:
.. versionadded:: 4.0 .. versionadded:: 4.0
.. rst::directive:option:: module
:type: text
Describe the location where the object is defined. The default value is
the module specified by :rst:dir:`py:currentmodule`.
.. rst:directive:: .. py:data:: name .. rst:directive:: .. py:data:: name
Describes global data in a module, including both variables and values used Describes global data in a module, including both variables and values used
@ -237,6 +243,12 @@ The following directives are provided for module and class contents:
.. versionadded:: 4.0 .. versionadded:: 4.0
.. rst::directive:option:: module
:type: text
Describe the location where the object is defined. The default value is
the module specified by :rst:dir:`py:currentmodule`.
.. rst:directive:: .. py:exception:: name .. rst:directive:: .. py:exception:: name
Describes an exception class. The signature can, but need not include Describes an exception class. The signature can, but need not include
@ -251,6 +263,12 @@ The following directives are provided for module and class contents:
.. versionadded:: 3.1 .. versionadded:: 3.1
.. rst::directive:option:: module
:type: text
Describe the location where the object is defined. The default value is
the module specified by :rst:dir:`py:currentmodule`.
.. rst:directive:: .. py:class:: name .. rst:directive:: .. py:class:: name
.. py:class:: name(parameters) .. py:class:: name(parameters)
@ -291,6 +309,12 @@ The following directives are provided for module and class contents:
.. versionadded:: 3.1 .. versionadded:: 3.1
.. rst::directive:option:: module
:type: text
Describe the location where the object is defined. The default value is
the module specified by :rst:dir:`py:currentmodule`.
.. rst:directive:: .. py:attribute:: name .. rst:directive:: .. py:attribute:: name
Describes an object data attribute. The description should include Describes an object data attribute. The description should include
@ -317,6 +341,12 @@ The following directives are provided for module and class contents:
.. versionadded:: 4.0 .. versionadded:: 4.0
.. rst::directive:option:: module
:type: text
Describe the location where the object is defined. The default value is
the module specified by :rst:dir:`py:currentmodule`.
.. rst:directive:: .. py:property:: name .. rst:directive:: .. py:property:: name
Describes an object property. Describes an object property.
@ -340,6 +370,12 @@ The following directives are provided for module and class contents:
.. rst:directive:option:: type: type of the property .. rst:directive:option:: type: type of the property
:type: text :type: text
.. rst::directive:option:: module
:type: text
Describe the location where the object is defined. The default value is
the module specified by :rst:dir:`py:currentmodule`.
.. rst:directive:: .. py:method:: name(parameters) .. rst:directive:: .. py:method:: name(parameters)
Describes an object method. The parameters should not include the ``self`` Describes an object method. The parameters should not include the ``self``
@ -385,6 +421,12 @@ The following directives are provided for module and class contents:
.. versionadded:: 3.1 .. versionadded:: 3.1
.. rst::directive:option:: module
:type: text
Describe the location where the object is defined. The default value is
the module specified by :rst:dir:`py:currentmodule`.
.. rst:directive:option:: property .. rst:directive:option:: property
:type: no value :type: no value

86
package-lock.json generated
View File

@ -1510,9 +1510,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "17.0.17", "version": "17.0.21",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz",
"integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==", "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==",
"dev": true "dev": true
}, },
"accepts": { "accepts": {
@ -1575,20 +1575,20 @@
"dev": true "dev": true
}, },
"body-parser": { "body-parser": {
"version": "1.19.1", "version": "1.19.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
"integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
"dev": true, "dev": true,
"requires": { "requires": {
"bytes": "3.1.1", "bytes": "3.1.2",
"content-type": "~1.0.4", "content-type": "~1.0.4",
"debug": "2.6.9", "debug": "2.6.9",
"depd": "~1.1.2", "depd": "~1.1.2",
"http-errors": "1.8.1", "http-errors": "1.8.1",
"iconv-lite": "0.4.24", "iconv-lite": "0.4.24",
"on-finished": "~2.3.0", "on-finished": "~2.3.0",
"qs": "6.9.6", "qs": "6.9.7",
"raw-body": "2.4.2", "raw-body": "2.4.3",
"type-is": "~1.6.18" "type-is": "~1.6.18"
} }
}, },
@ -1612,9 +1612,9 @@
} }
}, },
"bytes": { "bytes": {
"version": "3.1.1", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true "dev": true
}, },
"chokidar": { "chokidar": {
@ -1775,9 +1775,9 @@
"dev": true "dev": true
}, },
"engine.io": { "engine.io": {
"version": "6.1.2", "version": "6.1.3",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz",
"integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/cookie": "^0.4.1", "@types/cookie": "^0.4.1",
@ -1788,7 +1788,7 @@
"cookie": "~0.4.1", "cookie": "~0.4.1",
"cors": "~2.8.5", "cors": "~2.8.5",
"debug": "~4.3.1", "debug": "~4.3.1",
"engine.io-parser": "~5.0.0", "engine.io-parser": "~5.0.3",
"ws": "~8.2.3" "ws": "~8.2.3"
}, },
"dependencies": { "dependencies": {
@ -1879,15 +1879,15 @@
"dev": true "dev": true
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.14.8", "version": "1.14.9",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
"integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
"dev": true "dev": true
}, },
"fs-extra": { "fs-extra": {
"version": "10.0.0", "version": "10.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "^4.2.0", "graceful-fs": "^4.2.0",
@ -2072,9 +2072,9 @@
} }
}, },
"karma": { "karma": {
"version": "6.3.14", "version": "6.3.16",
"resolved": "https://registry.npmjs.org/karma/-/karma-6.3.14.tgz", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz",
"integrity": "sha512-SDFoU5F4LdosEiUVWUDRPCV/C1zQRNtIakx7rWkigf7R4sxGADlSEeOma4S1f/js7YAzvqLW92ByoiQptg+8oQ==", "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"body-parser": "^1.19.0", "body-parser": "^1.19.0",
@ -2092,6 +2092,7 @@
"log4js": "^6.4.1", "log4js": "^6.4.1",
"mime": "^2.5.2", "mime": "^2.5.2",
"minimatch": "^3.0.4", "minimatch": "^3.0.4",
"mkdirp": "^0.5.5",
"qjobs": "^1.2.0", "qjobs": "^1.2.0",
"range-parser": "^1.2.1", "range-parser": "^1.2.1",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
@ -2185,14 +2186,29 @@
} }
}, },
"minimatch": { "minimatch": {
"version": "3.0.5", "version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true, "dev": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
}, },
"minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
"mkdirp": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"dev": true,
"requires": {
"minimist": "^1.2.5"
}
},
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@ -2260,9 +2276,9 @@
"dev": true "dev": true
}, },
"qs": { "qs": {
"version": "6.9.6", "version": "6.9.7",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
"integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
"dev": true "dev": true
}, },
"range-parser": { "range-parser": {
@ -2272,12 +2288,12 @@
"dev": true "dev": true
}, },
"raw-body": { "raw-body": {
"version": "2.4.2", "version": "2.4.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
"dev": true, "dev": true,
"requires": { "requires": {
"bytes": "3.1.1", "bytes": "3.1.2",
"http-errors": "1.8.1", "http-errors": "1.8.1",
"iconv-lite": "0.4.24", "iconv-lite": "0.4.24",
"unpipe": "1.0.0" "unpipe": "1.0.0"

View File

@ -12,7 +12,7 @@
}, },
"devDependencies": { "devDependencies": {
"jasmine-core": "^3.4.0", "jasmine-core": "^3.4.0",
"karma": "^6.3.14", "karma": "^6.3.16",
"karma-firefox-launcher": "^2.0.0", "karma-firefox-launcher": "^2.0.0",
"karma-jasmine": "^4.0.0" "karma-jasmine": "^4.0.0"
} }

View File

@ -35,12 +35,6 @@ import-order-style = smarkets
per-file-ignores = per-file-ignores =
tests/*: E501 tests/*: E501
[flake8:local-plugins]
extension =
X101 = utils.checks:sphinx_has_header
paths =
.
[isort] [isort]
line_length = 95 line_length = 95

View File

@ -1,12 +1,4 @@
""" """The Sphinx documentation toolchain."""
Sphinx
~~~~~~
The Sphinx documentation toolchain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
# Keep this file executable as-is in Python 3! # Keep this file executable as-is in Python 3!
# (Otherwise getting the version out of it from setup.py is impossible.) # (Otherwise getting the version out of it from setup.py is impossible.)

View File

@ -1,12 +1,4 @@
""" """The Sphinx documentation toolchain."""
sphinx.__main__
~~~~~~~~~~~~~~~
The Sphinx documentation toolchain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import sys import sys

View File

@ -1,12 +1,4 @@
""" """Additional docutils nodes."""
sphinx.addnodes
~~~~~~~~~~~~~~~
Additional docutils nodes.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import TYPE_CHECKING, Any, Dict, List, Sequence from typing import TYPE_CHECKING, Any, Dict, List, Sequence

View File

@ -1,13 +1,6 @@
""" """Sphinx application class and extensibility interface.
sphinx.application
~~~~~~~~~~~~~~~~~~
Sphinx application class and extensibility interface. Gracefully adapted from the TextPress system by Armin.
Gracefully adapted from the TextPress system by Armin.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import os import os

View File

@ -1,12 +1,4 @@
""" """Builder superclass for all builders."""
sphinx.builders
~~~~~~~~~~~~~~~
Builder superclass for all builders.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import pickle import pickle
import time import time

View File

@ -1,12 +1,4 @@
""" """Base class of epub2/epub3 builders."""
sphinx.builders._epub_base
~~~~~~~~~~~~~~~~~~~~~~~~~~
Base class of epub2/epub3 builders.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import html import html
import os import os

View File

@ -1,12 +1,4 @@
""" """Changelog builder."""
sphinx.builders.changes
~~~~~~~~~~~~~~~~~~~~~~~
Changelog builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import html import html
from os import path from os import path

View File

@ -1,12 +1,4 @@
""" """Directory HTML builders."""
sphinx.builders.dirhtml
~~~~~~~~~~~~~~~~~~~~~~~
Directory HTML builders.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from os import path from os import path
from typing import Any, Dict from typing import Any, Dict

View File

@ -1,12 +1,4 @@
""" """Do syntax checks, but no writing."""
sphinx.builders.dummy
~~~~~~~~~~~~~~~~~~~~~
Do syntax checks, but no writing.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, Set from typing import Any, Dict, Set

View File

@ -1,12 +1,6 @@
""" """Build epub3 files.
sphinx.builders.epub3
~~~~~~~~~~~~~~~~~~~~~
Build epub3 files. Originally derived from epub.py.
Originally derived from epub.py.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import html import html

View File

@ -1,12 +1,4 @@
""" """The MessageCatalogBuilder class."""
sphinx.builders.gettext
~~~~~~~~~~~~~~~~~~~~~~~
The MessageCatalogBuilder class.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from codecs import open from codecs import open
from collections import OrderedDict, defaultdict from collections import OrderedDict, defaultdict

View File

@ -1,12 +1,4 @@
""" """Several HTML builders."""
sphinx.builders.html
~~~~~~~~~~~~~~~~~~~~
Several HTML builders.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import html import html
import os import os

View File

@ -1,12 +1,4 @@
""" """Transforms for HTML builder."""
sphinx.builders.html.transforms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Transforms for HTML builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from typing import Any, Dict, List from typing import Any, Dict, List

View File

@ -1,12 +1,4 @@
""" """LaTeX builder."""
sphinx.builders.latex
~~~~~~~~~~~~~~~~~~~~~
LaTeX builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os import os
from os import path from os import path

View File

@ -1,12 +1,4 @@
""" """consntants for LaTeX builder."""
sphinx.builders.latex.constants
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
consntants for LaTeX builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict from typing import Any, Dict

View File

@ -1,12 +1,4 @@
""" """Additional nodes for LaTeX writer."""
sphinx.builders.latex.nodes
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Additional nodes for LaTeX writer.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from docutils import nodes from docutils import nodes

View File

@ -1,12 +1,4 @@
""" """Theming support for LaTeX builder."""
sphinx.builders.latex.theming
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Theming support for LaTeX builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import configparser import configparser
from os import path from os import path

View File

@ -1,12 +1,4 @@
""" """Transforms for LaTeX builder."""
sphinx.builders.latex.transforms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Transforms for LaTeX builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, List, Set, Tuple, cast from typing import Any, Dict, List, Set, Tuple, cast

View File

@ -1,12 +1,4 @@
""" """Utilities for LaTeX builder."""
sphinx.builders.latex.util
~~~~~~~~~~~~~~~~~~~~~~~~~~
Utilities for LaTeX builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Optional from typing import Optional

View File

@ -1,12 +1,4 @@
""" """The CheckExternalLinksBuilder class."""
sphinx.builders.linkcheck
~~~~~~~~~~~~~~~~~~~~~~~~~
The CheckExternalLinksBuilder class.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import json import json
import re import re

View File

@ -1,12 +1,4 @@
""" """Manual pages builder."""
sphinx.builders.manpage
~~~~~~~~~~~~~~~~~~~~~~~
Manual pages builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from os import path from os import path
from typing import Any, Dict, List, Set, Tuple, Union from typing import Any, Dict, List, Set, Tuple, Union

View File

@ -1,12 +1,4 @@
""" """Single HTML builders."""
sphinx.builders.singlehtml
~~~~~~~~~~~~~~~~~~~~~~~~~~
Single HTML builders.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from os import path from os import path
from typing import Any, Dict, List, Tuple, Union from typing import Any, Dict, List, Tuple, Union

View File

@ -1,12 +1,4 @@
""" """Texinfo builder."""
sphinx.builders.texinfo
~~~~~~~~~~~~~~~~~~~~~~~
Texinfo builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os import os
from os import path from os import path

View File

@ -1,12 +1,4 @@
""" """Plain-text Sphinx builder."""
sphinx.builders.text
~~~~~~~~~~~~~~~~~~~~
Plain-text Sphinx builder.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from os import path from os import path
from typing import Any, Dict, Iterator, Set, Tuple from typing import Any, Dict, Iterator, Set, Tuple

View File

@ -1,12 +1,4 @@
""" """Docutils-native XML and pseudo-XML builders."""
sphinx.builders.xml
~~~~~~~~~~~~~~~~~~~
Docutils-native XML and pseudo-XML builders.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from os import path from os import path
from typing import Any, Dict, Iterator, Set, Type, Union from typing import Any, Dict, Iterator, Set, Type, Union

View File

@ -1,9 +1 @@
""" """Modules for command line executables."""
sphinx.cmd
~~~~~~~~~~
Modules for command line executables.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""

View File

@ -1,12 +1,4 @@
""" """Build documentation from a provided source."""
sphinx.cmd.build
~~~~~~~~~~~~~~~~
Build documentation from a provided source.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import argparse import argparse
import bdb import bdb

View File

@ -1,17 +1,10 @@
""" """sphinx-build -M command-line handling.
sphinx.cmd.make_mode
~~~~~~~~~~~~~~~~~~~~
sphinx-build -M command-line handling. This replaces the old, platform-dependent and once-generated content
of Makefile / make.bat.
This replaces the old, platform-dependent and once-generated content This is in its own module so that importing it is fast. It should not
of Makefile / make.bat. import the main Sphinx modules (like sphinx.applications, sphinx.builders).
This is in its own module so that importing it is fast. It should not
import the main Sphinx modules (like sphinx.applications, sphinx.builders).
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import os import os

View File

@ -1,12 +1,4 @@
""" """Quickly setup documentation source to work with Sphinx."""
sphinx.cmd.quickstart
~~~~~~~~~~~~~~~~~~~~~
Quickly setup documentation source to work with Sphinx.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import argparse import argparse
import locale import locale

View File

@ -1,12 +1,4 @@
""" """Build configuration file handling."""
sphinx.config
~~~~~~~~~~~~~
Build configuration file handling.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
import traceback import traceback

View File

@ -1,12 +1,4 @@
""" """Sphinx deprecation classes and utilities."""
sphinx.deprecation
~~~~~~~~~~~~~~~~~~
Sphinx deprecation classes and utilities.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import sys import sys
import warnings import warnings

View File

@ -1,12 +1,4 @@
""" """Handlers for additional ReST directives."""
sphinx.directives
~~~~~~~~~~~~~~~~~
Handlers for additional ReST directives.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from typing import TYPE_CHECKING, Any, Dict, Generic, List, Tuple, TypeVar, cast from typing import TYPE_CHECKING, Any, Dict, Generic, List, Tuple, TypeVar, cast

View File

@ -1,11 +1,3 @@
"""
sphinx.directives.code
~~~~~~~~~~~~~~~~~~~~~~
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import sys import sys
import textwrap import textwrap
from difflib import unified_diff from difflib import unified_diff

View File

@ -1,11 +1,3 @@
"""
sphinx.directives.other
~~~~~~~~~~~~~~~~~~~~~~~
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from typing import TYPE_CHECKING, Any, Dict, List, cast from typing import TYPE_CHECKING, Any, Dict, List, cast

View File

@ -1,11 +1,3 @@
"""
sphinx.directives.patches
~~~~~~~~~~~~~~~~~~~~~~~~~
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os import os
import warnings import warnings
from os import path from os import path

View File

@ -1,12 +1,7 @@
""" """Support for domains.
sphinx.domains
~~~~~~~~~~~~~~
Support for domains, which are groupings of description directives Domains are groupings of description directives
and roles describing e.g. constructs of one programming language. and roles describing e.g. constructs of one programming language.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import copy import copy

View File

@ -1,12 +1,4 @@
""" """The C language domain."""
sphinx.domains.c
~~~~~~~~~~~~~~~~
The C language domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from typing import (Any, Callable, Dict, Generator, Iterator, List, Optional, Tuple, TypeVar, from typing import (Any, Callable, Dict, Generator, Iterator, List, Optional, Tuple, TypeVar,

View File

@ -1,12 +1,4 @@
""" """The changeset domain."""
sphinx.domains.changeset
~~~~~~~~~~~~~~~~~~~~~~~~
The changeset domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import TYPE_CHECKING, Any, Dict, List, NamedTuple, cast from typing import TYPE_CHECKING, Any, Dict, List, NamedTuple, cast

View File

@ -1,12 +1,4 @@
""" """The citation domain."""
sphinx.domains.citation
~~~~~~~~~~~~~~~~~~~~~~~
The citation domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple, cast from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple, cast

View File

@ -1,12 +1,4 @@
""" """The C++ language domain."""
sphinx.domains.cpp
~~~~~~~~~~~~~~~~~~
The C++ language domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from typing import (Any, Callable, Dict, Generator, Iterator, List, Optional, Tuple, TypeVar, from typing import (Any, Callable, Dict, Generator, Iterator, List, Optional, Tuple, TypeVar,
@ -267,7 +259,8 @@ T = TypeVar('T')
class_object: class_object:
goal: a class declaration, but with specification of a base class goal: a class declaration, but with specification of a base class
grammar: grammar:
nested-name "final"[opt] (":" base-specifier-list)[opt] attribute-specifier-seq[opt]
nested-name "final"[opt] (":" base-specifier-list)[opt]
base-specifier-list -> base-specifier-list ->
base-specifier "..."[opt] base-specifier "..."[opt]
| base-specifier-list, base-specifier "..."[opt] | base-specifier-list, base-specifier "..."[opt]
@ -281,7 +274,8 @@ T = TypeVar('T')
goal: an unscoped enum or a scoped enum, optionally with the underlying goal: an unscoped enum or a scoped enum, optionally with the underlying
type specified type specified
grammar: grammar:
("class" | "struct")[opt] visibility[opt] nested-name (":" type)[opt] ("class" | "struct")[opt] visibility[opt]
attribute-specifier-seq[opt] nested-name (":" type)[opt]
enumerator_object: enumerator_object:
goal: an element in a scoped or unscoped enum. The name should be goal: an element in a scoped or unscoped enum. The name should be
injected according to the scopedness. injected according to the scopedness.
@ -3318,16 +3312,20 @@ class ASTBaseClass(ASTBase):
class ASTClass(ASTBase): class ASTClass(ASTBase):
def __init__(self, name: ASTNestedName, final: bool, bases: List[ASTBaseClass]) -> None: def __init__(self, name: ASTNestedName, final: bool, bases: List[ASTBaseClass],
attrs: List[ASTAttribute]) -> None:
self.name = name self.name = name
self.final = final self.final = final
self.bases = bases self.bases = bases
self.attrs = attrs
def get_id(self, version: int, objectType: str, symbol: "Symbol") -> str: def get_id(self, version: int, objectType: str, symbol: "Symbol") -> str:
return symbol.get_full_nested_name().get_id(version) return symbol.get_full_nested_name().get_id(version)
def _stringify(self, transform: StringifyTransform) -> str: def _stringify(self, transform: StringifyTransform) -> str:
res = [] res = []
for attr in self.attrs:
res.append(transform(attr) + ' ')
res.append(transform(self.name)) res.append(transform(self.name))
if self.final: if self.final:
res.append(' final') res.append(' final')
@ -3344,6 +3342,9 @@ class ASTClass(ASTBase):
def describe_signature(self, signode: TextElement, mode: str, def describe_signature(self, signode: TextElement, mode: str,
env: "BuildEnvironment", symbol: "Symbol") -> None: env: "BuildEnvironment", symbol: "Symbol") -> None:
verify_description_mode(mode) verify_description_mode(mode)
for attr in self.attrs:
attr.describe_signature(signode)
signode += addnodes.desc_sig_space()
self.name.describe_signature(signode, mode, env, symbol=symbol) self.name.describe_signature(signode, mode, env, symbol=symbol)
if self.final: if self.final:
signode += addnodes.desc_sig_space() signode += addnodes.desc_sig_space()
@ -3361,8 +3362,9 @@ class ASTClass(ASTBase):
class ASTUnion(ASTBase): class ASTUnion(ASTBase):
def __init__(self, name: ASTNestedName) -> None: def __init__(self, name: ASTNestedName, attrs: List[ASTAttribute]) -> None:
self.name = name self.name = name
self.attrs = attrs
def get_id(self, version: int, objectType: str, symbol: "Symbol") -> str: def get_id(self, version: int, objectType: str, symbol: "Symbol") -> str:
if version == 1: if version == 1:
@ -3370,20 +3372,28 @@ class ASTUnion(ASTBase):
return symbol.get_full_nested_name().get_id(version) return symbol.get_full_nested_name().get_id(version)
def _stringify(self, transform: StringifyTransform) -> str: def _stringify(self, transform: StringifyTransform) -> str:
return transform(self.name) res = []
for attr in self.attrs:
res.append(transform(attr) + ' ')
res.append(transform(self.name))
return ''.join(res)
def describe_signature(self, signode: TextElement, mode: str, def describe_signature(self, signode: TextElement, mode: str,
env: "BuildEnvironment", symbol: "Symbol") -> None: env: "BuildEnvironment", symbol: "Symbol") -> None:
verify_description_mode(mode) verify_description_mode(mode)
for attr in self.attrs:
attr.describe_signature(signode)
signode += addnodes.desc_sig_space()
self.name.describe_signature(signode, mode, env, symbol=symbol) self.name.describe_signature(signode, mode, env, symbol=symbol)
class ASTEnum(ASTBase): class ASTEnum(ASTBase):
def __init__(self, name: ASTNestedName, scoped: str, def __init__(self, name: ASTNestedName, scoped: str, underlyingType: ASTType,
underlyingType: ASTType) -> None: attrs: List[ASTAttribute]) -> None:
self.name = name self.name = name
self.scoped = scoped self.scoped = scoped
self.underlyingType = underlyingType self.underlyingType = underlyingType
self.attrs = attrs
def get_id(self, version: int, objectType: str, symbol: "Symbol") -> str: def get_id(self, version: int, objectType: str, symbol: "Symbol") -> str:
if version == 1: if version == 1:
@ -3395,6 +3405,8 @@ class ASTEnum(ASTBase):
if self.scoped: if self.scoped:
res.append(self.scoped) res.append(self.scoped)
res.append(' ') res.append(' ')
for attr in self.attrs:
res.append(transform(attr) + ' ')
res.append(transform(self.name)) res.append(transform(self.name))
if self.underlyingType: if self.underlyingType:
res.append(' : ') res.append(' : ')
@ -3405,6 +3417,9 @@ class ASTEnum(ASTBase):
env: "BuildEnvironment", symbol: "Symbol") -> None: env: "BuildEnvironment", symbol: "Symbol") -> None:
verify_description_mode(mode) verify_description_mode(mode)
# self.scoped has been done by the CPPEnumObject # self.scoped has been done by the CPPEnumObject
for attr in self.attrs:
attr.describe_signature(signode)
signode += addnodes.desc_sig_space()
self.name.describe_signature(signode, mode, env, symbol=symbol) self.name.describe_signature(signode, mode, env, symbol=symbol)
if self.underlyingType: if self.underlyingType:
signode += addnodes.desc_sig_space() signode += addnodes.desc_sig_space()
@ -6567,6 +6582,12 @@ class DefinitionParser(BaseParser):
return ASTConcept(nestedName, initializer) return ASTConcept(nestedName, initializer)
def _parse_class(self) -> ASTClass: def _parse_class(self) -> ASTClass:
attrs = []
while 1:
attr = self._parse_attribute()
if attr is None:
break
attrs.append(attr)
name = self._parse_nested_name() name = self._parse_nested_name()
self.skip_ws() self.skip_ws()
final = self.skip_word_and_ws('final') final = self.skip_word_and_ws('final')
@ -6594,21 +6615,33 @@ class DefinitionParser(BaseParser):
continue continue
else: else:
break break
return ASTClass(name, final, bases) return ASTClass(name, final, bases, attrs)
def _parse_union(self) -> ASTUnion: def _parse_union(self) -> ASTUnion:
attrs = []
while 1:
attr = self._parse_attribute()
if attr is None:
break
attrs.append(attr)
name = self._parse_nested_name() name = self._parse_nested_name()
return ASTUnion(name) return ASTUnion(name, attrs)
def _parse_enum(self) -> ASTEnum: def _parse_enum(self) -> ASTEnum:
scoped = None # is set by CPPEnumObject scoped = None # is set by CPPEnumObject
attrs = []
while 1:
attr = self._parse_attribute()
if attr is None:
break
attrs.append(attr)
self.skip_ws() self.skip_ws()
name = self._parse_nested_name() name = self._parse_nested_name()
self.skip_ws() self.skip_ws()
underlyingType = None underlyingType = None
if self.skip_string(':'): if self.skip_string(':'):
underlyingType = self._parse_type(named=False) underlyingType = self._parse_type(named=False)
return ASTEnum(name, scoped, underlyingType) return ASTEnum(name, scoped, underlyingType, attrs)
def _parse_enumerator(self) -> ASTEnumerator: def _parse_enumerator(self) -> ASTEnumerator:
name = self._parse_nested_name() name = self._parse_nested_name()
@ -7992,7 +8025,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
return { return {
'version': 'builtin', 'version': 'builtin',
'env_version': 4, 'env_version': 5,
'parallel_read_safe': True, 'parallel_read_safe': True,
'parallel_write_safe': True, 'parallel_write_safe': True,
} }

View File

@ -1,12 +1,4 @@
""" """The index domain."""
sphinx.domains.index
~~~~~~~~~~~~~~~~~~~~
The index domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Tuple from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Tuple

View File

@ -1,12 +1,4 @@
""" """The JavaScript domain."""
sphinx.domains.javascript
~~~~~~~~~~~~~~~~~~~~~~~~~
The JavaScript domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, Iterator, List, Optional, Tuple, cast from typing import Any, Dict, Iterator, List, Optional, Tuple, cast

View File

@ -1,12 +1,4 @@
""" """The math domain."""
sphinx.domains.math
~~~~~~~~~~~~~~~~~~~
The math domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Tuple from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Tuple

View File

@ -1,12 +1,4 @@
""" """The Python domain."""
sphinx.domains.python
~~~~~~~~~~~~~~~~~~~~~
The Python domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import builtins import builtins
import inspect import inspect

View File

@ -1,12 +1,4 @@
""" """The reStructuredText domain."""
sphinx.domains.rst
~~~~~~~~~~~~~~~~~~
The reStructuredText domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from typing import Any, Dict, Iterator, List, Optional, Tuple, cast from typing import Any, Dict, Iterator, List, Optional, Tuple, cast

View File

@ -1,12 +1,4 @@
""" """The standard domain."""
sphinx.domains.std
~~~~~~~~~~~~~~~~~~
The standard domain.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from copy import copy from copy import copy

View File

@ -1,12 +1,4 @@
""" """Global creation environment."""
sphinx.environment
~~~~~~~~~~~~~~~~~~
Global creation environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os import os
import pickle import pickle
@ -49,7 +41,7 @@ default_settings: Dict[str, Any] = {
'embed_images': False, 'embed_images': False,
'embed_stylesheet': False, 'embed_stylesheet': False,
'cloak_email_addresses': True, 'cloak_email_addresses': True,
'pep_base_url': 'https://www.python.org/dev/peps/', 'pep_base_url': 'https://peps.python.org/',
'pep_references': None, 'pep_references': None,
'rfc_base_url': 'https://datatracker.ietf.org/doc/html/', 'rfc_base_url': 'https://datatracker.ietf.org/doc/html/',
'rfc_references': None, 'rfc_references': None,

View File

@ -1,9 +1 @@
""" """Sphinx environment adapters"""
sphinx.environment.adapters
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sphinx environment adapters
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""

View File

@ -1,12 +1,4 @@
""" """Assets adapter for sphinx.environment."""
sphinx.environment.adapters.asset
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Assets adapter for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from sphinx.environment import BuildEnvironment from sphinx.environment import BuildEnvironment

View File

@ -1,12 +1,4 @@
""" """Index entries adapters for sphinx.environment."""
sphinx.environment.adapters.indexentries
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index entries adapters for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
import unicodedata import unicodedata

View File

@ -1,12 +1,4 @@
""" """Toctree adapter for sphinx.environment."""
sphinx.environment.adapters.toctree
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Toctree adapter for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import TYPE_CHECKING, Any, Iterable, List, Optional, cast from typing import TYPE_CHECKING, Any, Iterable, List, Optional, cast

View File

@ -1,12 +1,4 @@
""" """The data collector components for sphinx.environment."""
sphinx.environment.collectors
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The data collector components for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import TYPE_CHECKING, Dict, List, Optional, Set from typing import TYPE_CHECKING, Dict, List, Optional, Set

View File

@ -1,12 +1,4 @@
""" """The image collector for sphinx.environment."""
sphinx.environment.collectors.asset
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The image collector for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os import os
from glob import glob from glob import glob

View File

@ -1,12 +1,4 @@
""" """The dependencies collector components for sphinx.environment."""
sphinx.environment.collectors.dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The dependencies collector components for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os import os
from os import path from os import path

View File

@ -1,12 +1,4 @@
""" """The metadata collector components for sphinx.environment."""
sphinx.environment.collectors.metadata
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The metadata collector components for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, List, Set, cast from typing import Any, Dict, List, Set, cast

View File

@ -1,12 +1,4 @@
""" """The title collector components for sphinx.environment."""
sphinx.environment.collectors.title
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The title collector components for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, Set from typing import Any, Dict, Set

View File

@ -1,12 +1,4 @@
""" """Toctree collector for sphinx.environment."""
sphinx.environment.collectors.toctree
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Toctree collector for sphinx.environment.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, List, Set, Tuple, Type, TypeVar, cast from typing import Any, Dict, List, Set, Tuple, Type, TypeVar, cast

View File

@ -1,13 +1,4 @@
""" """Contains SphinxError and a few subclasses."""
sphinx.errors
~~~~~~~~~~~~~
Contains SphinxError and a few subclasses (in an extra module to avoid
circular import problems).
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any from typing import Any

View File

@ -1,13 +1,6 @@
""" """Sphinx core events.
sphinx.events
~~~~~~~~~~~~~
Sphinx core events. Gracefully adapted from the TextPress system by Armin.
Gracefully adapted from the TextPress system by Armin.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
from collections import defaultdict from collections import defaultdict

View File

@ -1,9 +1 @@
""" """Contains Sphinx features not activated by default."""
sphinx.ext
~~~~~~~~~~
Contains Sphinx features not activated by default.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""

View File

@ -1,17 +1,12 @@
""" """Creates reST files corresponding to Python modules for code documentation.
sphinx.ext.apidoc
~~~~~~~~~~~~~~~~~
Parses a directory tree looking for Python modules and packages and creates Parses a directory tree looking for Python modules and packages and creates
ReST files appropriately to create code documentation with Sphinx. It also ReST files appropriately to create code documentation with Sphinx. It also
creates a modules index (named modules.<suffix>). creates a modules index (named modules.<suffix>).
This is derived from the "sphinx-autopackage" script, which is: This is derived from the "sphinx-autopackage" script, which is:
Copyright 2008 Société des arts technologiques (SAT), Copyright 2008 Société des arts technologiques (SAT),
https://sat.qc.ca/ https://sat.qc.ca/
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import argparse import argparse

View File

@ -1,13 +1,8 @@
""" """Extension to create automatic documentation from code docstrings.
sphinx.ext.autodoc
~~~~~~~~~~~~~~~~~~
Automatically insert docstrings for functions, classes or whole modules into Automatically insert docstrings for functions, classes or whole modules into
the doctree, thus avoiding duplication between docstrings and documentation the doctree, thus avoiding duplication between docstrings and documentation
for those who like elaborate docstrings. for those who like elaborate docstrings.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import re import re

View File

@ -1,12 +1,4 @@
""" """The deprecated Documenters for autodoc."""
sphinx.ext.autodoc.deprecated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The deprecated Documenters for autodoc.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import warnings import warnings
from typing import Any from typing import Any

View File

@ -1,11 +1,3 @@
"""
sphinx.ext.autodoc.directive
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import warnings import warnings
from typing import Any, Callable, Dict, List, Set, Type from typing import Any, Callable, Dict, List, Set, Type

View File

@ -1,12 +1,4 @@
""" """Importer utilities for autodoc"""
sphinx.ext.autodoc.importer
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Importer utilities for autodoc
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import importlib import importlib
import traceback import traceback

View File

@ -1,12 +1,4 @@
""" """mock for autodoc"""
sphinx.ext.autodoc.mock
~~~~~~~~~~~~~~~~~~~~~~~
mock for autodoc
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import contextlib import contextlib
import os import os

View File

@ -1,12 +1,7 @@
""" """Preserve function defaults.
sphinx.ext.autodoc.preserve_defaults
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Preserve the default argument values of function signatures in source code Preserve the default argument values of function signatures in source code
and keep them not evaluated for readability. and keep them not evaluated for readability.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import ast import ast

View File

@ -1,12 +1,4 @@
""" """Update annotations info of living objects using type_comments."""
sphinx.ext.autodoc.type_comment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Update annotations info of living objects using type_comments.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from inspect import Parameter, Signature, getsource from inspect import Parameter, Signature, getsource
from typing import Any, Dict, List, cast from typing import Any, Dict, List, cast

View File

@ -1,12 +1,4 @@
""" """Generating content for autodoc using typehints"""
sphinx.ext.autodoc.typehints
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Generating content for autodoc using typehints
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import re import re
from collections import OrderedDict from collections import OrderedDict

View File

@ -1,12 +1,4 @@
""" """Allow reference sections by :ref: role using its title."""
sphinx.ext.autosectionlabel
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allow reference sections by :ref: role using its title.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, cast from typing import Any, Dict, cast

View File

@ -1,55 +1,49 @@
""" """Extension that adds an autosummary:: directive.
sphinx.ext.autosummary
~~~~~~~~~~~~~~~~~~~~~~
Sphinx extension that adds an autosummary:: directive, which can be The directive can be used to generate function/method/attribute/etc. summary
used to generate function/method/attribute/etc. summary lists, similar lists, similar to those output eg. by Epydoc and other API doc generation tools.
to those output eg. by Epydoc and other API doc generation tools.
An :autolink: role is also provided. An :autolink: role is also provided.
autosummary directive autosummary directive
--------------------- ---------------------
The autosummary directive has the form:: The autosummary directive has the form::
.. autosummary:: .. autosummary::
:nosignatures: :nosignatures:
:toctree: generated/ :toctree: generated/
module.function_1 module.function_1
module.function_2 module.function_2
... ...
and it generates an output table (containing signatures, optionally) and it generates an output table (containing signatures, optionally)
======================== ============================================= ======================== =============================================
module.function_1(args) Summary line from the docstring of function_1 module.function_1(args) Summary line from the docstring of function_1
module.function_2(args) Summary line from the docstring module.function_2(args) Summary line from the docstring
... ...
======================== ============================================= ======================== =============================================
If the :toctree: option is specified, files matching the function names If the :toctree: option is specified, files matching the function names
are inserted to the toctree with the given prefix: are inserted to the toctree with the given prefix:
generated/module.function_1 generated/module.function_1
generated/module.function_2 generated/module.function_2
... ...
Note: The file names contain the module:: or currentmodule:: prefixes. Note: The file names contain the module:: or currentmodule:: prefixes.
.. seealso:: autosummary_generate.py .. seealso:: autosummary_generate.py
autolink role autolink role
------------- -------------
The autolink role functions as ``:obj:`` when the name referred can be The autolink role functions as ``:obj:`` when the name referred can be
resolved to a Python object, and otherwise it becomes simple emphasis. resolved to a Python object, and otherwise it becomes simple emphasis.
This can be used as the default role to make links 'smart'. This can be used as the default role to make links 'smart'.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import inspect import inspect
@ -417,7 +411,7 @@ class Autosummary(SphinxDirective):
table_spec['spec'] = r'\X{1}{2}\X{1}{2}' table_spec['spec'] = r'\X{1}{2}\X{1}{2}'
table = autosummary_table('') table = autosummary_table('')
real_table = nodes.table('', classes=['longtable']) real_table = nodes.table('', classes=['autosummary longtable'])
table.append(real_table) table.append(real_table)
group = nodes.tgroup('', cols=2) group = nodes.tgroup('', cols=2)
real_table.append(group) real_table.append(group)

View File

@ -1,20 +1,15 @@
""" """Generates reST source files for autosummary.
sphinx.ext.autosummary.generate
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Usable as a library or script to generate automatic RST source files for Usable as a library or script to generate automatic RST source files for
items referred to in autosummary:: directives. items referred to in autosummary:: directives.
Each generated RST file contains a single auto*:: directive which Each generated RST file contains a single auto*:: directive which
extracts the docstring of the referred item. extracts the docstring of the referred item.
Example Makefile rule:: Example Makefile rule::
generate: generate:
sphinx-autogen -o source/generated source/*.rst sphinx-autogen -o source/generated source/*.rst
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import argparse import argparse

View File

@ -1,12 +1,7 @@
""" """Check Python modules and C API for coverage.
sphinx.ext.coverage
~~~~~~~~~~~~~~~~~~~
Check Python modules and C API for coverage. Mostly written by Josip Mostly written by Josip Dzolonga for the Google Highly Open Participation
Dzolonga for the Google Highly Open Participation contest. contest.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import glob import glob

View File

@ -1,12 +1,6 @@
""" """Mimic doctest in Sphinx.
sphinx.ext.doctest
~~~~~~~~~~~~~~~~~~
Mimic doctest by automatically executing code snippets and checking The extension automatically execute code snippets and checks their results.
their results.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import doctest import doctest

View File

@ -1,12 +1,4 @@
""" """Measure durations of Sphinx processing."""
sphinx.ext.duration
~~~~~~~~~~~~~~~~~~~
Measure durations of Sphinx processing.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from datetime import datetime, timedelta from datetime import datetime, timedelta
from itertools import islice from itertools import islice

View File

@ -1,28 +1,20 @@
""" """Extension to save typing and prevent hard-coding of base URLs in reST files.
sphinx.ext.extlinks
~~~~~~~~~~~~~~~~~~~
Extension to save typing and prevent hard-coding of base URLs in the reST This adds a new config value called ``extlinks`` that is created like this::
files.
This adds a new config value called ``extlinks`` that is created like this:: extlinks = {'exmpl': ('https://example.invalid/%s.html', caption), ...}
extlinks = {'exmpl': ('https://example.invalid/%s.html', caption), ...} Now you can use e.g. :exmpl:`foo` in your documents. This will create a
link to ``https://example.invalid/foo.html``. The link caption depends on
the *caption* value given:
Now you can use e.g. :exmpl:`foo` in your documents. This will create a - If it is ``None``, the caption will be the full URL.
link to ``https://example.invalid/foo.html``. The link caption depends on - If it is a string, it must contain ``%s`` exactly once. In this case the
the *caption* value given: caption will be *caption* with the role content substituted for ``%s``.
- If it is ``None``, the caption will be the full URL. You can also give an explicit caption, e.g. :exmpl:`Foo <foo>`.
- If it is a string, it must contain ``%s`` exactly once. In this case the
caption will be *caption* with the role content substituted for ``%s``.
You can also give an explicit caption, e.g. :exmpl:`Foo <foo>`. Both, the url string and the caption string must escape ``%`` as ``%%``.
Both, the url string and the caption string must escape ``%`` as ``%%``.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import re import re

View File

@ -1,12 +1,4 @@
""" """To publish HTML docs at GitHub Pages, create .nojekyll file."""
sphinx.ext.githubpages
~~~~~~~~~~~~~~~~~~~~~~
To publish HTML docs at GitHub Pages, create .nojekyll file.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import os import os
import urllib import urllib

View File

@ -1,12 +1,4 @@
""" """Allow graphviz-formatted graphs to be included inline in generated documents.
sphinx.ext.graphviz
~~~~~~~~~~~~~~~~~~~
Allow graphviz-formatted graphs to be included in Sphinx-generated
documents inline.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import posixpath import posixpath

View File

@ -1,22 +1,17 @@
""" """Provides the ``ifconfig`` directive.
sphinx.ext.ifconfig
~~~~~~~~~~~~~~~~~~~
Provides the ``ifconfig`` directive that allows to write documentation The ``ifconfig`` directive enables writing documentation
that is included depending on configuration variables. that is included depending on configuration variables.
Usage:: Usage::
.. ifconfig:: releaselevel in ('alpha', 'beta', 'rc') .. ifconfig:: releaselevel in ('alpha', 'beta', 'rc')
This stuff is only included in the built docs for unstable versions. This stuff is only included in the built docs for unstable versions.
The argument for ``ifconfig`` is a plain Python expression, evaluated in the The argument for ``ifconfig`` is a plain Python expression, evaluated in the
namespace of the project configuration (that is, all variables from namespace of the project configuration (that is, all variables from
``conf.py`` are available.) ``conf.py`` are available.)
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
from typing import Any, Dict, List from typing import Any, Dict, List

View File

@ -1,12 +1,4 @@
""" """Image converter extension for Sphinx"""
sphinx.ext.imgconverter
~~~~~~~~~~~~~~~~~~~~~~~
Image converter extension for Sphinx
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import subprocess import subprocess
import sys import sys

View File

@ -1,12 +1,4 @@
""" """Render math in HTML via dvipng or dvisvgm."""
sphinx.ext.imgmath
~~~~~~~~~~~~~~~~~~
Render math in HTML via dvipng or dvisvgm.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import posixpath import posixpath
import re import re

View File

@ -1,38 +1,31 @@
r""" r"""Defines a docutils directive for inserting inheritance diagrams.
sphinx.ext.inheritance_diagram
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Defines a docutils directive for inserting inheritance diagrams. Provide the directive with one or more classes or modules (separated
by whitespace). For modules, all of the classes in that module will
be used.
Provide the directive with one or more classes or modules (separated Example::
by whitespace). For modules, all of the classes in that module will
be used.
Example:: Given the following classes:
Given the following classes: class A: pass
class B(A): pass
class C(A): pass
class D(B, C): pass
class E(B): pass
class A: pass .. inheritance-diagram: D E
class B(A): pass
class C(A): pass
class D(B, C): pass
class E(B): pass
.. inheritance-diagram: D E Produces a graph like the following:
Produces a graph like the following: A
/ \
B C
/ \ /
E D
A The graph is inserted as a PNG+image map into HTML and a PDF in
/ \ LaTeX.
B C
/ \ /
E D
The graph is inserted as a PNG+image map into HTML and a PDF in
LaTeX.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import builtins import builtins

View File

@ -1,26 +1,19 @@
""" """Insert links to objects documented in remote Sphinx documentation.
sphinx.ext.intersphinx
~~~~~~~~~~~~~~~~~~~~~~
Insert links to objects documented in remote Sphinx documentation. This works as follows:
This works as follows: * Each Sphinx HTML build creates a file named "objects.inv" that contains a
mapping from object names to URIs relative to the HTML set's root.
* Each Sphinx HTML build creates a file named "objects.inv" that contains a * Projects using the Intersphinx extension can specify links to such mapping
mapping from object names to URIs relative to the HTML set's root. files in the `intersphinx_mapping` config value. The mapping will then be
used to resolve otherwise missing references to objects into links to the
other documentation.
* Projects using the Intersphinx extension can specify links to such mapping * By default, the mapping file is assumed to be at the same location as the
files in the `intersphinx_mapping` config value. The mapping will then be rest of the documentation; however, the location of the mapping file can
used to resolve otherwise missing references to objects into links to the also be specified individually, e.g. if the docs should be buildable
other documentation. without Internet access.
* By default, the mapping file is assumed to be at the same location as the
rest of the documentation; however, the location of the mapping file can
also be specified individually, e.g. if the docs should be buildable
without Internet access.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
import concurrent.futures import concurrent.futures

View File

@ -1,12 +1,4 @@
""" """Add external links to module code in Python object descriptions."""
sphinx.ext.linkcode
~~~~~~~~~~~~~~~~~~~
Add external links to module code in Python object descriptions.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, Set from typing import Any, Dict, Set

View File

@ -1,13 +1,8 @@
""" """Allow `MathJax`_ to be used to display math in Sphinx's HTML writer.
sphinx.ext.mathjax
~~~~~~~~~~~~~~~~~~
Allow `MathJax <https://www.mathjax.org/>`_ to be used to display math in This requires the MathJax JavaScript library on your webserver/computer.
Sphinx's HTML writer -- requires the MathJax JavaScript library on your
webserver/computer.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. .. _MathJax: https://www.mathjax.org/
:license: BSD, see LICENSE for details.
""" """
import json import json

View File

@ -1,12 +1,4 @@
""" """Support for NumPy and Google style docstrings."""
sphinx.ext.napoleon
~~~~~~~~~~~~~~~~~~~
Support for NumPy and Google style docstrings.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from typing import Any, Dict, List from typing import Any, Dict, List

View File

@ -1,14 +1,4 @@
""" """Classes for docstring parsing and formatting."""
sphinx.ext.napoleon.docstring
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Classes for docstring parsing and formatting.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import collections import collections
import inspect import inspect

View File

@ -1,14 +1,4 @@
""" """A collection of helpful iterators."""
sphinx.ext.napoleon.iterators
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A collection of helpful iterators.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import collections import collections
from typing import Any, Iterable, Optional from typing import Any, Iterable, Optional

View File

@ -1,14 +1,8 @@
""" """Allow todos to be inserted into your documentation.
sphinx.ext.todo
~~~~~~~~~~~~~~~
Allow todos to be inserted into your documentation. Inclusion of todos can Inclusion of todos can be switched of by a configuration variable.
be switched of by a configuration variable. The todolist directive collects The todolist directive collects all todos of your project and lists them along
all todos of your project and lists them along with a backlink to the with a backlink to the original location.
original location.
:copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
""" """
from typing import Any, Dict, List, Tuple, cast from typing import Any, Dict, List, Tuple, cast

Some files were not shown because too many files have changed in this diff Show More