Skip to content

Commit

Permalink
Merge branch '4.x'
Browse files Browse the repository at this point in the history
  • Loading branch information
tk0miya committed Nov 7, 2021
2 parents 9ae86a1 + 8e35049 commit 7a6272f
Show file tree
Hide file tree
Showing 127 changed files with 2,440 additions and 2,399 deletions.
2 changes: 2 additions & 0 deletions CHANGES
Expand Up @@ -99,6 +99,8 @@ Bugs fixed
* #9756: autodoc: Crashed if classmethod does not have __func__ attribute
* #9757: autodoc: :confval:`autodoc_inherit_docstrings` does not effect to
overriden classmethods
* #9781: autodoc: :confval:`autodoc_preserve_defaults` does not support
hexadecimal numeric
* #9630: autosummary: Failed to build summary table if :confval:`primary_domain`
is not 'py'
* #9670: html: Fix download file with special characters
Expand Down
4 changes: 4 additions & 0 deletions doc/usage/theming.rst
Expand Up @@ -127,6 +127,10 @@ Builtin themes

Sphinx comes with a selection of themes to choose from.

Note that from these themes only the Alabaster and Scrolls themes are
mobile-optimated, the other themes resort to horizontal scrolling
if the screen is too narrow.

.. cssclass:: clear

These themes are:
Expand Down
38 changes: 33 additions & 5 deletions sphinx/ext/autodoc/preserve_defaults.py
Expand Up @@ -11,7 +11,8 @@

import ast
import inspect
from typing import Any, Dict
import sys
from typing import Any, Dict, List, Optional

from sphinx.application import Sphinx
from sphinx.locale import __
Expand Down Expand Up @@ -49,11 +50,32 @@ def get_function_def(obj: Any) -> ast.FunctionDef:
return None


def get_default_value(lines: List[str], position: ast.AST) -> Optional[str]:
try:
if sys.version_info < (3, 8): # only for py38+
return None
elif position.lineno == position.end_lineno:
line = lines[position.lineno - 1]
return line[position.col_offset:position.end_col_offset]
else:
# multiline value is not supported now
return None
except (AttributeError, IndexError):
return None


def update_defvalue(app: Sphinx, obj: Any, bound_method: bool) -> None:
"""Update defvalue info of *obj* using type_comments."""
if not app.config.autodoc_preserve_defaults:
return

try:
lines = inspect.getsource(obj).splitlines()
if lines[0].startswith((' ', r'\t')):
lines.insert(0, '') # insert a dummy line to follow what get_function_def() does.
except OSError:
lines = []

try:
function = get_function_def(obj)
if function.args.defaults or function.args.kw_defaults:
Expand All @@ -64,11 +86,17 @@ def update_defvalue(app: Sphinx, obj: Any, bound_method: bool) -> None:
for i, param in enumerate(parameters):
if param.default is not param.empty:
if param.kind in (param.POSITIONAL_ONLY, param.POSITIONAL_OR_KEYWORD):
value = DefaultValue(ast_unparse(defaults.pop(0))) # type: ignore
parameters[i] = param.replace(default=value)
default = defaults.pop(0)
value = get_default_value(lines, default)
if value is None:
value = ast_unparse(default) # type: ignore
parameters[i] = param.replace(default=DefaultValue(value))
else:
value = DefaultValue(ast_unparse(kw_defaults.pop(0))) # type: ignore
parameters[i] = param.replace(default=value)
default = kw_defaults.pop(0)
value = get_default_value(lines, default)
if value is None:
value = ast_unparse(default) # type: ignore
parameters[i] = param.replace(default=DefaultValue(value))
sig = sig.replace(parameters=parameters)
obj.__signature__ = sig
except (AttributeError, TypeError):
Expand Down
Binary file modified sphinx/locale/ar/LC_MESSAGES/sphinx.mo
Binary file not shown.
90 changes: 45 additions & 45 deletions sphinx/locale/ar/LC_MESSAGES/sphinx.po
Expand Up @@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2021-10-25 16:47+0000\n"
"POT-Creation-Date: 2021-11-07 00:10+0000\n"
"PO-Revision-Date: 2021-10-10 00:10+0000\n"
"Last-Translator: Komiya Takeshi <i.tkomiya@gmail.com>\n"
"Language-Team: Arabic (http://www.transifex.com/sphinx-doc/sphinx-1/language/ar/)\n"
Expand Down Expand Up @@ -1851,7 +1851,7 @@ msgid "%s (C %s)"
msgstr ""

#: sphinx/domains/c.py:3336 sphinx/domains/cpp.py:7177
#: sphinx/domains/python.py:416 sphinx/ext/napoleon/docstring.py:736
#: sphinx/domains/python.py:420 sphinx/ext/napoleon/docstring.py:736
msgid "Parameters"
msgstr ""

Expand All @@ -1860,12 +1860,12 @@ msgid "Return values"
msgstr ""

#: sphinx/domains/c.py:3342 sphinx/domains/cpp.py:7186
#: sphinx/domains/javascript.py:231 sphinx/domains/python.py:428
#: sphinx/domains/javascript.py:231 sphinx/domains/python.py:432
msgid "Returns"
msgstr ""

#: sphinx/domains/c.py:3344 sphinx/domains/javascript.py:233
#: sphinx/domains/python.py:430
#: sphinx/domains/python.py:434
msgid "Return type"
msgstr ""

Expand All @@ -1878,7 +1878,7 @@ msgid "variable"
msgstr "متغير"

#: sphinx/domains/c.py:3742 sphinx/domains/cpp.py:7590
#: sphinx/domains/javascript.py:340 sphinx/domains/python.py:1164
#: sphinx/domains/javascript.py:340 sphinx/domains/python.py:1168
msgid "function"
msgstr ""

Expand Down Expand Up @@ -1956,7 +1956,7 @@ msgid "Throws"
msgstr ""

#: sphinx/domains/cpp.py:7588 sphinx/domains/javascript.py:342
#: sphinx/domains/python.py:1166
#: sphinx/domains/python.py:1170
msgid "class"
msgstr "كائن"

Expand All @@ -1973,7 +1973,7 @@ msgstr ""
msgid "%s() (built-in function)"
msgstr ""

#: sphinx/domains/javascript.py:147 sphinx/domains/python.py:803
#: sphinx/domains/javascript.py:147 sphinx/domains/python.py:807
#, python-format
msgid "%s() (%s method)"
msgstr ""
Expand All @@ -1988,7 +1988,7 @@ msgstr ""
msgid "%s (global variable or constant)"
msgstr ""

#: sphinx/domains/javascript.py:153 sphinx/domains/python.py:888
#: sphinx/domains/javascript.py:153 sphinx/domains/python.py:892
#, python-format
msgid "%s (%s attribute)"
msgstr ""
Expand All @@ -2002,20 +2002,20 @@ msgstr ""
msgid "%s (module)"
msgstr ""

#: sphinx/domains/javascript.py:341 sphinx/domains/python.py:1168
#: sphinx/domains/javascript.py:341 sphinx/domains/python.py:1172
msgid "method"
msgstr ""

#: sphinx/domains/javascript.py:343 sphinx/domains/python.py:1165
#: sphinx/domains/javascript.py:343 sphinx/domains/python.py:1169
msgid "data"
msgstr ""

#: sphinx/domains/javascript.py:344 sphinx/domains/python.py:1171
#: sphinx/domains/javascript.py:344 sphinx/domains/python.py:1175
msgid "attribute"
msgstr ""

#: sphinx/domains/javascript.py:345 sphinx/domains/python.py:58
#: sphinx/domains/python.py:1173
#: sphinx/domains/python.py:1177
msgid "module"
msgstr ""

Expand Down Expand Up @@ -2046,7 +2046,7 @@ msgstr ""
msgid "object"
msgstr "كائن"

#: sphinx/domains/python.py:62 sphinx/domains/python.py:1167
#: sphinx/domains/python.py:62 sphinx/domains/python.py:1171
msgid "exception"
msgstr ""

Expand All @@ -2058,92 +2058,92 @@ msgstr ""
msgid "built-in function"
msgstr ""

#: sphinx/domains/python.py:421
#: sphinx/domains/python.py:425
msgid "Variables"
msgstr "متغيرات"

#: sphinx/domains/python.py:425
#: sphinx/domains/python.py:429
msgid "Raises"
msgstr ""

#: sphinx/domains/python.py:648 sphinx/domains/python.py:792
#: sphinx/domains/python.py:652 sphinx/domains/python.py:796
#, python-format
msgid "%s() (in module %s)"
msgstr ""

#: sphinx/domains/python.py:708 sphinx/domains/python.py:884
#: sphinx/domains/python.py:935
#: sphinx/domains/python.py:712 sphinx/domains/python.py:888
#: sphinx/domains/python.py:939
#, python-format
msgid "%s (in module %s)"
msgstr ""

#: sphinx/domains/python.py:710
#: sphinx/domains/python.py:714
#, python-format
msgid "%s (built-in variable)"
msgstr ""

#: sphinx/domains/python.py:735
#: sphinx/domains/python.py:739
#, python-format
msgid "%s (built-in class)"
msgstr ""

#: sphinx/domains/python.py:736
#: sphinx/domains/python.py:740
#, python-format
msgid "%s (class in %s)"
msgstr ""

#: sphinx/domains/python.py:797
#: sphinx/domains/python.py:801
#, python-format
msgid "%s() (%s class method)"
msgstr ""

#: sphinx/domains/python.py:799 sphinx/domains/python.py:939
#: sphinx/domains/python.py:803 sphinx/domains/python.py:943
#, python-format
msgid "%s (%s property)"
msgstr ""

#: sphinx/domains/python.py:801
#: sphinx/domains/python.py:805
#, python-format
msgid "%s() (%s static method)"
msgstr ""

#: sphinx/domains/python.py:1093
#: sphinx/domains/python.py:1097
msgid "Python Module Index"
msgstr ""

#: sphinx/domains/python.py:1094
#: sphinx/domains/python.py:1098
msgid "modules"
msgstr ""

#: sphinx/domains/python.py:1143
#: sphinx/domains/python.py:1147
msgid "Deprecated"
msgstr ""

#: sphinx/domains/python.py:1169
#: sphinx/domains/python.py:1173
msgid "class method"
msgstr ""

#: sphinx/domains/python.py:1170
#: sphinx/domains/python.py:1174
msgid "static method"
msgstr ""

#: sphinx/domains/python.py:1172
#: sphinx/domains/python.py:1176
msgid "property"
msgstr ""

#: sphinx/domains/python.py:1230
#: sphinx/domains/python.py:1234
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :noindex: for "
"one of them"
msgstr ""

#: sphinx/domains/python.py:1350
#: sphinx/domains/python.py:1354
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""

#: sphinx/domains/python.py:1404
#: sphinx/domains/python.py:1408
msgid " (deprecated)"
msgstr ""

Expand Down Expand Up @@ -2704,42 +2704,42 @@ msgstr ""
msgid "Permalink to this equation"
msgstr "رابط دائم لهذه المعادلة"

#: sphinx/ext/intersphinx.py:173
#: sphinx/ext/intersphinx.py:174
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""

#: sphinx/ext/intersphinx.py:204
#: sphinx/ext/intersphinx.py:205
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""

#: sphinx/ext/intersphinx.py:218
#: sphinx/ext/intersphinx.py:219
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""

#: sphinx/ext/intersphinx.py:224
#: sphinx/ext/intersphinx.py:225
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""

#: sphinx/ext/intersphinx.py:334
#: sphinx/ext/intersphinx.py:270
#, python-format
msgid "(in %s v%s)"
msgstr ""

#: sphinx/ext/intersphinx.py:336
#: sphinx/ext/intersphinx.py:272
#, python-format
msgid "(in %s)"
msgstr ""

#: sphinx/ext/intersphinx.py:369
#: sphinx/ext/intersphinx.py:476
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""

#: sphinx/ext/intersphinx.py:382
#: sphinx/ext/intersphinx.py:489
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
Expand Down Expand Up @@ -2868,7 +2868,7 @@ msgid ""
msgstr ""

#: sphinx/ext/autodoc/__init__.py:1304 sphinx/ext/autodoc/__init__.py:1378
#: sphinx/ext/autodoc/__init__.py:2735
#: sphinx/ext/autodoc/__init__.py:2743
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
Expand Down Expand Up @@ -2899,18 +2899,18 @@ msgstr ""
msgid "Failed to get a method signature for %s: %s"
msgstr ""

#: sphinx/ext/autodoc/__init__.py:2349
#: sphinx/ext/autodoc/__init__.py:2348
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""

#: sphinx/ext/autodoc/__init__.py:2778
#: sphinx/ext/autodoc/__init__.py:2786
msgid ""
"autodoc_member_order now accepts \"alphabetical\" instead of \"alphabetic\"."
" Please update your setting."
msgstr ""

#: sphinx/ext/autodoc/preserve_defaults.py:78
#: sphinx/ext/autodoc/preserve_defaults.py:106
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
Expand Down
Binary file modified sphinx/locale/bg/LC_MESSAGES/sphinx.mo
Binary file not shown.

0 comments on commit 7a6272f

Please sign in to comment.