[issue15383] Autocompletion crashes Python if the __builtins__ module cannot be found.

2012-07-18 Thread R. David Murray

R. David Murray rdmur...@bitdance.com added the comment:

This is the same as issue 15113.  If you delete __builtins__, don't expect 
Python to work.

--
nosy: +r.david.murray
resolution:  - duplicate
stage:  - committed/rejected
status: open - closed
superseder:  - IDLE Shell: delattr(__builtins__,getattr) causes shell to 
stop working
type: crash - behavior

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15383
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15383] Autocompletion crashes Python if the __builtins__ module cannot be found.

2012-07-17 Thread Tyler Crompton

New submission from Tyler Crompton gtr...@gmail.com:

Doing one of the following crashes Python.

del __builtins__
a{Tab}

or

builtins = __builtins__
del __builtins__
a{Tab}

If you do a print screen, immediately, you will see the following error:

*** Internal Error: rpc.py:SocketIO.localcall()

 Object: exec
 Method: bound method Executive.get_the_completion_list of 
idlelib.run.Executive object at 0x02DC2710
 Args: ('', 1)

Traceback (most recent call last):
  File C:\Python32\lib\idlelib\rpc.py, line 188, in localcall
ret = method(*args, **kwargs)
  File C:\Python32\lib\idlelib\run.py, line 327, in 
get_the_completion_list
return self.autocomplete.fetch_completions(what, mode)
  File C:\Python32\lib\idlelib\AutoComplete.py, line 189, in 
fetch_completions
namespace.update(__main__.__builtins__.__dict__)
AttributeError: 'module' object has no attribute '__builtins__'

Additionally, when __builtins__ is deleted (in IDLE), __builtins__ becomes a 
dictionary. If one were to then do __builtins__.clear(), the interpreter stops 
all interpreting. IDLE moreorless becomes a text editor with syntax 
highlighting. If you try to use autocomplete, Python hangs before crashing.

I realize that doing such is pointless, but it behaves differently than 
interactive console interpreters. Interactive console interpreters don't 
convert __builtins__ to a dictionary upon its deletion. I feel that this error 
can be handled to prevent crashing.

--
components: IDLE
messages: 165741
nosy: Tyler.Crompton
priority: normal
severity: normal
status: open
title: Autocompletion crashes Python if the __builtins__ module cannot be found.
type: crash
versions: Python 3.2

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15383
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com