X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/006f35560e7a830732f7018c3f35277c148a8aa2..e6a99197fb89047a88f72da519b8fee18a316a7c:/wxPython/wx/py/introspect.py diff --git a/wxPython/wx/py/introspect.py b/wxPython/wx/py/introspect.py index ccc97e056a..3e37495d84 100644 --- a/wxPython/wx/py/introspect.py +++ b/wxPython/wx/py/introspect.py @@ -12,6 +12,7 @@ import inspect import sys import tokenize import types +import wx def getAutoCompleteList(command='', locals=None, includeMagic=1, includeSingle=1, includeDouble=1): @@ -251,14 +252,14 @@ def getRoot(command, terminator=None): line = token[4] if tokentype is tokenize.ENDMARKER: continue - if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \ - and laststring != '.': - # We've reached something that's not part of the root. - if prefix and line[token[3][1]] != ' ': - # If it doesn't have a space after it, remove the prefix. - prefix = '' - break - if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \ + #if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER) \ + # and laststring != '.': + # # We've reached something that's not part of the root. + # if prefix and line[token[3][1]] != ' ': + # # If it doesn't have a space after it, remove the prefix. + # prefix = '' + # break + if tokentype in (tokenize.NAME, tokenize.STRING, tokenize.NUMBER, tokenize.OP) \ or (tokentype is tokenize.OP and tokenstring == '.'): if prefix: # The prefix isn't valid because it comes after a dot. @@ -291,7 +292,14 @@ def getRoot(command, terminator=None): def getTokens(command): """Return list of token tuples for command.""" - command = str(command) # In case the command is unicode, which fails. + + # In case the command is unicode try encoding it + if type(command) == unicode: + try: + command = command.encode(wx.GetDefaultPyEncoding()) + except UnicodeEncodeError: + pass # otherwise leave it alone + f = cStringIO.StringIO(command) # tokens is a list of token tuples, each looking like: # (type, string, (srow, scol), (erow, ecol), line)