mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #7362: autodoc: does not render correct signatures for built-in functions
This commit is contained in:
1
CHANGES
1
CHANGES
@@ -87,6 +87,7 @@ Bugs fixed
|
||||
autodoc_typehints='description' mode
|
||||
* #7551: autodoc: failed to import nested class
|
||||
* #7637: autodoc: system defined TypeVars are shown in Python 3.9
|
||||
* #7362: autodoc: does not render correct signatures for built-in functions
|
||||
* #7551: autosummary: a nested class is indexed as non-nested class
|
||||
* #7535: sphinx-autogen: crashes when custom template uses inheritance
|
||||
* #7536: sphinx-autogen: crashes when template uses i18n feature
|
||||
|
||||
@@ -1052,10 +1052,6 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
|
||||
kwargs.setdefault('show_annotation', False)
|
||||
|
||||
unwrapped = inspect.unwrap(self.object)
|
||||
if ((inspect.isbuiltin(unwrapped) or inspect.ismethoddescriptor(unwrapped)) and
|
||||
not inspect.is_cython_function_or_method(unwrapped)):
|
||||
# cannot introspect arguments of a C function or method
|
||||
return None
|
||||
try:
|
||||
self.env.app.emit('autodoc-before-process-signature', unwrapped, False)
|
||||
sig = inspect.signature(unwrapped)
|
||||
|
||||
@@ -1190,6 +1190,32 @@ def test_autofunction_for_method(app):
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||
def test_autofunction_for_builtin(app):
|
||||
actual = do_autodoc(app, 'function', 'os.umask')
|
||||
assert list(actual) == [
|
||||
'',
|
||||
'.. py:function:: umask(mask, /)',
|
||||
' :module: os',
|
||||
'',
|
||||
' Set the current numeric umask and return the previous umask.',
|
||||
'',
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||
def test_autofunction_for_methoddescriptor(app):
|
||||
actual = do_autodoc(app, 'function', 'builtins.int.__add__')
|
||||
assert list(actual) == [
|
||||
'',
|
||||
'.. py:function:: int.__add__(self, value, /)',
|
||||
' :module: builtins',
|
||||
'',
|
||||
' Return self+value.',
|
||||
'',
|
||||
]
|
||||
|
||||
|
||||
def test_abstractmethods(app):
|
||||
options = {"members": None,
|
||||
"undoc-members": None}
|
||||
|
||||
Reference in New Issue
Block a user