mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge branch '3.x' into 7964_tuple_in_signature
This commit is contained in:
commit
3096b71c1c
8
CHANGES
8
CHANGES
@ -34,14 +34,18 @@ Bugs fixed
|
|||||||
by string not ending with blank lines
|
by string not ending with blank lines
|
||||||
* #8142: autodoc: Wrong constructor signature for the class derived from
|
* #8142: autodoc: Wrong constructor signature for the class derived from
|
||||||
typing.Generic
|
typing.Generic
|
||||||
|
* #8157: autodoc: TypeError is raised when annotation has invalid __args__
|
||||||
* #7964: autodoc: Tuple in default value is wrongly rendered
|
* #7964: autodoc: Tuple in default value is wrongly rendered
|
||||||
* #8192: napoleon: description is disappeared when it contains inline literals
|
* #8192: napoleon: description is disappeared when it contains inline literals
|
||||||
* #8142: napoleon: Potential of regex denial of service in google style docs
|
* #8142: napoleon: Potential of regex denial of service in google style docs
|
||||||
* #8169: LaTeX: pxjahyper loaded even when latex_engine is not platex
|
* #8169: LaTeX: pxjahyper loaded even when latex_engine is not platex
|
||||||
* #8175: intersphinx: Potential of regex denial of service by broken inventory
|
* #8175: intersphinx: Potential of regex denial of service by broken inventory
|
||||||
|
* #8277: sphinx-build: missing and redundant spacing (and etc) for console
|
||||||
|
output on building
|
||||||
* #8093: The highlight warning has wrong location in some builders (LaTeX,
|
* #8093: The highlight warning has wrong location in some builders (LaTeX,
|
||||||
singlehtml and so on)
|
singlehtml and so on)
|
||||||
* #8239: Failed to refer a token in productionlist if it is indented
|
* #8239: Failed to refer a token in productionlist if it is indented
|
||||||
|
* #8268: linkcheck: Report HTTP errors when ``linkcheck_anchors`` is ``True``
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
--------
|
--------
|
||||||
@ -172,7 +176,7 @@ Bugs fixed
|
|||||||
contains a hyperlink target
|
contains a hyperlink target
|
||||||
* #7469: autosummary: "Module attributes" header is not translatable
|
* #7469: autosummary: "Module attributes" header is not translatable
|
||||||
* #7940: apidoc: An extra newline is generated at the end of the rst file if a
|
* #7940: apidoc: An extra newline is generated at the end of the rst file if a
|
||||||
module has submodules
|
module has submodules
|
||||||
* #4258: napoleon: decorated special methods are not shown
|
* #4258: napoleon: decorated special methods are not shown
|
||||||
* #7799: napoleon: parameters are not escaped for combined params in numpydoc
|
* #7799: napoleon: parameters are not escaped for combined params in numpydoc
|
||||||
* #7780: napoleon: multiple paramaters declaration in numpydoc was wrongly
|
* #7780: napoleon: multiple paramaters declaration in numpydoc was wrongly
|
||||||
@ -339,7 +343,7 @@ Features added
|
|||||||
* #7543: html theme: Add top and bottom margins to tables
|
* #7543: html theme: Add top and bottom margins to tables
|
||||||
* #7695: html theme: Add viewport meta tag for basic theme
|
* #7695: html theme: Add viewport meta tag for basic theme
|
||||||
* #7721: html theme: classic: default codetextcolor/codebgcolor doesn't override
|
* #7721: html theme: classic: default codetextcolor/codebgcolor doesn't override
|
||||||
Pygments
|
Pygments
|
||||||
* C and C++: allow semicolon in the end of declarations.
|
* C and C++: allow semicolon in the end of declarations.
|
||||||
* C++, parse parameterized noexcept specifiers.
|
* C++, parse parameterized noexcept specifiers.
|
||||||
* #7294: C++, parse expressions with user-defined literals.
|
* #7294: C++, parse expressions with user-defined literals.
|
||||||
|
2
doc/_themes/sphinx13/static/sphinx13.css
vendored
2
doc/_themes/sphinx13/static/sphinx13.css
vendored
@ -239,7 +239,7 @@ div.footer a {
|
|||||||
|
|
||||||
/* -- body styles ----------------------------------------------------------- */
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin: 0.8em 0 0.5em 0;
|
margin: 0.8em 0 0.5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -515,6 +515,44 @@ There are also config values that you can set:
|
|||||||
|
|
||||||
New option ``'description'`` is added.
|
New option ``'description'`` is added.
|
||||||
|
|
||||||
|
.. confval:: autodoc_type_aliases
|
||||||
|
|
||||||
|
A dictionary for users defined `type aliases`__ that maps a type name to the
|
||||||
|
full-qualified object name. It is used to keep type aliases not evaluated in
|
||||||
|
the document. Defaults to empty (``{}``).
|
||||||
|
|
||||||
|
The type aliases are only available if your program enables `Postponed
|
||||||
|
Evaluation of Annotations (PEP 563)`__ feature via ``from __future__ import
|
||||||
|
annotations``.
|
||||||
|
|
||||||
|
For example, there is code using a type alias::
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
AliasType = Union[List[Dict[Tuple[int, str], Set[int]]], Tuple[str, List[str]]]
|
||||||
|
|
||||||
|
def f() -> AliasType:
|
||||||
|
...
|
||||||
|
|
||||||
|
If ``autodoc_type_aliases`` is not set, autodoc will generate internal mark-up
|
||||||
|
from this code as following::
|
||||||
|
|
||||||
|
.. py:function:: f() -> Union[List[Dict[Tuple[int, str], Set[int]]], Tuple[str, List[str]]]
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
If you set ``autodoc_type_aliases`` as
|
||||||
|
``{'AliasType': 'your.module.TypeAlias'}``, it generates a following document
|
||||||
|
internally::
|
||||||
|
|
||||||
|
.. py:function:: f() -> your.module.AliasType:
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
.. __: https://www.python.org/dev/peps/pep-0563/
|
||||||
|
.. __: https://mypy.readthedocs.io/en/latest/kinds_of_types.html#type-aliases
|
||||||
|
.. versionadded:: 3.3
|
||||||
|
|
||||||
.. confval:: autodoc_warningiserror
|
.. confval:: autodoc_warningiserror
|
||||||
|
|
||||||
This value controls the behavior of :option:`sphinx-build -W` during
|
This value controls the behavior of :option:`sphinx-build -W` during
|
||||||
|
@ -51,7 +51,7 @@ should check:
|
|||||||
|
|
||||||
.. versionadded:: 1.1
|
.. versionadded:: 1.1
|
||||||
|
|
||||||
.. confval:: coverage_show_missing_items
|
.. confval:: coverage_show_missing_items
|
||||||
|
|
||||||
Print objects that are missing to standard output also.
|
Print objects that are missing to standard output also.
|
||||||
``False`` by default.
|
``False`` by default.
|
||||||
|
@ -171,7 +171,7 @@ Docker images for Sphinx are published on the `Docker Hub <https://hub.docker.co
|
|||||||
- `sphinxdoc/sphinx <https://hub.docker.com/repository/docker/sphinxdoc/sphinx>`_
|
- `sphinxdoc/sphinx <https://hub.docker.com/repository/docker/sphinxdoc/sphinx>`_
|
||||||
- `sphinxdoc/sphinx-latexpdf <https://hub.docker.com/repository/docker/sphinxdoc/sphinx-latexpdf>`_
|
- `sphinxdoc/sphinx-latexpdf <https://hub.docker.com/repository/docker/sphinxdoc/sphinx-latexpdf>`_
|
||||||
|
|
||||||
Former one is used for standard usage of Sphinx, and latter one is mainly used for PDF builds using LaTeX.
|
Former one is used for standard usage of Sphinx, and latter one is mainly used for PDF builds using LaTeX.
|
||||||
Please choose one for your purpose.
|
Please choose one for your purpose.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -665,7 +665,7 @@ __ http://pygments.org/docs/lexers
|
|||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
If you want to select only ``[second-section]`` of ini file like the
|
If you want to select only ``[second-section]`` of ini file like the
|
||||||
following, you can use ``:start-at: [second-section]`` and
|
following, you can use ``:start-at: [second-section]`` and
|
||||||
``:end-before: [third-section]``:
|
``:end-before: [third-section]``:
|
||||||
|
|
||||||
.. code-block:: ini
|
.. code-block:: ini
|
||||||
@ -692,7 +692,7 @@ __ http://pygments.org/docs/lexers
|
|||||||
# [initialize]
|
# [initialize]
|
||||||
app.start(":8000")
|
app.start(":8000")
|
||||||
# [initialize]
|
# [initialize]
|
||||||
|
|
||||||
|
|
||||||
When lines have been selected in any of the ways described above, the line
|
When lines have been selected in any of the ways described above, the line
|
||||||
numbers in ``emphasize-lines`` refer to those selected lines, counted
|
numbers in ``emphasize-lines`` refer to those selected lines, counted
|
||||||
|
@ -641,17 +641,17 @@ class StandaloneHTMLBuilder(Builder):
|
|||||||
def gen_additional_pages(self) -> None:
|
def gen_additional_pages(self) -> None:
|
||||||
# additional pages from conf.py
|
# additional pages from conf.py
|
||||||
for pagename, template in self.config.html_additional_pages.items():
|
for pagename, template in self.config.html_additional_pages.items():
|
||||||
logger.info(' ' + pagename, nonl=True)
|
logger.info(pagename + ' ', nonl=True)
|
||||||
self.handle_page(pagename, {}, template)
|
self.handle_page(pagename, {}, template)
|
||||||
|
|
||||||
# the search page
|
# the search page
|
||||||
if self.search:
|
if self.search:
|
||||||
logger.info(' search', nonl=True)
|
logger.info('search ', nonl=True)
|
||||||
self.handle_page('search', {}, 'search.html')
|
self.handle_page('search', {}, 'search.html')
|
||||||
|
|
||||||
# the opensearch xml file
|
# the opensearch xml file
|
||||||
if self.config.html_use_opensearch and self.search:
|
if self.config.html_use_opensearch and self.search:
|
||||||
logger.info(' opensearch', nonl=True)
|
logger.info('opensearch ', nonl=True)
|
||||||
fn = path.join(self.outdir, '_static', 'opensearch.xml')
|
fn = path.join(self.outdir, '_static', 'opensearch.xml')
|
||||||
self.handle_page('opensearch', {}, 'opensearch.xml', outfilename=fn)
|
self.handle_page('opensearch', {}, 'opensearch.xml', outfilename=fn)
|
||||||
|
|
||||||
@ -669,7 +669,7 @@ class StandaloneHTMLBuilder(Builder):
|
|||||||
'genindexcounts': indexcounts,
|
'genindexcounts': indexcounts,
|
||||||
'split_index': self.config.html_split_index,
|
'split_index': self.config.html_split_index,
|
||||||
}
|
}
|
||||||
logger.info(' genindex', nonl=True)
|
logger.info('genindex ', nonl=True)
|
||||||
|
|
||||||
if self.config.html_split_index:
|
if self.config.html_split_index:
|
||||||
self.handle_page('genindex', genindexcontext,
|
self.handle_page('genindex', genindexcontext,
|
||||||
@ -691,7 +691,7 @@ class StandaloneHTMLBuilder(Builder):
|
|||||||
'content': content,
|
'content': content,
|
||||||
'collapse_index': collapse,
|
'collapse_index': collapse,
|
||||||
}
|
}
|
||||||
logger.info(' ' + indexname, nonl=True)
|
logger.info(indexname + ' ', nonl=True)
|
||||||
self.handle_page(indexname, indexcontext, 'domainindex.html')
|
self.handle_page(indexname, indexcontext, 'domainindex.html')
|
||||||
|
|
||||||
def copy_image_files(self) -> None:
|
def copy_image_files(self) -> None:
|
||||||
@ -785,7 +785,7 @@ class StandaloneHTMLBuilder(Builder):
|
|||||||
|
|
||||||
def copy_static_files(self) -> None:
|
def copy_static_files(self) -> None:
|
||||||
try:
|
try:
|
||||||
with progress_message(__('copying static files... ')):
|
with progress_message(__('copying static files')):
|
||||||
ensuredir(path.join(self.outdir, '_static'))
|
ensuredir(path.join(self.outdir, '_static'))
|
||||||
|
|
||||||
# prepare context for templates
|
# prepare context for templates
|
||||||
|
@ -517,7 +517,7 @@ def validate_latex_theme_options(app: Sphinx, config: Config) -> None:
|
|||||||
config.latex_theme_options.pop(key)
|
config.latex_theme_options.pop(key)
|
||||||
|
|
||||||
|
|
||||||
def install_pakcages_for_ja(app: Sphinx) -> None:
|
def install_packages_for_ja(app: Sphinx) -> None:
|
||||||
"""Install packages for Japanese."""
|
"""Install packages for Japanese."""
|
||||||
if app.config.language == 'ja' and app.config.latex_engine in ('platex', 'uplatex'):
|
if app.config.language == 'ja' and app.config.latex_engine in ('platex', 'uplatex'):
|
||||||
app.add_latex_package('pxjahyper', after_hyperref=True)
|
app.add_latex_package('pxjahyper', after_hyperref=True)
|
||||||
@ -570,7 +570,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
|
|||||||
app.add_builder(LaTeXBuilder)
|
app.add_builder(LaTeXBuilder)
|
||||||
app.connect('config-inited', validate_config_values, priority=800)
|
app.connect('config-inited', validate_config_values, priority=800)
|
||||||
app.connect('config-inited', validate_latex_theme_options, priority=800)
|
app.connect('config-inited', validate_latex_theme_options, priority=800)
|
||||||
app.connect('builder-inited', install_pakcages_for_ja)
|
app.connect('builder-inited', install_packages_for_ja)
|
||||||
|
|
||||||
app.add_config_value('latex_engine', default_latex_engine, None,
|
app.add_config_value('latex_engine', default_latex_engine, None,
|
||||||
ENUM('pdflatex', 'xelatex', 'lualatex', 'platex', 'uplatex'))
|
ENUM('pdflatex', 'xelatex', 'lualatex', 'platex', 'uplatex'))
|
||||||
|
@ -166,6 +166,7 @@ class CheckExternalLinksBuilder(Builder):
|
|||||||
# Read the whole document and see if #anchor exists
|
# Read the whole document and see if #anchor exists
|
||||||
response = requests.get(req_url, stream=True, config=self.app.config,
|
response = requests.get(req_url, stream=True, config=self.app.config,
|
||||||
auth=auth_info, **kwargs)
|
auth=auth_info, **kwargs)
|
||||||
|
response.raise_for_status()
|
||||||
found = check_anchor(response, unquote(anchor))
|
found = check_anchor(response, unquote(anchor))
|
||||||
|
|
||||||
if not found:
|
if not found:
|
||||||
|
@ -1213,7 +1213,8 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
self.env.app.emit('autodoc-before-process-signature', self.object, False)
|
self.env.app.emit('autodoc-before-process-signature', self.object, False)
|
||||||
sig = inspect.signature(self.object, follow_wrapped=True)
|
sig = inspect.signature(self.object, follow_wrapped=True,
|
||||||
|
type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
args = stringify_signature(sig, **kwargs)
|
args = stringify_signature(sig, **kwargs)
|
||||||
except TypeError as exc:
|
except TypeError as exc:
|
||||||
logger.warning(__("Failed to get a function signature for %s: %s"),
|
logger.warning(__("Failed to get a function signature for %s: %s"),
|
||||||
@ -1262,7 +1263,9 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
|
|||||||
if overloaded:
|
if overloaded:
|
||||||
__globals__ = safe_getattr(self.object, '__globals__', {})
|
__globals__ = safe_getattr(self.object, '__globals__', {})
|
||||||
for overload in self.analyzer.overloads.get('.'.join(self.objpath)):
|
for overload in self.analyzer.overloads.get('.'.join(self.objpath)):
|
||||||
overload = evaluate_signature(overload, __globals__)
|
overload = evaluate_signature(overload, __globals__,
|
||||||
|
self.env.config.autodoc_type_aliases)
|
||||||
|
|
||||||
sig = stringify_signature(overload, **kwargs)
|
sig = stringify_signature(overload, **kwargs)
|
||||||
sigs.append(sig)
|
sigs.append(sig)
|
||||||
|
|
||||||
@ -1271,7 +1274,7 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
|
|||||||
def annotate_to_first_argument(self, func: Callable, typ: Type) -> None:
|
def annotate_to_first_argument(self, func: Callable, typ: Type) -> None:
|
||||||
"""Annotate type hint to the first argument of function if needed."""
|
"""Annotate type hint to the first argument of function if needed."""
|
||||||
try:
|
try:
|
||||||
sig = inspect.signature(func)
|
sig = inspect.signature(func, type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
except TypeError as exc:
|
except TypeError as exc:
|
||||||
logger.warning(__("Failed to get a function signature for %s: %s"),
|
logger.warning(__("Failed to get a function signature for %s: %s"),
|
||||||
self.fullname, exc)
|
self.fullname, exc)
|
||||||
@ -1392,7 +1395,8 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
|
|||||||
if call is not None:
|
if call is not None:
|
||||||
self.env.app.emit('autodoc-before-process-signature', call, True)
|
self.env.app.emit('autodoc-before-process-signature', call, True)
|
||||||
try:
|
try:
|
||||||
sig = inspect.signature(call, bound_method=True)
|
sig = inspect.signature(call, bound_method=True,
|
||||||
|
type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
return type(self.object), '__call__', sig
|
return type(self.object), '__call__', sig
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
@ -1407,7 +1411,8 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
|
|||||||
if new is not None:
|
if new is not None:
|
||||||
self.env.app.emit('autodoc-before-process-signature', new, True)
|
self.env.app.emit('autodoc-before-process-signature', new, True)
|
||||||
try:
|
try:
|
||||||
sig = inspect.signature(new, bound_method=True)
|
sig = inspect.signature(new, bound_method=True,
|
||||||
|
type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
return self.object, '__new__', sig
|
return self.object, '__new__', sig
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
@ -1417,7 +1422,8 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
|
|||||||
if init is not None:
|
if init is not None:
|
||||||
self.env.app.emit('autodoc-before-process-signature', init, True)
|
self.env.app.emit('autodoc-before-process-signature', init, True)
|
||||||
try:
|
try:
|
||||||
sig = inspect.signature(init, bound_method=True)
|
sig = inspect.signature(init, bound_method=True,
|
||||||
|
type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
return self.object, '__init__', sig
|
return self.object, '__init__', sig
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
@ -1428,7 +1434,8 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
|
|||||||
# the signature from, so just pass the object itself to our hook.
|
# the signature from, so just pass the object itself to our hook.
|
||||||
self.env.app.emit('autodoc-before-process-signature', self.object, False)
|
self.env.app.emit('autodoc-before-process-signature', self.object, False)
|
||||||
try:
|
try:
|
||||||
sig = inspect.signature(self.object, bound_method=False)
|
sig = inspect.signature(self.object, bound_method=False,
|
||||||
|
type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
return None, None, sig
|
return None, None, sig
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
@ -1475,7 +1482,8 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
|
|||||||
method = safe_getattr(self._signature_class, self._signature_method_name, None)
|
method = safe_getattr(self._signature_class, self._signature_method_name, None)
|
||||||
__globals__ = safe_getattr(method, '__globals__', {})
|
__globals__ = safe_getattr(method, '__globals__', {})
|
||||||
for overload in self.analyzer.overloads.get(qualname):
|
for overload in self.analyzer.overloads.get(qualname):
|
||||||
overload = evaluate_signature(overload, __globals__)
|
overload = evaluate_signature(overload, __globals__,
|
||||||
|
self.env.config.autodoc_type_aliases)
|
||||||
|
|
||||||
parameters = list(overload.parameters.values())
|
parameters = list(overload.parameters.values())
|
||||||
overload = overload.replace(parameters=parameters[1:],
|
overload = overload.replace(parameters=parameters[1:],
|
||||||
@ -1820,11 +1828,13 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
|
|||||||
else:
|
else:
|
||||||
if inspect.isstaticmethod(self.object, cls=self.parent, name=self.object_name):
|
if inspect.isstaticmethod(self.object, cls=self.parent, name=self.object_name):
|
||||||
self.env.app.emit('autodoc-before-process-signature', self.object, False)
|
self.env.app.emit('autodoc-before-process-signature', self.object, False)
|
||||||
sig = inspect.signature(self.object, bound_method=False)
|
sig = inspect.signature(self.object, bound_method=False,
|
||||||
|
type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
else:
|
else:
|
||||||
self.env.app.emit('autodoc-before-process-signature', self.object, True)
|
self.env.app.emit('autodoc-before-process-signature', self.object, True)
|
||||||
sig = inspect.signature(self.object, bound_method=True,
|
sig = inspect.signature(self.object, bound_method=True,
|
||||||
follow_wrapped=True)
|
follow_wrapped=True,
|
||||||
|
type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
args = stringify_signature(sig, **kwargs)
|
args = stringify_signature(sig, **kwargs)
|
||||||
except TypeError as exc:
|
except TypeError as exc:
|
||||||
logger.warning(__("Failed to get a method signature for %s: %s"),
|
logger.warning(__("Failed to get a method signature for %s: %s"),
|
||||||
@ -1884,7 +1894,9 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
|
|||||||
if overloaded:
|
if overloaded:
|
||||||
__globals__ = safe_getattr(self.object, '__globals__', {})
|
__globals__ = safe_getattr(self.object, '__globals__', {})
|
||||||
for overload in self.analyzer.overloads.get('.'.join(self.objpath)):
|
for overload in self.analyzer.overloads.get('.'.join(self.objpath)):
|
||||||
overload = evaluate_signature(overload, __globals__)
|
overload = evaluate_signature(overload, __globals__,
|
||||||
|
self.env.config.autodoc_type_aliases)
|
||||||
|
|
||||||
if not inspect.isstaticmethod(self.object, cls=self.parent,
|
if not inspect.isstaticmethod(self.object, cls=self.parent,
|
||||||
name=self.object_name):
|
name=self.object_name):
|
||||||
parameters = list(overload.parameters.values())
|
parameters = list(overload.parameters.values())
|
||||||
@ -1897,7 +1909,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
|
|||||||
def annotate_to_first_argument(self, func: Callable, typ: Type) -> None:
|
def annotate_to_first_argument(self, func: Callable, typ: Type) -> None:
|
||||||
"""Annotate type hint to the first argument of function if needed."""
|
"""Annotate type hint to the first argument of function if needed."""
|
||||||
try:
|
try:
|
||||||
sig = inspect.signature(func)
|
sig = inspect.signature(func, type_aliases=self.env.config.autodoc_type_aliases)
|
||||||
except TypeError as exc:
|
except TypeError as exc:
|
||||||
logger.warning(__("Failed to get a method signature for %s: %s"),
|
logger.warning(__("Failed to get a method signature for %s: %s"),
|
||||||
self.fullname, exc)
|
self.fullname, exc)
|
||||||
@ -2237,6 +2249,7 @@ def setup(app: Sphinx) -> Dict[str, Any]:
|
|||||||
app.add_config_value('autodoc_mock_imports', [], True)
|
app.add_config_value('autodoc_mock_imports', [], True)
|
||||||
app.add_config_value('autodoc_typehints', "signature", True,
|
app.add_config_value('autodoc_typehints', "signature", True,
|
||||||
ENUM("signature", "description", "none"))
|
ENUM("signature", "description", "none"))
|
||||||
|
app.add_config_value('autodoc_type_aliases', {}, True)
|
||||||
app.add_config_value('autodoc_warningiserror', True, True)
|
app.add_config_value('autodoc_warningiserror', True, True)
|
||||||
app.add_config_value('autodoc_inherit_docstrings', True, True)
|
app.add_config_value('autodoc_inherit_docstrings', True, True)
|
||||||
app.add_event('autodoc-before-process-signature')
|
app.add_event('autodoc-before-process-signature')
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Mohammed Shannaq <sam@ms.per.jo>, 2018
|
# Mohammed Shannaq <sam@ms.per.jo>, 2018
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Julien Malard <julien.malard@mail.mcgill.ca>, 2019
|
# Julien Malard <julien.malard@mail.mcgill.ca>, 2019
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2008
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2008
|
||||||
# Vilibald W. <vilibald.wanca@gmail.com>, 2014-2015
|
# Vilibald W. <vilibald.wanca@gmail.com>, 2014-2015
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016
|
||||||
# Geraint Palmer <palmer.geraint@googlemail.com>, 2016
|
# Geraint Palmer <palmer.geraint@googlemail.com>, 2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# askhl <asklarsen@gmail.com>, 2010-2011
|
# askhl <asklarsen@gmail.com>, 2010-2011
|
||||||
# Jakob Lykke Andersen <jakob@caput.dk>, 2014,2016
|
# Jakob Lykke Andersen <jakob@caput.dk>, 2014,2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Georg Brandl <g.brandl@gmx.net>, 2013-2015
|
# Georg Brandl <g.brandl@gmx.net>, 2013-2015
|
||||||
# Jean-François B. <jfbu@free.fr>, 2018
|
# Jean-François B. <jfbu@free.fr>, 2018
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Stelios Vitalis <liberostelios@gmail.com>, 2015
|
# Stelios Vitalis <liberostelios@gmail.com>, 2015
|
||||||
# tzoumakers tzoumakers <tzoumakersx@gmail.com>, 2019
|
# tzoumakers tzoumakers <tzoumakersx@gmail.com>, 2019
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Dinu Gherman <gherman@darwin.in-berlin.de>, 2014
|
# Dinu Gherman <gherman@darwin.in-berlin.de>, 2014
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Edward Villegas-Pulgarin <cosmoscalibur@gmail.com>, 2018
|
# Edward Villegas-Pulgarin <cosmoscalibur@gmail.com>, 2018
|
||||||
# Edward Villegas-Pulgarin <cosmoscalibur@gmail.com>, 2019
|
# Edward Villegas-Pulgarin <cosmoscalibur@gmail.com>, 2019
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Aivar Annamaa <aivar.annamaa@gmail.com>, 2011
|
# Aivar Annamaa <aivar.annamaa@gmail.com>, 2011
|
||||||
# Ivar Smolin <okul at linux ee>, 2012
|
# Ivar Smolin <okul at linux ee>, 2012
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Ales Zabala Alava <shagi@gisa-elkartea.org>, 2011
|
# Ales Zabala Alava <shagi@gisa-elkartea.org>, 2011
|
||||||
# Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2018
|
# Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2018
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2017
|
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2017
|
||||||
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2013,2015
|
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2013,2015
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Ajay Singh <ajaysajay@gmail.com>, 2019
|
# Ajay Singh <ajaysajay@gmail.com>, 2019
|
||||||
# Purnank H. Ghumalia <me@purnank.in>, 2015-2016
|
# Purnank H. Ghumalia <me@purnank.in>, 2015-2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Mario Šarić, 2015-2020
|
# Mario Šarić, 2015-2020
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
||||||
# Molnár Dénes <denes.molnar2@stud.uni-corvinus.hu>, 2017
|
# Molnár Dénes <denes.molnar2@stud.uni-corvinus.hu>, 2017
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Arif Budiman <arifpedia@gmail.com>, 2016-2017
|
# Arif Budiman <arifpedia@gmail.com>, 2016-2017
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Denis Cappellin <denis@cappell.in>, 2018
|
# Denis Cappellin <denis@cappell.in>, 2018
|
||||||
# Paolo Cavallini <cavallini@faunalia.it>, 2013-2017
|
# Paolo Cavallini <cavallini@faunalia.it>, 2013-2017
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# shirou - しろう <shirou.faw@gmail.com>, 2013
|
# shirou - しろう <shirou.faw@gmail.com>, 2013
|
||||||
# Akitoshi Ohta <fire.kuma8@gmail.com>, 2011
|
# Akitoshi Ohta <fire.kuma8@gmail.com>, 2011
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Minho Ryang <minhoryang@gmail.com>, 2019
|
# Minho Ryang <minhoryang@gmail.com>, 2019
|
||||||
# YT H <dev@theYT.net>, 2019
|
# YT H <dev@theYT.net>, 2019
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# DALIUS DOBRAVOLSKAS <DALIUS@SANDBOX.LT>, 2010
|
# DALIUS DOBRAVOLSKAS <DALIUS@SANDBOX.LT>, 2010
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Vasil Vangelovski <vvangelovski@gmail.com>, 2013
|
# Vasil Vangelovski <vvangelovski@gmail.com>, 2013
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011
|
||||||
# Takeshi KOMIYA <i.tkomiya@gmail.com>, 2016
|
# Takeshi KOMIYA <i.tkomiya@gmail.com>, 2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Bram Geron, 2017
|
# Bram Geron, 2017
|
||||||
# brechtm, 2016
|
# brechtm, 2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# m_aciek <maciej.olko@gmail.com>, 2017-2020
|
# m_aciek <maciej.olko@gmail.com>, 2017-2020
|
||||||
# Michael Gielda <michal.gielda@gmail.com>, 2014
|
# Michael Gielda <michal.gielda@gmail.com>, 2014
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Claudio Rogerio Carvalho Filho <excriptbrasil@gmail.com>, 2016
|
# Claudio Rogerio Carvalho Filho <excriptbrasil@gmail.com>, 2016
|
||||||
# FIRST AUTHOR <roger.demetrescu@gmail.com>, 2008
|
# FIRST AUTHOR <roger.demetrescu@gmail.com>, 2008
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Pedro Algarvio <pedro@algarvio.me>, 2013
|
# Pedro Algarvio <pedro@algarvio.me>, 2013
|
||||||
# Takeshi KOMIYA <i.tkomiya@gmail.com>, 2016
|
# Takeshi KOMIYA <i.tkomiya@gmail.com>, 2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Razvan Stefanescu <razvan.stefanescu@gmail.com>, 2015-2017
|
# Razvan Stefanescu <razvan.stefanescu@gmail.com>, 2015-2017
|
||||||
# Takeshi KOMIYA <i.tkomiya@gmail.com>, 2016
|
# Takeshi KOMIYA <i.tkomiya@gmail.com>, 2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Alex Salikov <Salikvo57@gmail.com>, 2019
|
# Alex Salikov <Salikvo57@gmail.com>, 2019
|
||||||
# Dmitry Shachnev <mitya57@gmail.com>, 2013
|
# Dmitry Shachnev <mitya57@gmail.com>, 2013
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# callkalpa <callkalpa@gmail.com>, 2013
|
# callkalpa <callkalpa@gmail.com>, 2013
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2008
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2008
|
||||||
# Slavko <linux@slavino.sk>, 2013-2019
|
# Slavko <linux@slavino.sk>, 2013-2019
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Risto Pejasinovic <risto.pejasinovic@gmail.com>, 2019
|
# Risto Pejasinovic <risto.pejasinovic@gmail.com>, 2019
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Julien Malard <julien.malard@mail.mcgill.ca>, 2019
|
# Julien Malard <julien.malard@mail.mcgill.ca>, 2019
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# BouRock, 2020
|
# BouRock, 2020
|
||||||
# Fırat Özgül <ozgulfirat@gmail.com>, 2013-2016
|
# Fırat Özgül <ozgulfirat@gmail.com>, 2013-2016
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Petro Sasnyk <petro@sasnyk.name>, 2009
|
# Petro Sasnyk <petro@sasnyk.name>, 2009
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Hoat Le Van <hoatlevan@gmail.com>, 2014
|
# Hoat Le Van <hoatlevan@gmail.com>, 2014
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Yinian Chin <yinian1992@live.com>, 2015,2017-2018
|
# Yinian Chin <yinian1992@live.com>, 2015,2017-2018
|
||||||
# Hsiaoming Yang <me@lepture.com>, 2018
|
# Hsiaoming Yang <me@lepture.com>, 2018
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Translations template for Sphinx.
|
# Translations template for Sphinx.
|
||||||
# Copyright (C) 2020 ORGANIZATION
|
# Copyright (C) 2020 ORGANIZATION
|
||||||
# This file is distributed under the same license as the Sphinx project.
|
# This file is distributed under the same license as the Sphinx project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Adrian Liaw <adrianliaw2000@gmail.com>, 2018
|
# Adrian Liaw <adrianliaw2000@gmail.com>, 2018
|
||||||
# Fred Lin <gasolin@gmail.com>, 2008
|
# Fred Lin <gasolin@gmail.com>, 2008
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -143,7 +143,7 @@ JSX.resetProfileResults = function () {
|
|||||||
return $__jsx_profiler.resetResults();
|
return $__jsx_profiler.resetResults();
|
||||||
};
|
};
|
||||||
JSX.DEBUG = false;
|
JSX.DEBUG = false;
|
||||||
var GeneratorFunction$0 =
|
var GeneratorFunction$0 =
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')();
|
||||||
@ -151,7 +151,7 @@ var GeneratorFunction$0 =
|
|||||||
return function GeneratorFunction () {};
|
return function GeneratorFunction () {};
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
var __jsx_generator_object$0 =
|
var __jsx_generator_object$0 =
|
||||||
(function () {
|
(function () {
|
||||||
function __jsx_generator_object() {
|
function __jsx_generator_object() {
|
||||||
this.__next = 0;
|
this.__next = 0;
|
||||||
|
@ -1823,7 +1823,7 @@
|
|||||||
% fix a space-gobbling issue due to LaTeX's original \do@noligs
|
% fix a space-gobbling issue due to LaTeX's original \do@noligs
|
||||||
% TODO: using \@noligs as patched by upquote.sty is now unneeded because
|
% TODO: using \@noligs as patched by upquote.sty is now unneeded because
|
||||||
% either ` and ' are escaped (non-unicode engines) or they don't build
|
% either ` and ' are escaped (non-unicode engines) or they don't build
|
||||||
% ligatures (unicode engines). Thus remove this and unify handling of `, <, >,
|
% ligatures (unicode engines). Thus remove this and unify handling of `, <, >,
|
||||||
% ' and - with the characters . , ; ? ! / as handled via
|
% ' and - with the characters . , ; ? ! / as handled via
|
||||||
% \sphinxbreaksviaactive.
|
% \sphinxbreaksviaactive.
|
||||||
% Hence \sphinx@do@noligs will be removed, or rather replaced with code
|
% Hence \sphinx@do@noligs will be removed, or rather replaced with code
|
||||||
@ -1905,7 +1905,7 @@
|
|||||||
% Special characters
|
% Special characters
|
||||||
%
|
%
|
||||||
% This definition prevents en-dash and em-dash TeX ligatures.
|
% This definition prevents en-dash and em-dash TeX ligatures.
|
||||||
%
|
%
|
||||||
% It inserts a potential breakpoint after the hyphen. This is to keep in sync
|
% It inserts a potential breakpoint after the hyphen. This is to keep in sync
|
||||||
% with behavior in code-blocks, parsed and inline literals. For a breakpoint
|
% with behavior in code-blocks, parsed and inline literals. For a breakpoint
|
||||||
% before the hyphen use \leavevmode\kern\z@- (within \makeatletter/\makeatother)
|
% before the hyphen use \leavevmode\kern\z@- (within \makeatletter/\makeatother)
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
% https://tex.stackexchange.com/a/460325/
|
% https://tex.stackexchange.com/a/460325/
|
||||||
% 159 Cyrillic glyphs as available in X2 TeX 8bit font encoding
|
% 159 Cyrillic glyphs as available in X2 TeX 8bit font encoding
|
||||||
% This assumes inputenc loaded with utf8 option, or LaTeX release
|
% This assumes inputenc loaded with utf8 option, or LaTeX release
|
||||||
% as recent as 2018/04/01 which does it automatically.
|
% as recent as 2018/04/01 which does it automatically.
|
||||||
\@tfor\next:=%
|
\@tfor\next:=%
|
||||||
{Ё}{Ђ}{Є}{Ѕ}{І}{Ј}{Љ}{Њ}{Ћ}{Ў}{Џ}{А}{Б}{В}{Г}{Д}{Е}{Ж}{З}{И}{Й}%
|
{Ё}{Ђ}{Є}{Ѕ}{І}{Ј}{Љ}{Њ}{Ћ}{Ў}{Џ}{А}{Б}{В}{Г}{Д}{Е}{Ж}{З}{И}{Й}%
|
||||||
{К}{Л}{М}{Н}{О}{П}{Р}{С}{Т}{У}{Ф}{Х}{Ц}{Ч}{Ш}{Щ}{Ъ}{Ы}{Ь}{Э}{Ю}%
|
{К}{Л}{М}{Н}{О}{П}{Р}{С}{Т}{У}{Ф}{Х}{Ц}{Ч}{Ш}{Щ}{Ъ}{Ы}{Ь}{Э}{Ю}%
|
||||||
|
@ -76,7 +76,7 @@
|
|||||||
\endgroup
|
\endgroup
|
||||||
\noindent\rule{\textwidth}{1pt}\par
|
\noindent\rule{\textwidth}{1pt}\par
|
||||||
\vspace{12pt}%
|
\vspace{12pt}%
|
||||||
}
|
}
|
||||||
\newcommand\sphinxtableofcontentshook{}
|
\newcommand\sphinxtableofcontentshook{}
|
||||||
\pagenumbering{arabic}
|
\pagenumbering{arabic}
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@import url("basic.css");
|
@import url("basic.css");
|
||||||
|
|
||||||
/* -- page layout ----------------------------------------------------------- */
|
/* -- page layout ----------------------------------------------------------- */
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: Arial, sans-serif;
|
font-family: Arial, sans-serif;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
@ -34,18 +34,18 @@ div.bodywrapper {
|
|||||||
hr {
|
hr {
|
||||||
border: 1px solid #B1B4B6;
|
border: 1px solid #B1B4B6;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.document {
|
div.document {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body {
|
div.body {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
color: #3E4349;
|
color: #3E4349;
|
||||||
padding: 0 30px 30px 30px;
|
padding: 0 30px 30px 30px;
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.footer {
|
div.footer {
|
||||||
color: #555;
|
color: #555;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -53,12 +53,12 @@ div.footer {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 75%;
|
font-size: 75%;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.footer a {
|
div.footer a {
|
||||||
color: #444;
|
color: #444;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.related {
|
div.related {
|
||||||
background-color: #6BA81E;
|
background-color: #6BA81E;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
@ -66,11 +66,11 @@ div.related {
|
|||||||
text-shadow: 0px 1px 0 #444;
|
text-shadow: 0px 1px 0 #444;
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.related a {
|
div.related a {
|
||||||
color: #E2F3CC;
|
color: #E2F3CC;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar {
|
div.sphinxsidebar {
|
||||||
font-size: 0.75em;
|
font-size: 0.75em;
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
@ -79,7 +79,7 @@ div.sphinxsidebar {
|
|||||||
div.sphinxsidebarwrapper{
|
div.sphinxsidebarwrapper{
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3,
|
div.sphinxsidebar h3,
|
||||||
div.sphinxsidebar h4 {
|
div.sphinxsidebar h4 {
|
||||||
font-family: Arial, sans-serif;
|
font-family: Arial, sans-serif;
|
||||||
@ -95,30 +95,30 @@ div.sphinxsidebar h4 {
|
|||||||
div.sphinxsidebar h4{
|
div.sphinxsidebar h4{
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3 a {
|
div.sphinxsidebar h3 a {
|
||||||
color: #444;
|
color: #444;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.sphinxsidebar p {
|
div.sphinxsidebar p {
|
||||||
color: #888;
|
color: #888;
|
||||||
padding: 5px 20px;
|
padding: 5px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar p.topless {
|
div.sphinxsidebar p.topless {
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar ul {
|
div.sphinxsidebar ul {
|
||||||
margin: 10px 20px;
|
margin: 10px 20px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar a {
|
div.sphinxsidebar a {
|
||||||
color: #444;
|
color: #444;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar input {
|
div.sphinxsidebar input {
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
@ -131,17 +131,17 @@ div.sphinxsidebar .searchformwrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -- body styles ----------------------------------------------------------- */
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: #005B81;
|
color: #005B81;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
color: #E32E00;
|
color: #E32E00;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body h1,
|
div.body h1,
|
||||||
div.body h2,
|
div.body h2,
|
||||||
div.body h3,
|
div.body h3,
|
||||||
@ -156,30 +156,30 @@ div.body h6 {
|
|||||||
padding: 5px 0 5px 10px;
|
padding: 5px 0 5px 10px;
|
||||||
text-shadow: 0px 1px 0 white
|
text-shadow: 0px 1px 0 white
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
|
div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
|
||||||
div.body h2 { font-size: 150%; background-color: #C8D5E3; }
|
div.body h2 { font-size: 150%; background-color: #C8D5E3; }
|
||||||
div.body h3 { font-size: 120%; background-color: #D8DEE3; }
|
div.body h3 { font-size: 120%; background-color: #D8DEE3; }
|
||||||
div.body h4 { font-size: 110%; background-color: #D8DEE3; }
|
div.body h4 { font-size: 110%; background-color: #D8DEE3; }
|
||||||
div.body h5 { font-size: 100%; background-color: #D8DEE3; }
|
div.body h5 { font-size: 100%; background-color: #D8DEE3; }
|
||||||
div.body h6 { font-size: 100%; background-color: #D8DEE3; }
|
div.body h6 { font-size: 100%; background-color: #D8DEE3; }
|
||||||
|
|
||||||
a.headerlink {
|
a.headerlink {
|
||||||
color: #c60f0f;
|
color: #c60f0f;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
padding: 0 4px 0 4px;
|
padding: 0 4px 0 4px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.headerlink:hover {
|
a.headerlink:hover {
|
||||||
background-color: #c60f0f;
|
background-color: #c60f0f;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body p, div.body dd, div.body li {
|
div.body p, div.body dd, div.body li {
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition p.admonition-title + p {
|
div.admonition p.admonition-title + p {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
@ -188,29 +188,29 @@ div.note {
|
|||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.seealso {
|
div.seealso {
|
||||||
background-color: #ffc;
|
background-color: #ffc;
|
||||||
border: 1px solid #ff6;
|
border: 1px solid #ff6;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.topic {
|
div.topic {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.warning {
|
div.warning {
|
||||||
background-color: #ffe4e4;
|
background-color: #ffe4e4;
|
||||||
border: 1px solid #f66;
|
border: 1px solid #f66;
|
||||||
}
|
}
|
||||||
|
|
||||||
p.admonition-title {
|
p.admonition-title {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
p.admonition-title:after {
|
p.admonition-title:after {
|
||||||
content: ":";
|
content: ":";
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
line-height: 1.2em;
|
line-height: 1.2em;
|
||||||
@ -220,7 +220,7 @@ pre {
|
|||||||
-webkit-box-shadow: 1px 1px 1px #d8d8d8;
|
-webkit-box-shadow: 1px 1px 1px #d8d8d8;
|
||||||
-moz-box-shadow: 1px 1px 1px #d8d8d8;
|
-moz-box-shadow: 1px 1px 1px #d8d8d8;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
background-color: #ecf0f3;
|
background-color: #ecf0f3;
|
||||||
color: #222;
|
color: #222;
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
* :license: BSD, see LICENSE for details.
|
* :license: BSD, see LICENSE for details.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@import url("basic.css");
|
@import url("basic.css");
|
||||||
|
|
||||||
/* -- page layout ----------------------------------------------------------- */
|
/* -- page layout ----------------------------------------------------------- */
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: "Nobile", sans-serif;
|
font-family: "Nobile", sans-serif;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
@ -34,7 +34,7 @@ div.bodywrapper {
|
|||||||
hr {
|
hr {
|
||||||
border: 1px solid #B1B4B6;
|
border: 1px solid #B1B4B6;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.document {
|
div.document {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
}
|
}
|
||||||
@ -59,7 +59,7 @@ div.body {
|
|||||||
border-right-style: none;
|
border-right-style: none;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.footer {
|
div.footer {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -69,7 +69,7 @@ div.footer {
|
|||||||
background: transparent;
|
background: transparent;
|
||||||
clear:both;
|
clear:both;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.footer a {
|
div.footer a {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@ -79,14 +79,14 @@ div.footer a:hover {
|
|||||||
color: #e88f00;
|
color: #e88f00;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.related {
|
div.related {
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
color: #373839;
|
color: #373839;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.related a {
|
div.related a {
|
||||||
color: #1b61d6;
|
color: #1b61d6;
|
||||||
}
|
}
|
||||||
@ -94,7 +94,7 @@ div.related a {
|
|||||||
div.related ul {
|
div.related ul {
|
||||||
padding-left: calc({{ theme_sidebarwidth|todim }} + 10px);
|
padding-left: calc({{ theme_sidebarwidth|todim }} + 10px);
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar {
|
div.sphinxsidebar {
|
||||||
font-size: 0.75em;
|
font-size: 0.75em;
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
@ -103,7 +103,7 @@ div.sphinxsidebar {
|
|||||||
div.sphinxsidebarwrapper{
|
div.sphinxsidebarwrapper{
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3,
|
div.sphinxsidebar h3,
|
||||||
div.sphinxsidebar h4 {
|
div.sphinxsidebar h4 {
|
||||||
font-family: "Neuton", sans-serif;
|
font-family: "Neuton", sans-serif;
|
||||||
@ -118,30 +118,30 @@ div.sphinxsidebar h4 {
|
|||||||
div.sphinxsidebar h4{
|
div.sphinxsidebar h4{
|
||||||
font-size: 1.3em;
|
font-size: 1.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar h3 a {
|
div.sphinxsidebar h3 a {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div.sphinxsidebar p {
|
div.sphinxsidebar p {
|
||||||
color: #888;
|
color: #888;
|
||||||
padding: 5px 20px;
|
padding: 5px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar p.topless {
|
div.sphinxsidebar p.topless {
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar ul {
|
div.sphinxsidebar ul {
|
||||||
margin: 10px 20px;
|
margin: 10px 20px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
color: #373839;
|
color: #373839;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar a {
|
div.sphinxsidebar a {
|
||||||
color: #444;
|
color: #444;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.sphinxsidebar input {
|
div.sphinxsidebar input {
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
@ -171,16 +171,16 @@ p.sidebar-title {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -- body styles ----------------------------------------------------------- */
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
a, a .pre {
|
a, a .pre {
|
||||||
color: #1b61d6;
|
color: #1b61d6;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover, a:hover .pre {
|
a:hover, a:hover .pre {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body h1,
|
div.body h1,
|
||||||
div.body h2,
|
div.body h2,
|
||||||
div.body h3,
|
div.body h3,
|
||||||
@ -194,29 +194,29 @@ div.body h6 {
|
|||||||
margin: 30px 0px 10px 0px;
|
margin: 30px 0px 10px 0px;
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
|
div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
|
||||||
div.body h2 { font-size: 150%; background-color: #ffffff; }
|
div.body h2 { font-size: 150%; background-color: #ffffff; }
|
||||||
div.body h3 { font-size: 120%; background-color: #ffffff; }
|
div.body h3 { font-size: 120%; background-color: #ffffff; }
|
||||||
div.body h4 { font-size: 110%; background-color: #ffffff; }
|
div.body h4 { font-size: 110%; background-color: #ffffff; }
|
||||||
div.body h5 { font-size: 100%; background-color: #ffffff; }
|
div.body h5 { font-size: 100%; background-color: #ffffff; }
|
||||||
div.body h6 { font-size: 100%; background-color: #ffffff; }
|
div.body h6 { font-size: 100%; background-color: #ffffff; }
|
||||||
|
|
||||||
a.headerlink {
|
a.headerlink {
|
||||||
color: #1b61d6;
|
color: #1b61d6;
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
padding: 0 4px 0 4px;
|
padding: 0 4px 0 4px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.headerlink:hover {
|
a.headerlink:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.body p, div.body dd, div.body li {
|
div.body p, div.body dd, div.body li {
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.admonition p.admonition-title + p {
|
div.admonition p.admonition-title + p {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
@ -236,7 +236,7 @@ div.note {
|
|||||||
padding: 10px 20px 10px 60px;
|
padding: 10px 20px 10px 60px;
|
||||||
background: #e1ecfe url(dialog-note.png) no-repeat 10px 8px;
|
background: #e1ecfe url(dialog-note.png) no-repeat 10px 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.seealso {
|
div.seealso {
|
||||||
background: #fff6bf url(dialog-seealso.png) no-repeat 10px 8px;
|
background: #fff6bf url(dialog-seealso.png) no-repeat 10px 8px;
|
||||||
border: 2px solid #ffd324;
|
border: 2px solid #ffd324;
|
||||||
@ -244,7 +244,7 @@ div.seealso {
|
|||||||
border-right-style: none;
|
border-right-style: none;
|
||||||
padding: 10px 20px 10px 60px;
|
padding: 10px 20px 10px 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.topic {
|
div.topic {
|
||||||
background: #eeeeee;
|
background: #eeeeee;
|
||||||
border: 2px solid #C6C9CB;
|
border: 2px solid #C6C9CB;
|
||||||
@ -252,7 +252,7 @@ div.topic {
|
|||||||
border-right-style: none;
|
border-right-style: none;
|
||||||
border-left-style: none;
|
border-left-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.warning {
|
div.warning {
|
||||||
background: #fbe3e4 url(dialog-warning.png) no-repeat 10px 8px;
|
background: #fbe3e4 url(dialog-warning.png) no-repeat 10px 8px;
|
||||||
border: 2px solid #fbc2c4;
|
border: 2px solid #fbc2c4;
|
||||||
@ -268,18 +268,18 @@ div.admonition-todo {
|
|||||||
border-left-style: none;
|
border-left-style: none;
|
||||||
padding: 10px 20px 10px 60px;
|
padding: 10px 20px 10px 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.note p.admonition-title,
|
div.note p.admonition-title,
|
||||||
div.warning p.admonition-title,
|
div.warning p.admonition-title,
|
||||||
div.seealso p.admonition-title,
|
div.seealso p.admonition-title,
|
||||||
div.admonition-todo p.admonition-title {
|
div.admonition-todo p.admonition-title {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
p.admonition-title:after {
|
p.admonition-title:after {
|
||||||
content: ":";
|
content: ":";
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
line-height: 1.2em;
|
line-height: 1.2em;
|
||||||
@ -289,7 +289,7 @@ pre {
|
|||||||
border-right-style: none;
|
border-right-style: none;
|
||||||
border-left-style: none;
|
border-left-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: #222;
|
color: #222;
|
||||||
|
@ -138,7 +138,7 @@ div.footer a {
|
|||||||
|
|
||||||
/* -- body styles ----------------------------------------------------------- */
|
/* -- body styles ----------------------------------------------------------- */
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin: 0.8em 0 0.5em 0;
|
margin: 0.8em 0 0.5em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -439,8 +439,8 @@ def _should_unwrap(subject: Callable) -> bool:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def signature(subject: Callable, bound_method: bool = False, follow_wrapped: bool = False
|
def signature(subject: Callable, bound_method: bool = False, follow_wrapped: bool = False,
|
||||||
) -> inspect.Signature:
|
type_aliases: Dict = {}) -> inspect.Signature:
|
||||||
"""Return a Signature object for the given *subject*.
|
"""Return a Signature object for the given *subject*.
|
||||||
|
|
||||||
:param bound_method: Specify *subject* is a bound method or not
|
:param bound_method: Specify *subject* is a bound method or not
|
||||||
@ -470,7 +470,7 @@ def signature(subject: Callable, bound_method: bool = False, follow_wrapped: boo
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
# Update unresolved annotations using ``get_type_hints()``.
|
# Update unresolved annotations using ``get_type_hints()``.
|
||||||
annotations = typing.get_type_hints(subject)
|
annotations = typing.get_type_hints(subject, None, type_aliases)
|
||||||
for i, param in enumerate(parameters):
|
for i, param in enumerate(parameters):
|
||||||
if isinstance(param.annotation, str) and param.name in annotations:
|
if isinstance(param.annotation, str) and param.name in annotations:
|
||||||
parameters[i] = param.replace(annotation=annotations[param.name])
|
parameters[i] = param.replace(annotation=annotations[param.name])
|
||||||
|
@ -63,7 +63,11 @@ def is_system_TypeVar(typ: Any) -> bool:
|
|||||||
def stringify(annotation: Any) -> str:
|
def stringify(annotation: Any) -> str:
|
||||||
"""Stringify type annotation object."""
|
"""Stringify type annotation object."""
|
||||||
if isinstance(annotation, str):
|
if isinstance(annotation, str):
|
||||||
return annotation
|
if annotation.startswith("'") and annotation.endswith("'"):
|
||||||
|
# might be a double Forward-ref'ed type. Go unquoting.
|
||||||
|
return annotation[1:-2]
|
||||||
|
else:
|
||||||
|
return annotation
|
||||||
elif isinstance(annotation, TypeVar): # type: ignore
|
elif isinstance(annotation, TypeVar): # type: ignore
|
||||||
return annotation.__name__
|
return annotation.__name__
|
||||||
elif not annotation:
|
elif not annotation:
|
||||||
@ -105,7 +109,10 @@ def _stringify_py37(annotation: Any) -> str:
|
|||||||
return repr(annotation)
|
return repr(annotation)
|
||||||
|
|
||||||
if getattr(annotation, '__args__', None):
|
if getattr(annotation, '__args__', None):
|
||||||
if qualname == 'Union':
|
if not isinstance(annotation.__args__, (list, tuple)):
|
||||||
|
# broken __args__ found
|
||||||
|
pass
|
||||||
|
elif qualname == 'Union':
|
||||||
if len(annotation.__args__) > 1 and annotation.__args__[-1] is NoneType:
|
if len(annotation.__args__) > 1 and annotation.__args__[-1] is NoneType:
|
||||||
if len(annotation.__args__) > 2:
|
if len(annotation.__args__) > 2:
|
||||||
args = ', '.join(stringify(a) for a in annotation.__args__[:-1])
|
args = ', '.join(stringify(a) for a in annotation.__args__[:-1])
|
||||||
|
@ -1 +1 @@
|
|||||||
exclude_patterns = ['_build']
|
exclude_patterns = ['_build']
|
||||||
|
25
tests/roots/test-ext-autodoc/target/annotations.py
Normal file
25
tests/roots/test-ext-autodoc/target/annotations.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
from typing import overload
|
||||||
|
|
||||||
|
|
||||||
|
myint = int
|
||||||
|
|
||||||
|
|
||||||
|
def sum(x: myint, y: myint) -> myint:
|
||||||
|
"""docstring"""
|
||||||
|
return x + y
|
||||||
|
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def mult(x: myint, y: myint) -> myint:
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def mult(x: float, y: float) -> float:
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
def mult(x, y):
|
||||||
|
"""docstring"""
|
||||||
|
return x, y
|
@ -1,5 +1,5 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
# SOME DESCRIPTIVE TITLE.
|
||||||
# Copyright (C)
|
# Copyright (C)
|
||||||
# This file is distributed under the same license as the Sphinx intl <Tests> package.
|
# This file is distributed under the same license as the Sphinx intl <Tests> package.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
|
2
tests/roots/test-linkcheck-localserver/conf.py
Normal file
2
tests/roots/test-linkcheck-localserver/conf.py
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
exclude_patterns = ['_build']
|
||||||
|
linkcheck_anchors = True
|
1
tests/roots/test-linkcheck-localserver/index.rst
Normal file
1
tests/roots/test-linkcheck-localserver/index.rst
Normal file
@ -0,0 +1 @@
|
|||||||
|
`local server <http://localhost:7777/#anchor>`_
|
@ -1 +1 @@
|
|||||||
exclude_patterns = ['_build']
|
exclude_patterns = ['_build']
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
recursive-include test_theme *.conf
|
recursive-include test_theme *.conf
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
html_theme = 'test-theme'
|
html_theme = 'test-theme'
|
||||||
html_theme_path = ['.', 'test_theme']
|
html_theme_path = ['.', 'test_theme']
|
||||||
exclude_patterns = ['_build']
|
exclude_patterns = ['_build']
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
=======
|
=======
|
||||||
Theming
|
Theming
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='test-theme',
|
name='test-theme',
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
entry_points="""
|
entry_points="""
|
||||||
[sphinx_themes]
|
[sphinx_themes]
|
||||||
path = test_theme:get_path
|
path = test_theme:get_path
|
||||||
""",
|
""",
|
||||||
)
|
)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
def get_path():
|
def get_path():
|
||||||
return os.path.dirname(os.path.abspath(__file__))
|
return os.path.dirname(os.path.abspath(__file__))
|
||||||
|
@ -8,8 +8,10 @@
|
|||||||
:license: BSD, see LICENSE for details.
|
:license: BSD, see LICENSE for details.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import http.server
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
|
import threading
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@ -106,6 +108,21 @@ def test_anchors_ignored(app, status, warning):
|
|||||||
# expect all ok when excluding #top
|
# expect all ok when excluding #top
|
||||||
assert not content
|
assert not content
|
||||||
|
|
||||||
|
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
|
||||||
|
def test_raises_for_invalid_status(app, status, warning):
|
||||||
|
server_thread = HttpServerThread(InternalServerErrorHandler, daemon=True)
|
||||||
|
server_thread.start()
|
||||||
|
try:
|
||||||
|
app.builder.build_all()
|
||||||
|
finally:
|
||||||
|
server_thread.terminate()
|
||||||
|
content = (app.outdir / 'output.txt').read_text()
|
||||||
|
assert content == (
|
||||||
|
"index.rst:1: [broken] http://localhost:7777/#anchor: "
|
||||||
|
"500 Server Error: Internal Server Error "
|
||||||
|
"for url: http://localhost:7777/\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.sphinx(
|
@pytest.mark.sphinx(
|
||||||
'linkcheck', testroot='linkcheck', freshenv=True,
|
'linkcheck', testroot='linkcheck', freshenv=True,
|
||||||
@ -160,3 +177,22 @@ def test_linkcheck_request_headers(app, status, warning):
|
|||||||
assert headers["X-Secret"] == "open sesami"
|
assert headers["X-Secret"] == "open sesami"
|
||||||
else:
|
else:
|
||||||
assert headers["Accept"] == "text/html,application/xhtml+xml;q=0.9,*/*;q=0.8"
|
assert headers["Accept"] == "text/html,application/xhtml+xml;q=0.9,*/*;q=0.8"
|
||||||
|
|
||||||
|
|
||||||
|
class HttpServerThread(threading.Thread):
|
||||||
|
def __init__(self, handler, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.server = http.server.HTTPServer(("localhost", 7777), handler)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
self.server.serve_forever(poll_interval=0.01)
|
||||||
|
|
||||||
|
def terminate(self):
|
||||||
|
self.server.shutdown()
|
||||||
|
self.server.server_close()
|
||||||
|
self.join()
|
||||||
|
|
||||||
|
|
||||||
|
class InternalServerErrorHandler(http.server.BaseHTTPRequestHandler):
|
||||||
|
def do_GET(self):
|
||||||
|
self.send_error(500, "Internal Server Error")
|
||||||
|
@ -642,6 +642,54 @@ def test_autodoc_typehints_description_for_invalid_node(app):
|
|||||||
restructuredtext.parse(app, text) # raises no error
|
restructuredtext.parse(app, text) # raises no error
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.skipif(sys.version_info < (3, 7), reason='python 3.7+ is required.')
|
||||||
|
@pytest.mark.sphinx('text', testroot='ext-autodoc')
|
||||||
|
def test_autodoc_type_aliases(app):
|
||||||
|
# default
|
||||||
|
options = {"members": None}
|
||||||
|
actual = do_autodoc(app, 'module', 'target.annotations', options)
|
||||||
|
assert list(actual) == [
|
||||||
|
'',
|
||||||
|
'.. py:module:: target.annotations',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'.. py:function:: mult(x: int, y: int) -> int',
|
||||||
|
' mult(x: float, y: float) -> float',
|
||||||
|
' :module: target.annotations',
|
||||||
|
'',
|
||||||
|
' docstring',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'.. py:function:: sum(x: int, y: int) -> int',
|
||||||
|
' :module: target.annotations',
|
||||||
|
'',
|
||||||
|
' docstring',
|
||||||
|
'',
|
||||||
|
]
|
||||||
|
|
||||||
|
# define aliases
|
||||||
|
app.config.autodoc_type_aliases = {'myint': 'myint'}
|
||||||
|
actual = do_autodoc(app, 'module', 'target.annotations', options)
|
||||||
|
assert list(actual) == [
|
||||||
|
'',
|
||||||
|
'.. py:module:: target.annotations',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'.. py:function:: mult(x: myint, y: myint) -> myint',
|
||||||
|
' mult(x: float, y: float) -> float',
|
||||||
|
' :module: target.annotations',
|
||||||
|
'',
|
||||||
|
' docstring',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'.. py:function:: sum(x: myint, y: myint) -> myint',
|
||||||
|
' :module: target.annotations',
|
||||||
|
'',
|
||||||
|
' docstring',
|
||||||
|
'',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||||
def test_autodoc_default_options(app):
|
def test_autodoc_default_options(app):
|
||||||
# no settings
|
# no settings
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user