mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-12-15 17:20:07 +01:00
Merge pull request #2354 from komoto48g/introspection
Fix wx.py.shell.Shell calltip
This commit is contained in:
@@ -3,6 +3,7 @@ things like call tips and command auto completion."""
|
||||
|
||||
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
|
||||
|
||||
import re
|
||||
import sys
|
||||
import inspect
|
||||
import tokenize
|
||||
@@ -175,8 +176,11 @@ def getCallTip(command='', locals=None):
|
||||
pass
|
||||
elif inspect.isfunction(obj):
|
||||
# tip1 is a string like: "getCallTip(command='', locals=None)"
|
||||
argspec = inspect.getargspec(obj) if not PY3 else inspect.getfullargspec(obj)
|
||||
argspec = inspect.formatargspec(*argspec)
|
||||
try:
|
||||
argspec = str(inspect.signature(obj)) # PY35 or later
|
||||
except AttributeError:
|
||||
argspec = inspect.getargspec(obj) if not PY3 else inspect.getfullargspec(obj)
|
||||
argspec = inspect.formatargspec(*argspec)
|
||||
if dropSelf:
|
||||
# The first parameter to a method is a reference to an
|
||||
# instance, usually coded as "self", and is usually passed
|
||||
@@ -211,7 +215,11 @@ def getCallTip(command='', locals=None):
|
||||
tip = '%s%s\n\n%s' % (tip1, tip2, tip3)
|
||||
else:
|
||||
tip = tip1
|
||||
calltip = (name, argspec[1:-1], tip.strip())
|
||||
# Extract argspec from the signature e.g., (x, /, *, ...) -> int
|
||||
m = re.search(r'\((.*)\)', argspec)
|
||||
if m:
|
||||
argspec = m.group(1)
|
||||
calltip = (name, argspec, tip.strip())
|
||||
return calltip
|
||||
|
||||
def getRoot(command, terminator=None):
|
||||
|
||||
Reference in New Issue
Block a user