Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Lib/test/ann_module7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Tests class have ``__text_signature__``

from __future__ import annotations

DEFAULT_BUFFER_SIZE = 8192

class BufferedReader(object):
"""BufferedReader(raw, buffer_size=DEFAULT_BUFFER_SIZE)\n--\n\n
Create a new buffered reader using the given readable raw IO object.
"""
pass
7 changes: 4 additions & 3 deletions Lib/test/test_inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -4150,13 +4150,14 @@ def func(*args, **kwargs):

def test_base_class_have_text_signature(self):
# see issue 43118
from io import BufferedReader
from .ann_module7 import BufferedReader
Comment thread
hongweipeng marked this conversation as resolved.
Resolved
class MyBufferedReader(BufferedReader):
"""buffer reader class."""

self.assertTrue(hasattr(BufferedReader, '__text_signature__'))
text_signature = BufferedReader.__text_signature__
self.assertEqual(text_signature, '(raw, buffer_size=DEFAULT_BUFFER_SIZE)')
sig = inspect.signature(MyBufferedReader)
self.assertIsNotNone(sig)
self.assertEqual(str(sig), '(raw, buffer_size=8192)')


class NTimesUnwrappable:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
In :func:`inspect.signature`, if the 'base' class has ``__text_signature__``
attribute, use 'base' to help parse it. Patch by Weipeng Hong.
Fix a bug in :func:`inspect.signature` that was causing it to fail on some
subclasses of classes with a ``__text_signature__`` referencing module
globals. Patch by Weipeng Hong.