Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit82094c1

Browse files
committed
Fix __signature__ support if object has a __file__
1 parent26fc2b5 commit82094c1

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

‎bpython/inspection.py‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,14 @@ def getfuncprops(func: str, f: Callable) -> Optional[FuncProps]:
289289
returnNone
290290
try:
291291
argspec=_get_argspec_from_signature(f)
292+
try:
293+
argspec=_fix_default_values(f,argspec)
294+
exceptKeyErrorasex:
295+
# Parsing of the source failed. If f has a __signature__, we trust it.
296+
ifnothasattr(f,"__signature__"):
297+
raiseex
292298
fprops=FuncProps(
293-
func,_fix_default_values(f,argspec),is_bound_method
299+
func,argspec,is_bound_method
294300
)
295301
except (TypeError,KeyError,ValueError):
296302
argspec_pydoc=_getpydocspec(f)

‎bpython/test/test_repl.py‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
importcollections
22
importinspect
3+
importos
34
importsocket
45
importsys
56
importtempfile
@@ -523,13 +524,14 @@ def __init__(self, *args, **kwargs):
523524
inspect.Parameter("pinetree", inspect.Parameter.KEYWORD_ONLY),
524525
])
525526
"""
526-
forlineincode.split("\n"):
527-
print(line[8:])
528-
self.repl.push(line[8:])
527+
code= [x[8:]forxincode.split("\n")]
528+
forlineincode:
529+
self.repl.push(line)
529530

530-
self.assertTrue(self.repl.complete())
531-
self.assertTrue(hasattr(self.repl.matches_iter,"matches"))
532-
self.assertEqual(self.repl.matches_iter.matches, ["apple2=","apple="])
531+
withmock.patch("bpython.inspection.inspect.getsourcelines",return_value=(code,None)):
532+
self.assertTrue(self.repl.complete())
533+
self.assertTrue(hasattr(self.repl.matches_iter,"matches"))
534+
self.assertEqual(self.repl.matches_iter.matches, ["apple2=","apple="])
533535

534536

535537
if__name__=="__main__":

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp