classification
Title: IDLE does not run with Py30b3
Type: crash Stage:
Components: IDLE Versions: Python 3.0
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: benjamin.peterson, mark, mark.dickinson
Priority: release blocker Keywords:

Created on 2008-08-21 08:06 by mark, last changed 2008-09-19 21:49 by benjamin.peterson. This issue is now closed.

Messages (4)
msg71611 - (view) Author: Mark Summerfield (mark) Date: 2008-08-21 08:06
When I try to run IDLE in Py30b3 I get a traceback, then the main window
appears with an error message box and an OK button; once I click OK,
IDLE goes away.

$ ~/opt/python30b3/bin/idle
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/mark/opt/python30b3/lib/python3.0/idlelib/run.py", line
76, in main
    sockthread.set_daemon(True)
AttributeError: 'Thread' object has no attribute 'set_daemon'

It looks like there's been some mixup with threading... in an earlier
beta there was setDaemon(), then it became set_daemon(), and now it is
back to setDaemon() again. And unfortunately, the obvious fix (change
the name to setDaemon()), although it gets past this problem, just leads
to another:

$ ~/opt/python30b3/bin/idle # using setDaemon
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/mark/opt/python30b3/lib/python3.0/idlelib/run.py", line
76, in main
    sockthread.setDaemon(True)
  File "/home/mark/opt/python30b3/lib/python3.0/threading.py", line 674,
in setDaemon
    "Thread.daemon property", DeprecationWarning)
  File "/home/mark/opt/python30b3/lib/python3.0/warnings.py", line 18,
in showwarning
    file.write(formatwarning(message, category, filename, lineno, line))
TypeError: idle_formatwarning_subproc() takes exactly 4 positional
arguments (5 given)

I did run make test and got 300 tests OK with 22 skipped all expected on
linux2.
msg71616 - (view) Author: Mark Summerfield (mark) Date: 2008-08-21 08:53
Just realised how to fix this. Change line 76 in idlelib/run.py:

# change this:
    sockthread.set_daemon(True)
# to this:
    sockthread.daemon = True

and IDLE runs fine.
msg71679 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2008-08-21 20:52
This should be changed in 2.6 as well (from sockthread.setDaemon(True) to 
sockthread.daemon = True).

By the way, I notice that there are also used of setDaemon, isDaemon, 
getName and setName in Lib/multiprocessing/dummy/__init__.py;  these 
should probably also be replaced.
msg73443 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2008-09-19 21:49
Fixed in r66518.
History
Date User Action Args
2008-09-19 21:49:50benjamin.petersonsetstatus: open -> closed
resolution: fixed
messages: + msg73443
nosy: + benjamin.peterson
2008-09-18 05:41:35barrysetpriority: deferred blocker -> release blocker
2008-09-09 17:43:07loewislinkissue3815 superseder
2008-09-04 01:13:27benjamin.petersonsetpriority: release blocker -> deferred blocker
2008-08-21 20:52:07mark.dickinsonsetnosy: + mark.dickinson
messages: + msg71679
2008-08-21 12:33:46barrysetpriority: release blocker
2008-08-21 08:53:55marksetmessages: + msg71616
2008-08-21 08:06:30markcreate