mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge branch 'sphinx-doc:4.x' into container-latex
This commit is contained in:
commit
20d5570abc
6
.github/workflows/main.yml
vendored
6
.github/workflows/main.yml
vendored
@ -23,9 +23,9 @@ jobs:
|
||||
python: 3.9
|
||||
docutils: du17
|
||||
coverage: "--cov ./ --cov-append --cov-config setup.cfg"
|
||||
# - name: py310-dev
|
||||
# python: 3.10-dev
|
||||
# docutils: du16
|
||||
- name: py310-dev
|
||||
python: 3.10-dev
|
||||
docutils: du17
|
||||
env:
|
||||
PYTEST_ADDOPTS: ${{ matrix.coverage }}
|
||||
|
||||
|
51
.github/workflows/transifex.yml
vendored
Normal file
51
.github/workflows/transifex.yml
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
name: Sync translations on repository and transifex.com
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * SUN"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
push:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: 4.x
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
- name: Install dependencies
|
||||
run: pip install -U babel jinja2 transifex-client
|
||||
- name: Extract translations from source code
|
||||
run: python setup.py extract_messages
|
||||
- name: Push translations to transifex.com
|
||||
run: cd sphinx/locale && tx push -s --no-interactive --parallel
|
||||
env:
|
||||
TX_TOKEN: ${{ secrets.TX_TOKEN }}
|
||||
|
||||
pull:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: 4.x
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
- name: Install dependencies
|
||||
run: pip install -U babel jinja2 transifex-client
|
||||
- name: Extract translations from source code
|
||||
run: python setup.py extract_messages
|
||||
- name: Pull translations to transifex.com
|
||||
run: cd sphinx/locale && tx pull -a -f --no-interactive --parallel
|
||||
env:
|
||||
TX_TOKEN: ${{ secrets.TX_TOKEN }}
|
||||
- name: Compile message catalogs
|
||||
run: python setup.py compile_catalog
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
with:
|
||||
commit-message: 'Update message catalogs'
|
||||
branch: bot/pull-translations
|
||||
title: Update message catalogs
|
118
CHANGES
118
CHANGES
@ -4,12 +4,15 @@ Release 4.1.0 (in development)
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
* Support jinja2-3.0
|
||||
|
||||
Incompatible changes
|
||||
--------------------
|
||||
|
||||
Deprecated
|
||||
----------
|
||||
|
||||
* ``sphinx.application.Sphinx.html_theme``
|
||||
* ``sphinx.util.docstrings.extract_metadata()``
|
||||
|
||||
Features added
|
||||
@ -21,10 +24,19 @@ Features added
|
||||
* #8588: autodoc: :confval:`autodoc_type_aliases` now supports dotted name. It
|
||||
allows you to define an alias for a class with module name like
|
||||
``foo.bar.BazClass``
|
||||
* #9175: autodoc: Special member is not documented in the module
|
||||
* #9195: autodoc: The arguments of ``typing.Literal`` are wrongly rendered
|
||||
* #9185: autodoc: :confval:`autodoc_typehints` allows ``'both'`` setting to
|
||||
allow typehints to be included both in the signature and description
|
||||
* #3257: autosummary: Support instance attributes for classes
|
||||
* #9129: html search: Show search summaries when html_copy_source = False
|
||||
* #9120: html theme: Eliminate prompt characters of code-block from copyable
|
||||
text
|
||||
* #9176: i18n: Emit a debug message if message catalog file not found under
|
||||
:confval:`locale_dirs`
|
||||
* #9097: Optimize the paralell build
|
||||
* #9131: Add :confval:`nitpick_ignore_regex` to ignore nitpicky warnings using
|
||||
regular expressions
|
||||
|
||||
|
||||
Bugs fixed
|
||||
@ -33,12 +45,13 @@ Bugs fixed
|
||||
* #8872: autodoc: stacked singledispatches are wrongly rendered
|
||||
* #8597: autodoc: a docsting having metadata only should be treated as
|
||||
undocumented
|
||||
* #9185: autodoc: typehints for overloaded functions and methods are inaccurate
|
||||
|
||||
Testing
|
||||
--------
|
||||
|
||||
Release 4.0.0 beta3 (in development)
|
||||
====================================
|
||||
Release 4.0.2 (in development)
|
||||
==============================
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
@ -55,15 +68,41 @@ Features added
|
||||
Bugs fixed
|
||||
----------
|
||||
|
||||
* #9210: viewcode: crashed if non importable modules found on parallel build
|
||||
|
||||
Testing
|
||||
--------
|
||||
|
||||
Release 4.0.0 beta2 (released Apr 29, 2021)
|
||||
===========================================
|
||||
Release 4.0.1 (released May 11, 2021)
|
||||
=====================================
|
||||
|
||||
Bugs fixed
|
||||
----------
|
||||
|
||||
* #9189: autodoc: crashed when ValueError is raised on generating signature
|
||||
from a property of the class
|
||||
* #9188: autosummary: warning is emitted if list value is set to
|
||||
autosummary_generate
|
||||
* #8380: html search: tags for search result are broken
|
||||
* #9198: i18n: Babel emits errors when running compile_catalog
|
||||
* #9205: py domain: The :canonical: option causes "more than one target for
|
||||
cross-reference" warning
|
||||
* #9201: websupport: UndefinedError is raised: 'css_tag' is undefined
|
||||
|
||||
Release 4.0.0 (released May 09, 2021)
|
||||
=====================================
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
4.0.0b1
|
||||
|
||||
* Drop python 3.5 support
|
||||
* Drop docutils 0.12 and 0.13 support
|
||||
* LaTeX: add ``tex-gyre`` font dependency
|
||||
|
||||
4.0.0b2
|
||||
|
||||
* Support docutils-0.17. Please notice it changes the output of HTML builder.
|
||||
Some themes do not support it, and you need to update your custom CSS to
|
||||
upgrade it.
|
||||
@ -71,43 +110,7 @@ Dependencies
|
||||
Incompatible changes
|
||||
--------------------
|
||||
|
||||
* #9023: Change the CSS classes on :rst:role:`cpp:expr` and
|
||||
:rst:role:`cpp:texpr`.
|
||||
|
||||
Features added
|
||||
--------------
|
||||
|
||||
* #8818: autodoc: Super class having ``Any`` arguments causes nit-picky warning
|
||||
* #9095: autodoc: TypeError is raised on processing broken metaclass
|
||||
* #9110: autodoc: metadata of GenericAlias is not rendered as a reference in
|
||||
py37+
|
||||
* #9098: html: copy-range protection for doctests doesn't work in Safari
|
||||
* #9103: LaTeX: imgconverter: conversion runs even if not needed
|
||||
* #8127: py domain: Ellipsis in info-field-list causes nit-picky warning
|
||||
* #9121: py domain: duplicated warning is emitted when both canonical and its
|
||||
alias objects are defined on the document
|
||||
* #9023: More CSS classes on domain descriptions, see :ref:`nodes` for details.
|
||||
* #8195: mathjax: Rename :confval:`mathjax_config` to
|
||||
:confval:`mathjax2_config` and add :confval:`mathjax3_config`
|
||||
|
||||
Bugs fixed
|
||||
----------
|
||||
|
||||
* C, C++, fix ``KeyError`` when an ``alias`` directive is the first C/C++
|
||||
directive in a file with another C/C++ directive later.
|
||||
|
||||
Release 4.0.0 beta1 (released Apr 12, 2021)
|
||||
===========================================
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
* Drop python 3.5 support
|
||||
* Drop docutils 0.12 and 0.13 support
|
||||
* LaTeX: add ``tex-gyre`` font dependency
|
||||
|
||||
Incompatible changes
|
||||
--------------------
|
||||
4.0.0b1
|
||||
|
||||
* #8539: autodoc: info-field-list is generated into the class description when
|
||||
``autodoc_typehints='description'`` and ``autoclass_content='class'`` set
|
||||
@ -144,6 +147,11 @@ Incompatible changes
|
||||
* #8487: The :file: option for csv-table directive now recognizes an absolute
|
||||
path as a relative path from source directory
|
||||
|
||||
4.0.0b2
|
||||
|
||||
* #9023: Change the CSS classes on :rst:role:`cpp:expr` and
|
||||
:rst:role:`cpp:texpr`.
|
||||
|
||||
Deprecated
|
||||
----------
|
||||
|
||||
@ -165,6 +173,8 @@ Deprecated
|
||||
Features added
|
||||
--------------
|
||||
|
||||
4.0.0b1
|
||||
|
||||
* #8924: autodoc: Support ``bound`` argument for TypeVar
|
||||
* #7383: autodoc: Support typehints for properties
|
||||
* #5603: autodoc: Allow to refer to a python class using its canonical name
|
||||
@ -194,9 +204,26 @@ Features added
|
||||
* #7199: A new node, ``sphinx.addnodes.pending_xref_condition`` has been added.
|
||||
It can be used to choose appropriate content of the reference by conditions.
|
||||
|
||||
4.0.0b2
|
||||
|
||||
* #8818: autodoc: Super class having ``Any`` arguments causes nit-picky warning
|
||||
* #9095: autodoc: TypeError is raised on processing broken metaclass
|
||||
* #9110: autodoc: metadata of GenericAlias is not rendered as a reference in
|
||||
py37+
|
||||
* #9098: html: copy-range protection for doctests doesn't work in Safari
|
||||
* #9103: LaTeX: imgconverter: conversion runs even if not needed
|
||||
* #8127: py domain: Ellipsis in info-field-list causes nit-picky warning
|
||||
* #9121: py domain: duplicated warning is emitted when both canonical and its
|
||||
alias objects are defined on the document
|
||||
* #9023: More CSS classes on domain descriptions, see :ref:`nodes` for details.
|
||||
* #8195: mathjax: Rename :confval:`mathjax_config` to
|
||||
:confval:`mathjax2_config` and add :confval:`mathjax3_config`
|
||||
|
||||
Bugs fixed
|
||||
----------
|
||||
|
||||
4.0.0b1
|
||||
|
||||
* #8917: autodoc: Raises a warning if function has wrong __globals__ value
|
||||
* #8415: autodoc: a TypeVar imported from other module is not resolved (in
|
||||
Python 3.7 or above)
|
||||
@ -231,6 +258,15 @@ Bugs fixed
|
||||
(function) declarators, and in the argument to ``sizeof...``.
|
||||
* C, fix linking of names in array declarators.
|
||||
|
||||
4.0.0b2
|
||||
|
||||
* C, C++, fix ``KeyError`` when an ``alias`` directive is the first C/C++
|
||||
directive in a file with another C/C++ directive later.
|
||||
|
||||
4.0.0b3
|
||||
|
||||
* #9167: html: Failed to add CSS files to the specific page
|
||||
|
||||
Release 3.5.5 (in development)
|
||||
==============================
|
||||
|
||||
|
@ -10,10 +10,6 @@
|
||||
:target: http://www.sphinx-doc.org/
|
||||
:alt: Documentation Status
|
||||
|
||||
.. image:: https://travis-ci.org/sphinx-doc/sphinx.svg?branch=master
|
||||
:target: https://travis-ci.org/sphinx-doc/sphinx
|
||||
:alt: Build Status (Travis CI)
|
||||
|
||||
.. image:: https://ci.appveyor.com/api/projects/status/github/sphinx-doc/sphinx?branch=master&svg=true
|
||||
:target: https://ci.appveyor.com/project/sphinxdoc/sphinx
|
||||
:alt: Build Status (AppVeyor)
|
||||
|
@ -22,6 +22,11 @@ The following is a list of deprecated interfaces.
|
||||
- (will be) Removed
|
||||
- Alternatives
|
||||
|
||||
* - ``sphinx.application.Sphinx.html_theme``
|
||||
- 4.1
|
||||
- 6.0
|
||||
- ``sphinx.registry.SphinxComponentRegistry.html_themes``
|
||||
|
||||
* - ``sphinx.util.docstrings.extract_metadata()``
|
||||
- 4.1
|
||||
- 6.0
|
||||
@ -40,12 +45,12 @@ The following is a list of deprecated interfaces.
|
||||
* - ``sphinx.directives.patches.ListTable``
|
||||
- 4.0
|
||||
- 6.0
|
||||
- ``docutils.parsers.rst.diretives.tables.ListSVTable``
|
||||
- ``docutils.parsers.rst.directives.tables.ListSVTable``
|
||||
|
||||
* - ``sphinx.directives.patches.RSTTable``
|
||||
- 4.0
|
||||
- 6.0
|
||||
- ``docutils.parsers.rst.diretives.tables.RSTTable``
|
||||
- ``docutils.parsers.rst.directives.tables.RSTTable``
|
||||
|
||||
* - ``sphinx.ext.autodoc.directive.DocumenterBridge.filename_set``
|
||||
- 4.0
|
||||
@ -85,7 +90,7 @@ The following is a list of deprecated interfaces.
|
||||
* - ``sphinx.util.smartypants``
|
||||
- 4.0
|
||||
- 6.0
|
||||
- ``docutils.utils.smartyquotes``
|
||||
- ``docutils.utils.smartquotes``
|
||||
|
||||
* - ``sphinx.util.typing.DirectiveOption``
|
||||
- 4.0
|
||||
|
@ -419,6 +419,20 @@ General configuration
|
||||
|
||||
.. versionadded:: 1.1
|
||||
|
||||
.. confval:: nitpick_ignore_regex
|
||||
|
||||
An extended version of :confval:`nitpick_ignore`, which instead interprets
|
||||
the ``type`` and ``target`` strings as regular expressions. Note, that the
|
||||
regular expression must match the whole string (as if the ``^`` and ``$``
|
||||
markers were inserted).
|
||||
|
||||
For example, ``(r'py:.*', r'foo.*bar\.B.*')`` will ignore nitpicky warnings
|
||||
for all python entities that start with ``'foo'`` and have ``'bar.B'`` in
|
||||
them, such as ``('py:const', 'foo_package.bar.BAZ_VALUE')`` or
|
||||
``('py:class', 'food.bar.Barman')``.
|
||||
|
||||
.. versionadded:: 4.1
|
||||
|
||||
.. confval:: numfig
|
||||
|
||||
If true, figures, tables and code-blocks are automatically numbered if they
|
||||
@ -780,6 +794,10 @@ documentation on :ref:`intl` for details.
|
||||
|
||||
The default is ``['locales']``.
|
||||
|
||||
.. note:: The :option:`-v option for sphinx-build command <sphinx-build -v>`
|
||||
is useful to check the locale_dirs config works as expected. It
|
||||
emits debug messages if message catalog directory not found.
|
||||
|
||||
.. versionchanged:: 1.5
|
||||
Use ``locales`` directory as a default value
|
||||
|
||||
|
@ -573,15 +573,27 @@ There are also config values that you can set:
|
||||
This value controls how to represent typehints. The setting takes the
|
||||
following values:
|
||||
|
||||
* ``'signature'`` -- Show typehints as its signature (default)
|
||||
* ``'description'`` -- Show typehints as content of function or method
|
||||
* ``'signature'`` -- Show typehints in the signature (default)
|
||||
* ``'description'`` -- Show typehints as content of the function or method
|
||||
The typehints of overloaded functions or methods will still be represented
|
||||
in the signature.
|
||||
* ``'none'`` -- Do not show typehints
|
||||
* ``'both'`` -- Show typehints in the signature and as content of
|
||||
the function or method
|
||||
|
||||
Overloaded functions or methods will not have typehints included in the
|
||||
description because it is impossible to accurately represent all possible
|
||||
overloads as a list of parameters.
|
||||
|
||||
.. versionadded:: 2.1
|
||||
.. versionadded:: 3.0
|
||||
|
||||
New option ``'description'`` is added.
|
||||
|
||||
.. versionadded:: 4.1
|
||||
|
||||
New option ``'both'`` is added.
|
||||
|
||||
.. confval:: autodoc_typehints_description_target
|
||||
|
||||
This value controls whether the types of undocumented parameters and return
|
||||
|
6
package-lock.json
generated
6
package-lock.json
generated
@ -704,9 +704,9 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.19",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
|
||||
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
},
|
||||
"log4js": {
|
||||
|
3
setup.py
3
setup.py
@ -21,8 +21,7 @@ install_requires = [
|
||||
'sphinxcontrib-htmlhelp',
|
||||
'sphinxcontrib-serializinghtml',
|
||||
'sphinxcontrib-qthelp',
|
||||
'Jinja2>=2.3,<3.0',
|
||||
'MarkupSafe<2.0',
|
||||
'Jinja2>=2.3',
|
||||
'Pygments>=2.0',
|
||||
'docutils>=0.14,<0.18',
|
||||
'snowballstemmer>=1.1',
|
||||
|
@ -14,6 +14,7 @@ import os
|
||||
import pickle
|
||||
import platform
|
||||
import sys
|
||||
import warnings
|
||||
from collections import deque
|
||||
from io import StringIO
|
||||
from os import path
|
||||
@ -29,6 +30,7 @@ from pygments.lexer import Lexer
|
||||
import sphinx
|
||||
from sphinx import locale, package_dir
|
||||
from sphinx.config import Config
|
||||
from sphinx.deprecation import RemovedInSphinx60Warning
|
||||
from sphinx.domains import Domain, Index
|
||||
from sphinx.environment import BuildEnvironment
|
||||
from sphinx.environment.collectors import EnvironmentCollector
|
||||
@ -141,11 +143,10 @@ class Sphinx:
|
||||
self.phase = BuildPhase.INITIALIZATION
|
||||
self.verbosity = verbosity
|
||||
self.extensions: Dict[str, Extension] = {}
|
||||
self.builder: Builder = None
|
||||
self.env: BuildEnvironment = None
|
||||
self.project: Project = None
|
||||
self.builder: Optional[Builder] = None
|
||||
self.env: Optional[BuildEnvironment] = None
|
||||
self.project: Optional[Project] = None
|
||||
self.registry = SphinxComponentRegistry()
|
||||
self.html_themes: Dict[str, str] = {}
|
||||
|
||||
# validate provided directories
|
||||
self.srcdir = abspath(srcdir)
|
||||
@ -174,7 +175,7 @@ class Sphinx:
|
||||
|
||||
if status is None:
|
||||
self._status: IO = StringIO()
|
||||
self.quiet = True
|
||||
self.quiet: bool = True
|
||||
else:
|
||||
self._status = status
|
||||
self.quiet = False
|
||||
@ -1184,13 +1185,13 @@ class Sphinx:
|
||||
def add_html_theme(self, name: str, theme_path: str) -> None:
|
||||
"""Register a HTML Theme.
|
||||
|
||||
The *name* is a name of theme, and *path* is a full path to the theme
|
||||
(refs: :ref:`distribute-your-theme`).
|
||||
The *name* is a name of theme, and *theme_path* is a full path to the
|
||||
theme (refs: :ref:`distribute-your-theme`).
|
||||
|
||||
.. versionadded:: 1.6
|
||||
"""
|
||||
logger.debug('[app] adding HTML theme: %r, %r', name, theme_path)
|
||||
self.html_themes[name] = theme_path
|
||||
self.registry.add_html_theme(name, theme_path)
|
||||
|
||||
def add_html_math_renderer(self, name: str,
|
||||
inline_renderers: Tuple[Callable, Callable] = None,
|
||||
@ -1257,6 +1258,12 @@ class Sphinx:
|
||||
|
||||
return True
|
||||
|
||||
@property
|
||||
def html_themes(self) -> Dict[str, str]:
|
||||
warnings.warn('app.html_themes is deprecated.',
|
||||
RemovedInSphinx60Warning)
|
||||
return self.registry.html_themes
|
||||
|
||||
|
||||
class TemplateBridge:
|
||||
"""
|
||||
|
@ -11,7 +11,8 @@
|
||||
import pickle
|
||||
import time
|
||||
from os import path
|
||||
from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Sequence, Set, Tuple, Type, Union
|
||||
from typing import (TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Sequence, Set, Tuple,
|
||||
Type, Union)
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Node
|
||||
@ -88,7 +89,7 @@ class Builder:
|
||||
ensuredir(self.doctreedir)
|
||||
|
||||
self.app: Sphinx = app
|
||||
self.env: BuildEnvironment = None
|
||||
self.env: Optional[BuildEnvironment] = None
|
||||
self.events: EventManager = app.events
|
||||
self.config: Config = app.config
|
||||
self.tags: Tags = app.tags
|
||||
@ -225,7 +226,7 @@ class Builder:
|
||||
self.compile_catalogs(set(repo.catalogs), message)
|
||||
|
||||
def compile_specific_catalogs(self, specified_files: List[str]) -> None:
|
||||
def to_domain(fpath: str) -> str:
|
||||
def to_domain(fpath: str) -> Optional[str]:
|
||||
docname = self.env.path2doc(path.abspath(fpath))
|
||||
if docname:
|
||||
return docname_to_domain(docname, self.config.gettext_compact)
|
||||
|
@ -1000,16 +1000,6 @@ class StandaloneHTMLBuilder(Builder):
|
||||
return uri
|
||||
ctx['pathto'] = pathto
|
||||
|
||||
def css_tag(css: Stylesheet) -> str:
|
||||
attrs = []
|
||||
for key in sorted(css.attributes):
|
||||
value = css.attributes[key]
|
||||
if value is not None:
|
||||
attrs.append('%s="%s"' % (key, html.escape(value, True)))
|
||||
attrs.append('href="%s"' % pathto(css.filename, resource=True))
|
||||
return '<link %s />' % ' '.join(attrs)
|
||||
ctx['css_tag'] = css_tag
|
||||
|
||||
def hasdoc(name: str) -> bool:
|
||||
if name in self.env.all_docs:
|
||||
return True
|
||||
@ -1026,7 +1016,7 @@ class StandaloneHTMLBuilder(Builder):
|
||||
|
||||
# revert script_files and css_files
|
||||
self.script_files[:] = self._script_files
|
||||
self.css_files[:] = self.css_files
|
||||
self.css_files[:] = self._css_files
|
||||
|
||||
self.update_page_context(pagename, templatename, ctx, event_arg)
|
||||
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
|
||||
@ -1140,6 +1130,26 @@ def convert_html_js_files(app: Sphinx, config: Config) -> None:
|
||||
config.html_js_files = html_js_files # type: ignore
|
||||
|
||||
|
||||
def setup_css_tag_helper(app: Sphinx, pagename: str, templatename: str,
|
||||
context: Dict, doctree: Node) -> None:
|
||||
"""Set up css_tag() template helper.
|
||||
|
||||
.. note:: This set up function is added to keep compatibility with webhelper.
|
||||
"""
|
||||
pathto = context.get('pathto')
|
||||
|
||||
def css_tag(css: Stylesheet) -> str:
|
||||
attrs = []
|
||||
for key in sorted(css.attributes):
|
||||
value = css.attributes[key]
|
||||
if value is not None:
|
||||
attrs.append('%s="%s"' % (key, html.escape(value, True)))
|
||||
attrs.append('href="%s"' % pathto(css.filename, resource=True))
|
||||
return '<link %s />' % ' '.join(attrs)
|
||||
|
||||
context['css_tag'] = css_tag
|
||||
|
||||
|
||||
def setup_js_tag_helper(app: Sphinx, pagename: str, templatename: str,
|
||||
context: Dict, doctree: Node) -> None:
|
||||
"""Set up js_tag() template helper.
|
||||
@ -1347,6 +1357,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.connect('config-inited', validate_html_logo, priority=800)
|
||||
app.connect('config-inited', validate_html_favicon, priority=800)
|
||||
app.connect('builder-inited', validate_math_renderer)
|
||||
app.connect('html-page-context', setup_css_tag_helper)
|
||||
app.connect('html-page-context', setup_js_tag_helper)
|
||||
app.connect('html-page-context', setup_resource_paths)
|
||||
|
||||
|
@ -131,6 +131,7 @@ class Config:
|
||||
'manpages_url': (None, 'env', []),
|
||||
'nitpicky': (False, None, []),
|
||||
'nitpick_ignore': ([], None, []),
|
||||
'nitpick_ignore_regex': ([], None, []),
|
||||
'numfig': (False, 'env', []),
|
||||
'numfig_secnum_depth': (1, 'env', []),
|
||||
'numfig_format': ({}, 'env', []), # will be initialized in init_numfig_format()
|
||||
@ -309,7 +310,7 @@ class Config:
|
||||
self.__dict__.update(state)
|
||||
|
||||
|
||||
def eval_config_file(filename: str, tags: Tags) -> Dict[str, Any]:
|
||||
def eval_config_file(filename: str, tags: Optional[Tags]) -> Dict[str, Any]:
|
||||
"""Evaluate a config file."""
|
||||
namespace: Dict[str, Any] = {}
|
||||
namespace['__file__'] = filename
|
||||
|
@ -11,8 +11,8 @@
|
||||
|
||||
import copy
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterable, List, NamedTuple, Tuple,
|
||||
Type, Union, cast)
|
||||
from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterable, List, NamedTuple, Optional,
|
||||
Tuple, Type, Union, cast)
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Element, Node, system_message
|
||||
@ -196,7 +196,7 @@ class Domain:
|
||||
#: data value for a fresh environment
|
||||
initial_data: Dict = {}
|
||||
#: data value
|
||||
data: Dict = None
|
||||
data: Dict
|
||||
#: data version, bump this when the format of `self.data` changes
|
||||
data_version = 0
|
||||
|
||||
@ -251,7 +251,7 @@ class Domain:
|
||||
for role in objtype.roles:
|
||||
self._role2type.setdefault(role, []).append(name)
|
||||
|
||||
def role(self, name: str) -> RoleFunction:
|
||||
def role(self, name: str) -> Optional[RoleFunction]:
|
||||
"""Return a role adapter function that always gives the registered
|
||||
role its full name ('domain:name') as the first argument.
|
||||
"""
|
||||
@ -269,7 +269,7 @@ class Domain:
|
||||
self._role_cache[name] = role_adapter
|
||||
return role_adapter
|
||||
|
||||
def directive(self, name: str) -> Callable:
|
||||
def directive(self, name: str) -> Optional[Callable]:
|
||||
"""Return a directive adapter class that always gives the registered
|
||||
directive its full name ('domain:name') as ``self.name``.
|
||||
"""
|
||||
@ -318,7 +318,7 @@ class Domain:
|
||||
|
||||
def resolve_xref(self, env: "BuildEnvironment", fromdocname: str, builder: "Builder",
|
||||
typ: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Element:
|
||||
) -> Optional[Element]:
|
||||
"""Resolve the pending_xref *node* with the given *typ* and *target*.
|
||||
|
||||
This method should return a new node, to replace the xref node,
|
||||
@ -393,11 +393,11 @@ class Domain:
|
||||
return type.lname
|
||||
return _('%s %s') % (self.label, type.lname)
|
||||
|
||||
def get_enumerable_node_type(self, node: Node) -> str:
|
||||
def get_enumerable_node_type(self, node: Node) -> Optional[str]:
|
||||
"""Get type of enumerable nodes (experimental)."""
|
||||
enum_node_type, _ = self.enumerable_nodes.get(node.__class__, (None, None))
|
||||
return enum_node_type
|
||||
|
||||
def get_full_qualified_name(self, node: Element) -> str:
|
||||
def get_full_qualified_name(self, node: Element) -> Optional[str]:
|
||||
"""Return full qualified name for given node."""
|
||||
return None
|
||||
|
@ -9,7 +9,8 @@
|
||||
"""
|
||||
|
||||
import re
|
||||
from typing import Any, Callable, Dict, Generator, Iterator, List, Tuple, TypeVar, Union, cast
|
||||
from typing import (Any, Callable, Dict, Generator, Iterator, List, Optional, Tuple, TypeVar,
|
||||
Union, cast)
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Element, Node, TextElement, system_message
|
||||
@ -3807,7 +3808,7 @@ class CDomain(Domain):
|
||||
|
||||
def _resolve_xref_inner(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
|
||||
typ: str, target: str, node: pending_xref,
|
||||
contnode: Element) -> Tuple[Element, str]:
|
||||
contnode: Element) -> Tuple[Optional[Element], Optional[str]]:
|
||||
parser = DefinitionParser(target, location=node, config=env.config)
|
||||
try:
|
||||
name = parser.parse_xref_object()
|
||||
@ -3844,7 +3845,7 @@ class CDomain(Domain):
|
||||
|
||||
def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
|
||||
typ: str, target: str, node: pending_xref,
|
||||
contnode: Element) -> Element:
|
||||
contnode: Element) -> Optional[Element]:
|
||||
return self._resolve_xref_inner(env, fromdocname, builder, typ,
|
||||
target, node, contnode)[0]
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
from typing import TYPE_CHECKING, Any, Dict, List, Set, Tuple, cast
|
||||
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Tuple, cast
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Element
|
||||
@ -88,7 +88,7 @@ class CitationDomain(Domain):
|
||||
|
||||
def resolve_xref(self, env: "BuildEnvironment", fromdocname: str, builder: "Builder",
|
||||
typ: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Element:
|
||||
) -> Optional[Element]:
|
||||
docname, labelid, lineno = self.citations.get(target, ('', '', 0))
|
||||
if not docname:
|
||||
return None
|
||||
|
@ -7594,7 +7594,7 @@ class CPPDomain(Domain):
|
||||
|
||||
def _resolve_xref_inner(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
|
||||
typ: str, target: str, node: pending_xref,
|
||||
contnode: Element) -> Tuple[Element, str]:
|
||||
contnode: Element) -> Tuple[Optional[Element], Optional[str]]:
|
||||
# add parens again for those that could be functions
|
||||
if typ == 'any' or typ == 'func':
|
||||
target += '()'
|
||||
@ -7743,7 +7743,7 @@ class CPPDomain(Domain):
|
||||
|
||||
def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
|
||||
typ: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Element:
|
||||
) -> Optional[Element]:
|
||||
return self._resolve_xref_inner(env, fromdocname, builder, typ,
|
||||
target, node, contnode)[0]
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
from typing import Any, Dict, Iterator, List, Tuple, cast
|
||||
from typing import Any, Dict, Iterator, List, Optional, Tuple, cast
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Element, Node
|
||||
@ -413,7 +413,7 @@ class JavaScriptDomain(Domain):
|
||||
|
||||
def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
|
||||
typ: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Element:
|
||||
) -> Optional[Element]:
|
||||
mod_name = node.get('js:module')
|
||||
prefix = node.get('js:object')
|
||||
searchorder = 1 if node.hasattr('refspecific') else 0
|
||||
|
@ -8,7 +8,7 @@
|
||||
: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, Optional, Tuple
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Element, Node, make_id, system_message
|
||||
@ -97,7 +97,7 @@ class MathDomain(Domain):
|
||||
|
||||
def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: "Builder",
|
||||
typ: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Element:
|
||||
) -> Optional[Element]:
|
||||
assert typ in ('eq', 'numref')
|
||||
docname, number = self.equations.get(target, (None, None))
|
||||
if docname:
|
||||
|
@ -15,7 +15,7 @@ import sys
|
||||
import typing
|
||||
import warnings
|
||||
from inspect import Parameter
|
||||
from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Tuple, Type, cast
|
||||
from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Optional, Tuple, Type, cast
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Element, Node
|
||||
@ -1246,7 +1246,7 @@ class PythonDomain(Domain):
|
||||
|
||||
def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
|
||||
type: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Element:
|
||||
) -> Optional[Element]:
|
||||
modname = node.get('py:module')
|
||||
clsname = node.get('py:class')
|
||||
searchmode = 1 if node.hasattr('refspecific') else 0
|
||||
@ -1269,9 +1269,13 @@ class PythonDomain(Domain):
|
||||
if not matches:
|
||||
return None
|
||||
elif len(matches) > 1:
|
||||
logger.warning(__('more than one target found for cross-reference %r: %s'),
|
||||
target, ', '.join(match[0] for match in matches),
|
||||
type='ref', subtype='python', location=node)
|
||||
canonicals = [m for m in matches if not m[1].aliased]
|
||||
if len(canonicals) == 1:
|
||||
matches = canonicals
|
||||
else:
|
||||
logger.warning(__('more than one target found for cross-reference %r: %s'),
|
||||
target, ', '.join(match[0] for match in matches),
|
||||
type='ref', subtype='python', location=node)
|
||||
name, obj = matches[0]
|
||||
|
||||
if obj[2] == 'module':
|
||||
@ -1340,7 +1344,7 @@ class PythonDomain(Domain):
|
||||
else:
|
||||
yield (refname, refname, obj.objtype, obj.docname, obj.node_id, 1)
|
||||
|
||||
def get_full_qualified_name(self, node: Element) -> str:
|
||||
def get_full_qualified_name(self, node: Element) -> Optional[str]:
|
||||
modname = node.get('py:module')
|
||||
clsname = node.get('py:class')
|
||||
target = node.get('reftarget')
|
||||
|
@ -9,7 +9,7 @@
|
||||
"""
|
||||
|
||||
import re
|
||||
from typing import Any, Dict, Iterator, List, Tuple, cast
|
||||
from typing import Any, Dict, Iterator, List, Optional, Tuple, cast
|
||||
|
||||
from docutils.nodes import Element
|
||||
from docutils.parsers.rst import directives
|
||||
@ -247,7 +247,7 @@ class ReSTDomain(Domain):
|
||||
|
||||
def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
|
||||
typ: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Element:
|
||||
) -> Optional[Element]:
|
||||
objtypes = self.objtypes_for_role(typ)
|
||||
for objtype in objtypes:
|
||||
todocname, node_id = self.objects.get((objtype, target), (None, None))
|
||||
|
@ -285,7 +285,7 @@ class OptionXRefRole(XRefRole):
|
||||
|
||||
def split_term_classifiers(line: str) -> List[Optional[str]]:
|
||||
# split line into a term and classifiers. if no classifier, None is used..
|
||||
parts = re.split(' +: +', line) + [None]
|
||||
parts: List[Optional[str]] = re.split(' +: +', line) + [None]
|
||||
return parts
|
||||
|
||||
|
||||
@ -621,7 +621,7 @@ class StandardDomain(Domain):
|
||||
}
|
||||
|
||||
# node_class -> (figtype, title_getter)
|
||||
enumerable_nodes: Dict[Type[Node], Tuple[str, Callable]] = {
|
||||
enumerable_nodes: Dict[Type[Node], Tuple[str, Optional[Callable]]] = {
|
||||
nodes.figure: ('figure', None),
|
||||
nodes.table: ('table', None),
|
||||
nodes.container: ('code-block', None),
|
||||
@ -812,7 +812,8 @@ class StandardDomain(Domain):
|
||||
return newnode
|
||||
|
||||
def resolve_xref(self, env: "BuildEnvironment", fromdocname: str, builder: "Builder",
|
||||
typ: str, target: str, node: pending_xref, contnode: Element) -> Element:
|
||||
typ: str, target: str, node: pending_xref, contnode: Element
|
||||
) -> Optional[Element]:
|
||||
if typ == 'ref':
|
||||
resolver = self._resolve_ref_xref
|
||||
elif typ == 'numref':
|
||||
@ -832,7 +833,7 @@ class StandardDomain(Domain):
|
||||
|
||||
def _resolve_ref_xref(self, env: "BuildEnvironment", fromdocname: str,
|
||||
builder: "Builder", typ: str, target: str, node: pending_xref,
|
||||
contnode: Element) -> Element:
|
||||
contnode: Element) -> Optional[Element]:
|
||||
if node['refexplicit']:
|
||||
# reference to anonymous label; the reference uses
|
||||
# the supplied link caption
|
||||
@ -850,7 +851,7 @@ class StandardDomain(Domain):
|
||||
|
||||
def _resolve_numref_xref(self, env: "BuildEnvironment", fromdocname: str,
|
||||
builder: "Builder", typ: str, target: str,
|
||||
node: pending_xref, contnode: Element) -> Element:
|
||||
node: pending_xref, contnode: Element) -> Optional[Element]:
|
||||
if target in self.labels:
|
||||
docname, labelid, figname = self.labels.get(target, ('', '', ''))
|
||||
else:
|
||||
@ -913,7 +914,7 @@ class StandardDomain(Domain):
|
||||
|
||||
def _resolve_keyword_xref(self, env: "BuildEnvironment", fromdocname: str,
|
||||
builder: "Builder", typ: str, target: str,
|
||||
node: pending_xref, contnode: Element) -> Element:
|
||||
node: pending_xref, contnode: Element) -> Optional[Element]:
|
||||
# keywords are oddballs: they are referenced by named labels
|
||||
docname, labelid, _ = self.labels.get(target, ('', '', ''))
|
||||
if not docname:
|
||||
@ -923,7 +924,7 @@ class StandardDomain(Domain):
|
||||
|
||||
def _resolve_doc_xref(self, env: "BuildEnvironment", fromdocname: str,
|
||||
builder: "Builder", typ: str, target: str,
|
||||
node: pending_xref, contnode: Element) -> Element:
|
||||
node: pending_xref, contnode: Element) -> Optional[Element]:
|
||||
# directly reference to document by source name; can be absolute or relative
|
||||
refdoc = node.get('refdoc', fromdocname)
|
||||
docname = docname_join(refdoc, node['reftarget'])
|
||||
@ -940,7 +941,7 @@ class StandardDomain(Domain):
|
||||
|
||||
def _resolve_option_xref(self, env: "BuildEnvironment", fromdocname: str,
|
||||
builder: "Builder", typ: str, target: str,
|
||||
node: pending_xref, contnode: Element) -> Element:
|
||||
node: pending_xref, contnode: Element) -> Optional[Element]:
|
||||
progname = node.get('std:program')
|
||||
target = target.strip()
|
||||
docname, labelid = self.progoptions.get((progname, target), ('', ''))
|
||||
@ -977,7 +978,7 @@ class StandardDomain(Domain):
|
||||
|
||||
def _resolve_obj_xref(self, env: "BuildEnvironment", fromdocname: str,
|
||||
builder: "Builder", typ: str, target: str,
|
||||
node: pending_xref, contnode: Element) -> Element:
|
||||
node: pending_xref, contnode: Element) -> Optional[Element]:
|
||||
objtypes = self.objtypes_for_role(typ) or []
|
||||
for objtype in objtypes:
|
||||
if (objtype, target) in self.objects:
|
||||
@ -1041,7 +1042,7 @@ class StandardDomain(Domain):
|
||||
def is_enumerable_node(self, node: Node) -> bool:
|
||||
return node.__class__ in self.enumerable_nodes
|
||||
|
||||
def get_numfig_title(self, node: Node) -> str:
|
||||
def get_numfig_title(self, node: Node) -> Optional[str]:
|
||||
"""Get the title of enumerable nodes to refer them using its title"""
|
||||
if self.is_enumerable_node(node):
|
||||
elem = cast(Element, node)
|
||||
@ -1055,7 +1056,7 @@ class StandardDomain(Domain):
|
||||
|
||||
return None
|
||||
|
||||
def get_enumerable_node_type(self, node: Node) -> str:
|
||||
def get_enumerable_node_type(self, node: Node) -> Optional[str]:
|
||||
"""Get type of enumerable nodes."""
|
||||
def has_child(node: Element, cls: Type) -> bool:
|
||||
return any(isinstance(child, cls) for child in node)
|
||||
@ -1094,7 +1095,7 @@ class StandardDomain(Domain):
|
||||
# Maybe it is defined in orphaned document.
|
||||
raise ValueError from exc
|
||||
|
||||
def get_full_qualified_name(self, node: Element) -> str:
|
||||
def get_full_qualified_name(self, node: Element) -> Optional[str]:
|
||||
if node.get('reftype') == 'option':
|
||||
progname = node.get('std:program')
|
||||
command = ws_re.split(node.get('reftarget'))
|
||||
@ -1109,7 +1110,8 @@ class StandardDomain(Domain):
|
||||
return None
|
||||
|
||||
|
||||
def warn_missing_reference(app: "Sphinx", domain: Domain, node: pending_xref) -> bool:
|
||||
def warn_missing_reference(app: "Sphinx", domain: Domain, node: pending_xref
|
||||
) -> Optional[bool]:
|
||||
if (domain and domain.name != 'std') or node['reftype'] != 'ref':
|
||||
return None
|
||||
else:
|
||||
|
@ -14,8 +14,8 @@ from collections import defaultdict
|
||||
from copy import copy
|
||||
from datetime import datetime
|
||||
from os import path
|
||||
from typing import (TYPE_CHECKING, Any, Callable, Dict, Generator, Iterator, List, Set, Tuple,
|
||||
Union)
|
||||
from typing import (TYPE_CHECKING, Any, Callable, Dict, Generator, Iterator, List, Optional,
|
||||
Set, Tuple, Union)
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Node
|
||||
@ -87,7 +87,7 @@ class BuildEnvironment:
|
||||
transformations to resolve links to them.
|
||||
"""
|
||||
|
||||
domains: Dict[str, Domain] = None
|
||||
domains: Dict[str, Domain]
|
||||
|
||||
# --------- ENVIRONMENT INITIALIZATION -------------------------------------
|
||||
|
||||
@ -266,7 +266,7 @@ class BuildEnvironment:
|
||||
raise an exception if the user tries to use an environment with an
|
||||
incompatible versioning method.
|
||||
"""
|
||||
condition: Union[bool, Callable] = None
|
||||
condition: Union[bool, Callable]
|
||||
if callable(method):
|
||||
condition = method
|
||||
else:
|
||||
@ -309,7 +309,7 @@ class BuildEnvironment:
|
||||
domain.merge_domaindata(docnames, other.domaindata[domainname])
|
||||
self.events.emit('env-merge-info', self, docnames, other)
|
||||
|
||||
def path2doc(self, filename: str) -> str:
|
||||
def path2doc(self, filename: str) -> Optional[str]:
|
||||
"""Return the docname for the filename if the file is document.
|
||||
|
||||
*filename* should be absolute or relative to the source directory.
|
||||
@ -577,7 +577,7 @@ class BuildEnvironment:
|
||||
# allow custom references to be resolved
|
||||
self.events.emit('doctree-resolved', doctree, docname)
|
||||
|
||||
def collect_relations(self) -> Dict[str, List[str]]:
|
||||
def collect_relations(self) -> Dict[str, List[Optional[str]]]:
|
||||
traversed = set()
|
||||
|
||||
def traverse_toctree(parent: str, docname: str) -> Iterator[Tuple[str, str]]:
|
||||
|
@ -8,7 +8,7 @@
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
from typing import TYPE_CHECKING, Any, Iterable, List, cast
|
||||
from typing import TYPE_CHECKING, Any, Iterable, List, Optional, cast
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.nodes import Element, Node
|
||||
@ -48,7 +48,7 @@ class TocTree:
|
||||
|
||||
def resolve(self, docname: str, builder: "Builder", toctree: addnodes.toctree,
|
||||
prune: bool = True, maxdepth: int = 0, titles_only: bool = False,
|
||||
collapse: bool = False, includehidden: bool = False) -> Element:
|
||||
collapse: bool = False, includehidden: bool = False) -> Optional[Element]:
|
||||
"""Resolve a *toctree* node into individual bullet lists with titles
|
||||
as items, returning None (if no containing titles are found) or
|
||||
a new node.
|
||||
@ -313,7 +313,7 @@ class TocTree:
|
||||
return toc
|
||||
|
||||
def get_toctree_for(self, docname: str, builder: "Builder", collapse: bool,
|
||||
**kwargs: Any) -> Element:
|
||||
**kwargs: Any) -> Optional[Element]:
|
||||
"""Return the global TOC nodetree."""
|
||||
doctree = self.env.get_doctree(self.env.config.root_doc)
|
||||
toctrees: List[Element] = []
|
||||
|
@ -8,7 +8,7 @@
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
from typing import TYPE_CHECKING, Dict, List, Set
|
||||
from typing import TYPE_CHECKING, Dict, List, Optional, Set
|
||||
|
||||
from docutils import nodes
|
||||
|
||||
@ -27,7 +27,7 @@ class EnvironmentCollector:
|
||||
entries and toctrees, etc.
|
||||
"""
|
||||
|
||||
listener_ids: Dict[str, int] = None
|
||||
listener_ids: Optional[Dict[str, int]] = None
|
||||
|
||||
def enable(self, app: "Sphinx") -> None:
|
||||
assert self.listener_ids is None
|
||||
|
@ -389,8 +389,8 @@ class Documenter:
|
||||
# functions can contain a signature which is then used instead of
|
||||
# an autogenerated one
|
||||
try:
|
||||
explicit_modname, path, base, args, retann = \
|
||||
py_ext_sig_re.match(self.name).groups()
|
||||
matched = py_ext_sig_re.match(self.name)
|
||||
explicit_modname, path, base, args, retann = matched.groups()
|
||||
except AttributeError:
|
||||
logger.warning(__('invalid signature for auto%s (%r)') % (self.objtype, self.name),
|
||||
type='autodoc')
|
||||
@ -412,8 +412,8 @@ class Documenter:
|
||||
|
||||
self.args = args
|
||||
self.retann = retann
|
||||
self.fullname = (self.modname or '') + \
|
||||
('.' + '.'.join(self.objpath) if self.objpath else '')
|
||||
self.fullname = ((self.modname or '') +
|
||||
('.' + '.'.join(self.objpath) if self.objpath else ''))
|
||||
return True
|
||||
|
||||
def import_object(self, raiseerror: bool = False) -> bool:
|
||||
@ -709,6 +709,8 @@ class Documenter:
|
||||
# if isattr is True, the member is documented as an attribute
|
||||
if member is INSTANCEATTR:
|
||||
isattr = True
|
||||
elif (namespace, membername) in attr_docs:
|
||||
isattr = True
|
||||
else:
|
||||
isattr = False
|
||||
|
||||
@ -769,7 +771,6 @@ class Documenter:
|
||||
else:
|
||||
# keep documented attributes
|
||||
keep = True
|
||||
isattr = True
|
||||
elif want_all and isprivate:
|
||||
if has_doc or self.options.undoc_members:
|
||||
if self.options.private_members is None:
|
||||
@ -824,8 +825,9 @@ class Documenter:
|
||||
if self.objpath:
|
||||
self.env.temp_data['autodoc:class'] = self.objpath[0]
|
||||
|
||||
want_all = all_members or self.options.inherited_members or \
|
||||
self.options.members is ALL
|
||||
want_all = (all_members or
|
||||
self.options.inherited_members or
|
||||
self.options.members is ALL)
|
||||
# find out which members are documentable
|
||||
members_check_module, members = self.get_object_members(want_all)
|
||||
|
||||
@ -841,8 +843,7 @@ class Documenter:
|
||||
classes.sort(key=lambda cls: cls.priority)
|
||||
# give explicitly separated module name, so that members
|
||||
# of inner classes can be documented
|
||||
full_mname = self.modname + '::' + \
|
||||
'.'.join(self.objpath + [mname])
|
||||
full_mname = self.modname + '::' + '.'.join(self.objpath + [mname])
|
||||
documenter = classes[-1](self.directive, full_mname, self.indent)
|
||||
memberdocumenters.append((documenter, isattr))
|
||||
|
||||
@ -1314,7 +1315,7 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
|
||||
sigs = []
|
||||
if (self.analyzer and
|
||||
'.'.join(self.objpath) in self.analyzer.overloads and
|
||||
self.config.autodoc_typehints == 'signature'):
|
||||
self.config.autodoc_typehints != 'none'):
|
||||
# Use signatures for overloaded functions instead of the implementation function.
|
||||
overloaded = True
|
||||
else:
|
||||
@ -1560,7 +1561,7 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
|
||||
sigs = []
|
||||
|
||||
overloads = self.get_overloaded_signatures()
|
||||
if overloads and self.config.autodoc_typehints == 'signature':
|
||||
if overloads and self.config.autodoc_typehints != 'none':
|
||||
# Use signatures for overloaded methods instead of the implementation method.
|
||||
method = safe_getattr(self._signature_class, self._signature_method_name, None)
|
||||
__globals__ = safe_getattr(method, '__globals__', {})
|
||||
@ -1967,8 +1968,8 @@ class DataDocumenter(GenericAliasMixin, NewTypeMixin, TypeVarMixin,
|
||||
pass
|
||||
|
||||
def get_real_modname(self) -> str:
|
||||
return self.get_attr(self.parent or self.object, '__module__', None) \
|
||||
or self.modname
|
||||
real_modname = self.get_attr(self.parent or self.object, '__module__', None)
|
||||
return real_modname or self.modname
|
||||
|
||||
def get_module_comment(self, attrname: str) -> Optional[List[str]]:
|
||||
try:
|
||||
@ -2033,8 +2034,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
|
||||
@classmethod
|
||||
def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any
|
||||
) -> bool:
|
||||
return inspect.isroutine(member) and \
|
||||
not isinstance(parent, ModuleDocumenter)
|
||||
return inspect.isroutine(member) and not isinstance(parent, ModuleDocumenter)
|
||||
|
||||
def import_object(self, raiseerror: bool = False) -> bool:
|
||||
ret = super().import_object(raiseerror)
|
||||
@ -2109,7 +2109,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
|
||||
sigs = []
|
||||
if (self.analyzer and
|
||||
'.'.join(self.objpath) in self.analyzer.overloads and
|
||||
self.config.autodoc_typehints == 'signature'):
|
||||
self.config.autodoc_typehints != 'none'):
|
||||
# Use signatures for overloaded methods instead of the implementation method.
|
||||
overloaded = True
|
||||
else:
|
||||
@ -2469,8 +2469,8 @@ class AttributeDocumenter(GenericAliasMixin, NewTypeMixin, SlotsMixin, # type:
|
||||
return ret
|
||||
|
||||
def get_real_modname(self) -> str:
|
||||
return self.get_attr(self.parent or self.object, '__module__', None) \
|
||||
or self.modname
|
||||
real_modname = self.get_attr(self.parent or self.object, '__module__', None)
|
||||
return real_modname or self.modname
|
||||
|
||||
def should_suppress_value_header(self) -> bool:
|
||||
if super().should_suppress_value_header():
|
||||
@ -2571,8 +2571,8 @@ class PropertyDocumenter(DocstringStripSignatureMixin, ClassLevelDocumenter): #
|
||||
pass
|
||||
|
||||
def get_real_modname(self) -> str:
|
||||
return self.get_attr(self.parent or self.object, '__module__', None) \
|
||||
or self.modname
|
||||
real_modname = self.get_attr(self.parent or self.object, '__module__', None)
|
||||
return real_modname or self.modname
|
||||
|
||||
def add_directive_header(self, sig: str) -> None:
|
||||
super().add_directive_header(sig)
|
||||
@ -2592,7 +2592,7 @@ class PropertyDocumenter(DocstringStripSignatureMixin, ClassLevelDocumenter): #
|
||||
self.fullname, exc)
|
||||
return None
|
||||
except ValueError:
|
||||
raise
|
||||
return None
|
||||
|
||||
|
||||
class NewTypeAttributeDocumenter(AttributeDocumenter):
|
||||
@ -2666,7 +2666,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.add_config_value('autodoc_docstring_signature', True, True)
|
||||
app.add_config_value('autodoc_mock_imports', [], True)
|
||||
app.add_config_value('autodoc_typehints', "signature", True,
|
||||
ENUM("signature", "description", "none"))
|
||||
ENUM("signature", "description", "none", "both"))
|
||||
app.add_config_value('autodoc_typehints_description_target', 'all', True,
|
||||
ENUM('all', 'documented'))
|
||||
app.add_config_value('autodoc_type_aliases', {}, True)
|
||||
|
@ -40,7 +40,7 @@ def record_typehints(app: Sphinx, objtype: str, name: str, obj: Any,
|
||||
def merge_typehints(app: Sphinx, domain: str, objtype: str, contentnode: Element) -> None:
|
||||
if domain != 'py':
|
||||
return
|
||||
if app.config.autodoc_typehints != 'description':
|
||||
if app.config.autodoc_typehints not in ('both', 'description'):
|
||||
return
|
||||
|
||||
try:
|
||||
|
@ -662,8 +662,10 @@ def import_ivar_by_name(name: str, prefixes: List[str] = [None]) -> Tuple[str, A
|
||||
name, attr = name.rsplit(".", 1)
|
||||
real_name, obj, parent, modname = import_by_name(name, prefixes)
|
||||
qualname = real_name.replace(modname + ".", "")
|
||||
analyzer = ModuleAnalyzer.for_module(modname)
|
||||
if (qualname, attr) in analyzer.find_attr_docs():
|
||||
analyzer = ModuleAnalyzer.for_module(getattr(obj, '__module__', modname))
|
||||
analyzer.analyze()
|
||||
# check for presence in `annotations` to include dataclass attributes
|
||||
if (qualname, attr) in analyzer.attr_docs or (qualname, attr) in analyzer.annotations:
|
||||
return real_name + "." + attr, INSTANCEATTR, obj, modname
|
||||
except (ImportError, ValueError, PycodeError):
|
||||
pass
|
||||
@ -773,7 +775,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.connect('builder-inited', process_generate_options)
|
||||
app.add_config_value('autosummary_context', {}, True)
|
||||
app.add_config_value('autosummary_filename_map', {}, 'html')
|
||||
app.add_config_value('autosummary_generate', True, True, [bool])
|
||||
app.add_config_value('autosummary_generate', True, True, [bool, list])
|
||||
app.add_config_value('autosummary_generate_overwrite', True, False)
|
||||
app.add_config_value('autosummary_mock_imports',
|
||||
lambda config: config.autodoc_mock_imports, 'env')
|
||||
|
@ -239,15 +239,33 @@ def generate_autosummary_content(name: str, obj: Any, parent: Any,
|
||||
name, exc, type='autosummary')
|
||||
return False
|
||||
|
||||
def get_class_members(obj: Any) -> Dict[str, Any]:
|
||||
members = sphinx.ext.autodoc.get_class_members(obj, [qualname], safe_getattr)
|
||||
return {name: member.object for name, member in members.items()}
|
||||
|
||||
def get_module_members(obj: Any) -> Dict[str, Any]:
|
||||
members = {}
|
||||
for name in dir(obj):
|
||||
try:
|
||||
members[name] = safe_getattr(obj, name)
|
||||
except AttributeError:
|
||||
continue
|
||||
return members
|
||||
|
||||
def get_all_members(obj: Any) -> Dict[str, Any]:
|
||||
if doc.objtype == "module":
|
||||
return get_module_members(obj)
|
||||
elif doc.objtype == "class":
|
||||
return get_class_members(obj)
|
||||
return {}
|
||||
|
||||
def get_members(obj: Any, types: Set[str], include_public: List[str] = [],
|
||||
imported: bool = True) -> Tuple[List[str], List[str]]:
|
||||
items: List[str] = []
|
||||
public: List[str] = []
|
||||
for name in dir(obj):
|
||||
try:
|
||||
value = safe_getattr(obj, name)
|
||||
except AttributeError:
|
||||
continue
|
||||
|
||||
all_members = get_all_members(obj)
|
||||
for name, value in all_members.items():
|
||||
documenter = get_documenter(app, value, obj)
|
||||
if documenter.objtype in types:
|
||||
# skip imported members if expected
|
||||
|
@ -150,10 +150,11 @@ def env_merge_info(app: Sphinx, env: BuildEnvironment, docnames: Iterable[str],
|
||||
if modname not in env._viewcode_modules: # type: ignore
|
||||
env._viewcode_modules[modname] = entry # type: ignore
|
||||
else:
|
||||
used = env._viewcode_modules[modname][2] # type: ignore
|
||||
for fullname, docname in entry[2].items():
|
||||
if fullname not in used:
|
||||
used[fullname] = docname
|
||||
if env._viewcode_modules[modname]: # type: ignore
|
||||
used = env._viewcode_modules[modname][2] # type: ignore
|
||||
for fullname, docname in entry[2].items():
|
||||
if fullname not in used:
|
||||
used[fullname] = docname
|
||||
|
||||
|
||||
def env_purge_doc(app: Sphinx, env: BuildEnvironment, docname: str) -> None:
|
||||
|
@ -12,7 +12,7 @@ from os import path
|
||||
from pprint import pformat
|
||||
from typing import TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Tuple, Union
|
||||
|
||||
from jinja2 import BaseLoader, FileSystemLoader, TemplateNotFound, contextfunction
|
||||
from jinja2 import BaseLoader, FileSystemLoader, TemplateNotFound
|
||||
from jinja2.environment import Environment
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
from jinja2.utils import open_if_exists
|
||||
@ -22,6 +22,11 @@ from sphinx.theming import Theme
|
||||
from sphinx.util import logging
|
||||
from sphinx.util.osutil import mtimes_of_files
|
||||
|
||||
try:
|
||||
from jinja2.utils import pass_context
|
||||
except ImportError:
|
||||
from jinja2 import contextfunction as pass_context
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from sphinx.builders import Builder
|
||||
|
||||
@ -101,7 +106,7 @@ class idgen:
|
||||
next = __next__ # Python 2/Jinja compatibility
|
||||
|
||||
|
||||
@contextfunction
|
||||
@pass_context
|
||||
def warning(context: Dict, message: str, *args: Any, **kwargs: Any) -> str:
|
||||
if 'pagename' in context:
|
||||
filename = context.get('pagename') + context.get('file_suffix', '')
|
||||
@ -180,9 +185,9 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
|
||||
self.environment.filters['toint'] = _toint
|
||||
self.environment.filters['todim'] = _todim
|
||||
self.environment.filters['slice_index'] = _slice_index
|
||||
self.environment.globals['debug'] = contextfunction(pformat)
|
||||
self.environment.globals['debug'] = pass_context(pformat)
|
||||
self.environment.globals['warning'] = warning
|
||||
self.environment.globals['accesskey'] = contextfunction(accesskey)
|
||||
self.environment.globals['accesskey'] = pass_context(accesskey)
|
||||
self.environment.globals['idgen'] = idgen
|
||||
if use_i18n:
|
||||
self.environment.install_gettext_translations(builder.app.translator)
|
||||
|
@ -11,12 +11,12 @@ Documentation.addTranslations({
|
||||
"Changes in Version %(version)s — %(docstitle)s": "",
|
||||
"Collapse sidebar": "",
|
||||
"Complete Table of Contents": "",
|
||||
"Contents": "",
|
||||
"Copyright": "",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Contents": "\u0627\u0644\u0645\u062d\u062a\u0648\u0649",
|
||||
"Copyright": "\u0627\u0644\u062d\u0642\u0648\u0642",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "",
|
||||
"General Index": "",
|
||||
"General Index": "\u0627\u0644\u0641\u0647\u0631\u0633 \u0627\u0644\u0639\u0627\u0645",
|
||||
"Global Module Index": "",
|
||||
"Go": "",
|
||||
"Hide Search Matches": "",
|
||||
@ -25,7 +25,7 @@ Documentation.addTranslations({
|
||||
"Index pages by letter": "",
|
||||
"Indices and tables:": "",
|
||||
"Last updated on %(last_updated)s.": "",
|
||||
"Library changes": "",
|
||||
"Library changes": "\u062a\u062c\u0647\u064a\u0632 \u0627\u0644\u0628\u062d\u062b",
|
||||
"Navigation": "",
|
||||
"Next topic": "\u0627\u0644\u0645\u0648\u0636\u0648\u0639 \u0627\u0644\u062a\u0627\u0644\u064a",
|
||||
"Other changes": "",
|
||||
@ -35,29 +35,29 @@ Documentation.addTranslations({
|
||||
"Please activate JavaScript to enable the search\n functionality.": "",
|
||||
"Preparing search...": "",
|
||||
"Previous topic": "\u0627\u0644\u0645\u0648\u0636\u0648\u0639 \u0627\u0644\u0633\u0627\u0628\u0642",
|
||||
"Quick search": "",
|
||||
"Search": "",
|
||||
"Search Page": "",
|
||||
"Search Results": "",
|
||||
"Quick search": "\u0627\u0644\u0628\u062d\u062b \u0627\u0644\u0633\u0631\u064a\u0639",
|
||||
"Search": "\u0628\u062d\u062b",
|
||||
"Search Page": "\u0635\u0641\u062d\u0629 \u0627\u0644\u0628\u062d\u062b",
|
||||
"Search Results": "\u0646\u062a\u0627\u0626\u062c \u0627\u0644\u0628\u062d\u062b",
|
||||
"Search finished, found %s page(s) matching the search query.": "",
|
||||
"Search within %(docstitle)s": "\u0627\u0644\u0628\u062d\u062b \u0636\u0645\u0646 %(docstitle)s",
|
||||
"Searching": "",
|
||||
"Searching for multiple words only shows matches that contain\n all words.": "",
|
||||
"Show Source": "",
|
||||
"Table of Contents": "",
|
||||
"This Page": "",
|
||||
"Welcome! This is": "",
|
||||
"Show Source": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0645\u0635\u062f\u0631",
|
||||
"Table of Contents": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a",
|
||||
"This Page": "\u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629",
|
||||
"Welcome! This is": "\u0623\u0647\u0644\u0627 \u0648\u0633\u0647\u0644\u0627 \u0647\u0630\u0627",
|
||||
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "",
|
||||
"all functions, classes, terms": "",
|
||||
"can be huge": "",
|
||||
"last updated": "",
|
||||
"lists all sections and subsections": "",
|
||||
"next chapter": "\u0627\u0644\u0641\u0635\u0644 \u0627\u0644\u062a\u0627\u0644\u064a",
|
||||
"previous chapter": "",
|
||||
"previous chapter": "\u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0633\u0627\u0628\u0642",
|
||||
"quick access to all modules": "",
|
||||
"search": "",
|
||||
"search": "\u0628\u062d\u062b",
|
||||
"search this documentation": "",
|
||||
"the documentation for": ""
|
||||
"the documentation for": "\u0627\u0644\u062a\u0648\u062b\u064a\u0642 \u0644"
|
||||
},
|
||||
"plural_expr": "n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5"
|
||||
});
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "",
|
||||
"Contents": "",
|
||||
"Copyright": "",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "",
|
||||
"General Index": "",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "\u09aa\u09c2\u09b0\u09cd\u09a3\u09be\u0999\u09cd\u0997 \u09b8\u09c2\u099a\u09c0\u09aa\u09a4\u09cd\u09b0",
|
||||
"Contents": "",
|
||||
"Copyright": "\u0995\u09aa\u09bf\u09b0\u09be\u0987\u099f",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u09a6\u09bf\u09df\u09c7 \u09a4\u09c8\u09b0\u09c0\u0964",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "\u098f\u0995 \u09aa\u09be\u09a4\u09be\u09df \u09b8\u09ae\u09cd\u09aa\u09c2\u09b0\u09cd\u09a3 \u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8",
|
||||
"General Index": "\u09b8\u09be\u09a7\u09be\u09b0\u09a3 \u0987\u09a8\u09a1\u09c7\u0995\u09cd\u09b8",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Taula de Contingut Completa",
|
||||
"Contents": "",
|
||||
"Copyright": "Copyright",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Creat amb <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "\u00cdndex complet en una p\u00e0gina",
|
||||
"General Index": "\u00cdndex General",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "",
|
||||
"Contents": "",
|
||||
"Copyright": "",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "",
|
||||
"General Index": "Konojel cholwuj",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Celkov\u00fd obsah",
|
||||
"Contents": "Obsah",
|
||||
"Copyright": "Ve\u0161ker\u00e1 pr\u00e1va vyhrazena",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Vytvo\u0159eno pomoc\u00ed <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Rozbalit bo\u010dn\u00ed li\u0161tu",
|
||||
"Full index on one page": "Cel\u00fd rejst\u0159\u00edk na jedn\u00e9 str\u00e1nce",
|
||||
"General Index": "Obecn\u00fd rejst\u0159\u00edk",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Tabl Cynnwys Llawn",
|
||||
"Contents": "Cynnwys",
|
||||
"Copyright": "Hawlfraint",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Cr\u8c37wyd gan ddefnyddio <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Ehangu'r bar ochr",
|
||||
"Full index on one page": "Indecs llawn ar un tudalen",
|
||||
"General Index": "Indecs cyffredinol",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Fuldst\u00e6ndig indholdsfortegnelse",
|
||||
"Contents": "Indhold",
|
||||
"Copyright": "Ophavsret",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Bygget med <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Udfold sidebj\u00e6lke",
|
||||
"Full index on one page": "Fuldt indeks p\u00e5 \u00e9n side",
|
||||
"General Index": "Generelt indeks",
|
||||
@ -42,7 +42,7 @@ Documentation.addTranslations({
|
||||
"Search finished, found %s page(s) matching the search query.": "S\u00f8gning f\u00e6rdig, fandt %s sider der matcher s\u00f8geforesp\u00f8rgslen.",
|
||||
"Search within %(docstitle)s": "S\u00f8g i %(docstitle)s",
|
||||
"Searching": "S\u00f8ger",
|
||||
"Searching for multiple words only shows matches that contain\n all words.": "",
|
||||
"Searching for multiple words only shows matches that contain\n all words.": "Bem\u00e6rk: Hvis du s\u00f8ger efter flere ord, vises kun resultater der indeholder alle ordene.",
|
||||
"Show Source": "Vis kilde",
|
||||
"Table of Contents": "",
|
||||
"This Page": "Denne side",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Vollst\u00e4ndiges Inhaltsverzeichnis",
|
||||
"Contents": "Inhalt",
|
||||
"Copyright": "Copyright",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Mit <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s erstellt.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Seitenleiste ausklappen",
|
||||
"Full index on one page": "Gesamtes Stichwortverzeichnis auf einer Seite",
|
||||
"General Index": "Stichwortverzeichnis",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2 \u03a0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd",
|
||||
"Contents": "\u03a0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03b1",
|
||||
"Copyright": "Copyright",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03b8\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03c4\u03bf <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c0\u03bb\u03b1\u03ca\u03bd\u03ae\u03c2 \u03bc\u03c0\u03ac\u03c1\u03b1\u03c2",
|
||||
"Full index on one page": "\u03a0\u03bb\u03ae\u03c1\u03b5\u03c2 \u03b5\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf \u03c3\u03b5 \u03bc\u03af\u03b1 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1",
|
||||
"General Index": "\u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03cc \u0395\u03c5\u03c1\u03b5\u03c4\u03ae\u03c1\u03b9\u03bf\u03bf",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "",
|
||||
"Contents": "",
|
||||
"Copyright": "A\u016dtora rajto",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "",
|
||||
"General Index": "Indico universala",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "\u00cdndice de contenidos completo",
|
||||
"Contents": "Contenidos",
|
||||
"Copyright": "Copyright",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Creado con <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Expandir barra lateral",
|
||||
"Full index on one page": "\u00cdndice completo en una p\u00e1gina",
|
||||
"General Index": "\u00cdndice General",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "T\u00e4ielik sisukorratabel",
|
||||
"Contents": "Sisukord",
|
||||
"Copyright": "Autori\u00f5igus",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Loodud <a href=\"http://sphinx-doc.org/\">Sphinxiga</a> (versioon: %(sphinx_version)s).",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "N\u00e4ita k\u00fclgriba",
|
||||
"Full index on one page": "T\u00e4isindeks \u00fchel lehel",
|
||||
"General Index": "\u00dcldindeks",
|
||||
@ -47,7 +47,7 @@ Documentation.addTranslations({
|
||||
"Table of Contents": "Sisukorratabel",
|
||||
"This Page": "K\u00e4esolev leht",
|
||||
"Welcome! This is": "Tervitused! See on",
|
||||
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Sinu otsingule ei vastanud \u00fckski dokument. Palun veendu, et k\u00f5ik sisestatud s\u00f5nad on \u00f5igesti kirjutatud ja sa oled valikud piisaval hulgal kategooriaid.",
|
||||
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Sinu otsingule ei vastanud \u00fckski dokument. Palun veendu, et k\u00f5ik sisestatud s\u00f5nad on \u00f5igesti kirjutatud ja sa oled valinud piisavalt kategooriaid.",
|
||||
"all functions, classes, terms": "k\u00f5ik funktsioonid, klassid ja terminid",
|
||||
"can be huge": "v\u00f5ib olla v\u00e4ga suur",
|
||||
"last updated": "viimati uuendatud",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Eduki taula osoa",
|
||||
"Contents": "Edukiak",
|
||||
"Copyright": "Copyright",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s erabiliz sortutakoa.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Alboko barra luzatu",
|
||||
"Full index on one page": "Indize guztia orri batean",
|
||||
"General Index": "Indize orokorra",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,63 +1,63 @@
|
||||
Documentation.addTranslations({
|
||||
"locale": "fa",
|
||||
"messages": {
|
||||
"%(filename)s — %(docstitle)s": "",
|
||||
"© <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "",
|
||||
"© Copyright %(copyright)s.": "",
|
||||
", in ": "",
|
||||
"%(filename)s — %(docstitle)s": "%(filename)s — %(docstitle)s",
|
||||
"© <a href=\"%(path)s\">Copyright</a> %(copyright)s.": "© <a href=\"%(path)s\">\u062d\u0642 \u0646\u0634\u0631</a> %(copyright)s.",
|
||||
"© Copyright %(copyright)s.": "© \u062d\u0642 \u0646\u0634\u0631%(copyright)s.",
|
||||
", in ": "\u060c \u062f\u0631 ",
|
||||
"About these documents": "\u062f\u0631\u0628\u0627\u0631\u0647 \u0627\u06cc\u0646 \u0645\u0633\u062a\u0646\u062f\u0627\u062a",
|
||||
"Automatically generated list of changes in version %(version)s": "\u0644\u06cc\u0633\u062a \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0646\u0633\u062e\u0647 %(version)s",
|
||||
"C API changes": "C API \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a",
|
||||
"Changes in Version %(version)s — %(docstitle)s": "",
|
||||
"Collapse sidebar": "",
|
||||
"Changes in Version %(version)s — %(docstitle)s": "\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0646\u0633\u062e\u0647 %(version)s — %(docstitle)s",
|
||||
"Collapse sidebar": "\u062a\u0627 \u06a9\u0631\u062f\u0646 \u0646\u0648\u0627\u0631 \u06a9\u0646\u0627\u0631\u0647",
|
||||
"Complete Table of Contents": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0645\u0644 \u0645\u0637\u0627\u0644\u0628",
|
||||
"Contents": "",
|
||||
"Copyright": "\u06a9\u067e\u06cc \u0631\u0627\u06cc\u062a",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": ". <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0628\u0627",
|
||||
"Expand sidebar": "",
|
||||
"Contents": "\u0645\u062d\u062a\u0648\u0627 \u0647\u0627",
|
||||
"Copyright": "\u062d\u0642 \u0627\u0646\u062a\u0634\u0627\u0631",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "\u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0628\u0627<a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Expand sidebar": "\u06af\u0633\u062a\u0631\u0634 \u0646\u0648\u0627\u0631 \u06a9\u0646\u0627\u0631\u0647",
|
||||
"Full index on one page": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0627\u0645\u0644 \u062f\u0631 \u06cc\u06a9 \u0635\u0641\u062d\u0647",
|
||||
"General Index": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0644\u06cc",
|
||||
"Global Module Index": "\u0641\u0647\u0631\u0633\u062a \u06a9\u0644\u06cc \u0645\u0627\u0698\u0648\u0644 \u0647\u0627",
|
||||
"Go": "\u0628\u0631\u0648",
|
||||
"Go": "\u0631\u0641\u062a\u0646 \u0628\u0647",
|
||||
"Hide Search Matches": "\u0639\u062f\u0645 \u0646\u0645\u0627\u06cc\u0634 \u0646\u062a\u0627\u06cc\u062c \u06cc\u0627\u0641\u062a \u0634\u062f\u0647",
|
||||
"Index": "\u0641\u0647\u0631\u0633\u062a",
|
||||
"Index – %(key)s": "\u0641\u0647\u0631\u0633\u062a – %(key)s",
|
||||
"Index pages by letter": "\u0641\u0647\u0631\u0633\u062a \u0635\u0641\u062d\u0627\u062a \u0628\u0631 \u0627\u0633\u0627\u0633 \u062d\u0631\u0648\u0641",
|
||||
"Indices and tables:": "\u0627\u06cc\u0646\u062f\u06a9\u0633 \u0647\u0627 \u0648 \u062c\u062f\u0627\u0648\u0644:",
|
||||
"Last updated on %(last_updated)s.": ". %(last_updated)s \u0622\u062e\u0631\u06cc\u0646 \u0628\u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0631",
|
||||
"Indices and tables:": "\u0646\u0645\u0627\u06cc\u0647\u200c\u0647\u0627 \u0648 \u062c\u062f\u0648\u0644\u200c\u0647\u0627:",
|
||||
"Last updated on %(last_updated)s.": "\u0622\u062e\u0631\u06cc\u0646 \u0628\u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0631 %(last_updated)s .",
|
||||
"Library changes": "\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0627\u06cc\u06cc",
|
||||
"Navigation": "\u0646\u0627\u0648\u0628\u0631\u06cc",
|
||||
"Next topic": "\u0645\u0648\u0636\u0648\u0639 \u0628\u0639\u062f\u06cc",
|
||||
"Other changes": "\u062f\u06af\u0631 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a",
|
||||
"Overview": "\u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0645\u0627\u0644\u06cc",
|
||||
"Permalink to this definition": "\u0644\u06cc\u0646\u06a9 \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0639\u0631\u06cc\u0641",
|
||||
"Permalink to this headline": "\u0644\u06cc\u0646\u06a9 \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u0633\u0631 \u0645\u0642\u0627\u0644\u0647",
|
||||
"Please activate JavaScript to enable the search\n functionality.": "",
|
||||
"Preparing search...": "",
|
||||
"Permalink to this definition": "\u067e\u06cc\u0648\u0646\u062f \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0639\u0631\u06cc\u0641",
|
||||
"Permalink to this headline": "\u067e\u06cc\u0648\u0646\u062f \u062b\u0627\u0628\u062a \u0628\u0647 \u0627\u06cc\u0646 \u0633\u0631 \u0645\u0642\u0627\u0644\u0647",
|
||||
"Please activate JavaScript to enable the search\n functionality.": "\u0644\u0637\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u0641\u0639\u0651\u0627\u0644 \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0631\u06a9\u0631\u062f \u062c\u0633\u062a\u062c\u0648\n\u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0641\u0639\u0651\u0627\u0644 \u06a9\u0646\u06cc\u062f.",
|
||||
"Preparing search...": "\u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u062c\u0633\u062a \u0648 \u062c\u0648...",
|
||||
"Previous topic": "\u0645\u0648\u0636\u0648\u0639 \u0642\u0628\u0644\u06cc",
|
||||
"Quick search": "\u062c\u0633\u062a\u062c\u0648 \u0633\u0631\u06cc\u0639",
|
||||
"Search": "\u062c\u0633\u062a\u062c\u0648",
|
||||
"Search Page": "\u0635\u0641\u062d\u0647 \u062c\u0633\u062a\u062c\u0648",
|
||||
"Search Results": "\u0646\u062a\u0627\u06cc\u062c \u062c\u0633\u062a\u062c\u0648",
|
||||
"Search finished, found %s page(s) matching the search query.": "",
|
||||
"Search finished, found %s page(s) matching the search query.": "\u062c\u0633\u062a\u062c\u0648 \u067e\u0627\u06cc\u0627\u0646 \u06cc\u0627\u0641\u062a \u0648 %s\u0635\u0641\u062d\u0647 \u0646\u062a\u0627\u06cc\u062c \u0645\u0637\u0627\u0628\u0642 \u062c\u0633\u062a\u0627\u0631 \u067e\u06cc\u062f\u0627 \u0634\u062f\u0646.",
|
||||
"Search within %(docstitle)s": "\u062c\u0633\u062a\u062c\u0648 \u062f\u0631 %(docstitle)s",
|
||||
"Searching": "",
|
||||
"Searching for multiple words only shows matches that contain\n all words.": "",
|
||||
"Searching": "\u062f\u0631 \u062d\u0627\u0644 \u062c\u0633\u062a \u0648 \u062c\u0648",
|
||||
"Searching for multiple words only shows matches that contain\n all words.": "\u062f\u0631 \u062d\u0627\u0644 \u062c\u0633\u062a\u062c\u0648 \u0628\u0631\u0627\u06cc \u0686\u0646\u062f\u06cc\u0646 \u0648\u0627\u0698\u0647. \u0641\u0642\u0637 \u0648\u0627\u0698\u06af\u0627\u0646\u06cc \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0628\u0627\u0634\u062f:\n \u0647\u0645\u0647\u200c\u06cc \u06a9\u0644\u0645\u0647\u200c\u0647\u0627.",
|
||||
"Show Source": "\u0646\u0645\u0627\u06cc\u0634 \u0633\u0648\u0631\u0633",
|
||||
"Table of Contents": "",
|
||||
"Table of Contents": "\u0641\u0647\u0631\u0633\u062a \u0639\u0646\u0627\u0648\u06cc\u0646",
|
||||
"This Page": "\u0635\u0641\u062d\u0647 \u0641\u0639\u0644\u06cc",
|
||||
"Welcome! This is": "",
|
||||
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "",
|
||||
"Welcome! This is": "\u062e\u0648\u0634 \u0622\u0645\u062f\u06cc\u062f! \u0627\u06cc\u0646",
|
||||
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u062c\u0633\u062a\u062c\u0648\u06cc \u0634\u0645\u0627 \u0628\u0627 \u0647\u06cc\u0686 \u0633\u0646\u062f\u06cc \u0647\u0645 \u062e\u0648\u0627\u0646\u06cc \u0646\u062f\u0627\u0634\u062a. \u0644\u0637\u0641\u0627\u064b \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0647\u0645\u0647 \u06cc \u0648\u0627\u0698\u0647 \u0647\u0627 \u0627\u0645\u0644\u0627\u06cc \u062f\u0631\u0633\u062a\u06cc \u062f\u0627\u0631\u0646\u062f \u0648 \u062f\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u0647\u0627\u06cc \u06a9\u0627\u0641\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.",
|
||||
"all functions, classes, terms": "\u062a\u0645\u0627\u0645\u06cc \u062a\u0648\u0627\u0628\u0639 \u060c \u06a9\u0644\u0627\u0633 \u0647\u0627 \u060c \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a",
|
||||
"can be huge": "",
|
||||
"last updated": "",
|
||||
"can be huge": "\u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0633\u062a\u0631\u06af \u0628\u0627\u0634\u062f",
|
||||
"last updated": "\u0622\u062e\u0631\u06cc\u0646 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc",
|
||||
"lists all sections and subsections": "\u0641\u0647\u0631\u0633\u062a \u062a\u0645\u0627\u0645\u06cc \u0628\u062e\u0634 \u0647\u0627 \u0648 \u0632\u06cc\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u0647\u0627",
|
||||
"next chapter": "\u0641\u0635\u0644 \u0628\u0639\u062f\u06cc",
|
||||
"previous chapter": "\u0641\u0635\u0644 \u0642\u0628\u0644\u06cc",
|
||||
"quick access to all modules": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0633\u0631\u06cc\u0639 \u0628\u0647 \u062a\u0645\u0627\u0645\u06cc \u0645\u062a\u062f\u0647\u0627",
|
||||
"search": "\u062c\u0633\u062a\u062c\u0648",
|
||||
"search this documentation": "\u062c\u0633\u062a\u062c\u0648 \u062f\u0631 \u0627\u06cc\u0646 \u0627\u0633\u0646\u0627\u062f",
|
||||
"the documentation for": ""
|
||||
"the documentation for": "\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0628\u0631\u0627\u06cc"
|
||||
},
|
||||
"plural_expr": "(n > 1)"
|
||||
});
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "",
|
||||
"Contents": "",
|
||||
"Copyright": "",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "Hakemisto yhten\u00e4 luettelona",
|
||||
"General Index": "Yleinen sis\u00e4llysluettelo",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Table des mati\u00e8res compl\u00e8te",
|
||||
"Contents": "Contenu",
|
||||
"Copyright": "Copyright",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Cr\u00e9\u00e9 avec <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Agrandir la barre lat\u00e9rale",
|
||||
"Full index on one page": "Index complet sur une seule page",
|
||||
"General Index": "Index g\u00e9n\u00e9ral",
|
||||
@ -42,7 +42,7 @@ Documentation.addTranslations({
|
||||
"Search finished, found %s page(s) matching the search query.": "La recherche est finie, %s page(s) trouv\u00e9e(s) qui corresponde(nt) \u00e0 la recherche.",
|
||||
"Search within %(docstitle)s": "Recherchez dans %(docstitle)s",
|
||||
"Searching": "Recherche en cours",
|
||||
"Searching for multiple words only shows matches that contain\n all words.": "",
|
||||
"Searching for multiple words only shows matches that contain\n all words.": "Une recherche sur plusieurs mots ne retourne que les r\u00e9sultats contenant tous les mots.",
|
||||
"Show Source": "Montrer le code source",
|
||||
"Table of Contents": "Table des mati\u00e8res",
|
||||
"This Page": "Cette page",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "\u05ea\u05d5\u05db\u05df \u05e2\u05e0\u05d9\u05d9\u05e0\u05d9\u05dd \u05de\u05dc\u05d0",
|
||||
"Contents": "\u05ea\u05d5\u05db\u05df",
|
||||
"Copyright": "\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "\u05d4\u05e8\u05d7\u05d1 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
|
||||
"Full index on one page": "\u05d0\u05d9\u05e0\u05d3\u05e7\u05e1 \u05de\u05dc\u05d0 \u05d1\u05e2\u05de\u05d5\u05d3 \u05d0\u05d7\u05d3",
|
||||
"General Index": "",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "\u0935\u093f\u0938\u094d\u0924\u0943\u0924 \u0935\u093f\u0937\u092f-\u0938\u0942\u091a\u0940",
|
||||
"Contents": "\u0935\u093f\u0937\u092f \u0938\u093e\u092e\u093f\u0917\u094d\u0930\u0940",
|
||||
"Copyright": "\u0938\u0930\u094d\u0935\u093e\u0927\u093f\u0915\u093e\u0930",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s \u0938\u0947 \u0928\u093f\u0930\u094d\u092e\u093f\u0924.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "\u0915\u093f\u0928\u093e\u0930\u0947 \u0915\u093e \u0938\u094d\u0925\u093e\u0928 \u092c\u095d\u093e\u090f\u0902",
|
||||
"Full index on one page": "\u090f\u0915 \u092a\u0943\u0937\u094d\u0920 \u092a\u0930 \u092a\u0942\u0930\u0940 \u0905\u0928\u0941\u0915\u094d\u0930\u092e\u0923\u093f\u0915\u093e",
|
||||
"General Index": "\u0938\u093e\u092e\u093e\u0928\u094d\u092f \u0905\u0928\u0941\u0915\u094d\u0930\u092e\u093e\u0923\u093f\u0915\u093e",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "",
|
||||
"Contents": "",
|
||||
"Copyright": "",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "",
|
||||
"Full index on one page": "",
|
||||
"General Index": "",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Detaljni sadr\u017eaj",
|
||||
"Contents": "Sadr\u017eaj",
|
||||
"Copyright": "Sva prava zadr\u017eana",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Izra\u0111eno sa <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Poka\u017ei pomo\u0107nu traku",
|
||||
"Full index on one page": "Potpun indeks na jednoj stranici",
|
||||
"General Index": "Opceniti abecedni indeks",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Teljes tartalomjegyz\u00e9k",
|
||||
"Contents": "Tartalom",
|
||||
"Copyright": "Minden jog fenntartva",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s haszn\u00e1lat\u00e1val k\u00e9sz\u00fclt.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Oldals\u00e1v kinyit\u00e1sa",
|
||||
"Full index on one page": "Teljes t\u00e1rgymutat\u00f3 egy oldalon",
|
||||
"General Index": "\u00c1ltal\u00e1nos t\u00e1rgymutat\u00f3",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ Documentation.addTranslations({
|
||||
"Complete Table of Contents": "Daftar Isi Lengkap",
|
||||
"Contents": "Konten",
|
||||
"Copyright": "Hak Cipta",
|
||||
"Created using <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Dibuat menggunakan <a href=\"http://sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
|
||||
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
|
||||
"Expand sidebar": "Buka sidebar",
|
||||
"Full index on one page": "Index penuh dalam satu halaman",
|
||||
"General Index": "Indeks Umum",
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user