You might be easily mislead into thinking that this code

   try:
      eggs()
   except IOError, OSError:
      pass

will catch both IOError and OSError exceptions. In fact, it will not, as it is more or less equivalent to:

   try:
      eggs()
   except IOError, ex:
      OSError = ex  # Whoo, overwrite the built-in name

There are about 50 packages in the archive whose developers make this kind of mistake. I have attached log file and dd-list. I'm not willing to do MBF, but if someone else is, please feel free to use my data.

--
Jakub Wilk
Adam Cécile (Le_Vert) <[email protected]>
   hellanzb

Tim Abbott <[email protected]>
   sagemath

Rahul Amaram <[email protected]>
   python-twisted-calendarserver
   python-twisted-calendarserver (U)

David Andel <[email protected]>
   uligo

Kumar Appaiah <[email protected]>
   harvestman (U)

Luciano Bello <[email protected]>
   w3af-console

Bastian Blank <[email protected]>
   xen-utils-4.0 (U)

Andreas Bombe <[email protected]>
   anki

Joachim Breitner <[email protected]>
   fso-frameworkd (U)

Luca Bruno <[email protected]>
   uzbl (U)

Calendarserver Maintainers <[email protected]>
   python-vobject

Luca Capello <[email protected]>
   fso-frameworkd (U)

Sargis Dallakyan <[email protected]>
   mgltools-molkit (U)

Julien Danjou <[email protected]>
   mbot
   xen-utils-4.0 (U)

Debian freesmartphone.org Team <[email protected]>
   fso-frameworkd

Debian Multimedia Maintainers 
<[email protected]>
   idjc

Debian Python Modules Team <[email protected]>
   python-apptools
   python-enable
   python-nose (U)

Debian Xen Team <[email protected]>
   xen-utils-4.0

Debian-Med Packaging Team <[email protected]>
   mgltools-molkit

Sebastian Dröge <[email protected]>
   pitivi (U)

Free Ekanayaka <[email protected]>
   idjc (U)
   python-twisted-core (U)

Alexandre Fayolle <[email protected]>
   spambayes

Devid Antonio Filoni <[email protected]>
   emesene (U)

Morten Werner Forsbring <[email protected]>
   python-sss (U)

Freevo Debian Dream Team <[email protected]>
   python-freevo

Cristian Greco <[email protected]>
   deluge-common
   deluge-gtk

Guido Günther <[email protected]>
   python-vobject (U)

Wen Heping <[email protected]>
   python-tables

Varun Hiremath <[email protected]>
   python-apptools (U)
   python-enable (U)

Philipp Huebner <[email protected]>
   anyremote2html
   ganyremote
   kanyremote

Philipp Kern <[email protected]>
   python-pydhcplib

Julian Andres Klode <[email protected]>
   python-aptdaemon

Matthias Klose <[email protected]>
   python-twisted-core
   qmtest

Ondřej Kuzník <[email protected]>
   quodlibet-plugins (U)

Chris Lamb <[email protected]>
   python-django-treebeard
   rst2pdf

Chris Lawrence <[email protected]>
   python-reportbug (U)

Thomas Leonard <[email protected]>
   zeroinstall-injector

Georg W. Leonhardt <[email protected]>
   python-freevo (U)

Maintainers of GStreamer packages 
<[email protected]>
   moovida-plugins-ugly

Torsten Marek <[email protected]>
   python-nose (U)

A Mennucc1 <[email protected]>
   python-freevo (U)

Loic Minier <[email protected]>
   moovida-plugins-ugly (U)
   pitivi

Steffen Moeller <[email protected]>
   mgltools-molkit (U)

Emilio Pozuelo Monfort <[email protected]>
   emesene

Sam Morris <[email protected]>
   pymsnt

Toni Mueller <[email protected]>
   roundup

Xavier Oswald <[email protected]>
   magicor

Anand Pillai <[email protected]>
   harvestman (U)

Python Applications Packaging Team <[email protected]>
   emesene (U)
   harvestman
   pyaimt (U)
   pyicqt (U)
   scribes (U)

Arnaud Quette <[email protected]>
   moovida-plugins-ugly (U)

Petter Reinholdtsen <[email protected]>
   python-sss

Reportbug Maintainers <[email protected]>
   python-reportbug

Patrick Ringl <[email protected]>
   pyicqt (U)

Stefan Ritter <[email protected]>
   uzbl

Miriam Ruiz <[email protected]>
   treeline

Filippo Rusconi <[email protected]>
   mmass (U)

Chris Silva <[email protected]>
   scribes

Gustavo Noronha Silva <[email protected]>
   python-nose

Jonas Smedegaard <[email protected]>
   python-swap

Jose Carlos Garcia Sogo <[email protected]>
   conduit

Christine Spang <[email protected]>
   quodlibet-plugins

Reinhard Tartler <[email protected]>
   idjc (U)

The Debichem Group <[email protected]>
   mmass

Paul van Tilburg <[email protected]>
   moovida-plugins-ugly (U)

Sandro Tosi <[email protected]>
   python-reportbug (U)

Alessio Treglia <[email protected]>
   idjc (U)

Guido Trotter <[email protected]>
   xen-utils-4.0 (U)

Daiki Ueno <[email protected]>
   ibus-skk

Julien Valroff <[email protected]>
   ajaxterm

Frederic Wagner <[email protected]>
   magicor (U)

Erik Wenzel <[email protected]>
   dynagen
   gns3

Jonathan Wiltshire <[email protected]>
   rednotebook

Michal Čihař <[email protected]>
   pyaimt
   pyicqt

ajaxterm_0.10-6 IOError /usr/share/ajaxterm/qweb.py:855
ajaxterm_0.10-6 IOError /usr/share/ajaxterm/qweb.py:872
anki_0.9.9.8.6-2.1 OSError /usr/share/anki/anki/sync.py:1166
anyremote2html_1.3-1 NameError /usr/bin/anyremote2html:371
conduit_0.3.17-1 TypeError /usr/share/pyshared/conduit/SyncSet.py:213
deluge-common_1.2.3+git20100712.0b609bf-1 ValueError 
/usr/share/pyshared/deluge/core/torrentmanager.py:542
deluge-gtk_1.2.3+git20100712.0b609bf-1 TypeError 
/usr/share/pyshared/deluge/ui/gtkui/torrentview.py:448
dynagen_0.11.0-5 AttributeError /usr/share/pyshared/confConsole.py:922
emesene_1.6.3-1 TypeError 
/usr/share/emesene/plugins_base/NotifyOsdImproved.py:453
fso-frameworkd_0.8.5.1-1 IOError 
/usr/share/pyshared/framework/subsystems/ogsmd/helpers.py:151
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:542
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:923
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:1091
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:1706
ganyremote_5.11.5-1 AttributeError /usr/bin/ganyremote:2350
ganyremote_5.11.5-1 AttributeError /usr/bin/ganyremote:2394
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:3649
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:3656
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:3735
ganyremote_5.11.5-1 AttributeError /usr/bin/ganyremote:3744
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:4276
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:4389
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:4396
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:4419
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:4430
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:4440
ganyremote_5.11.5-1 NameError /usr/bin/ganyremote:4450
gns3_0.7.2-1 AttributeError /usr/share/pyshared/GNS3/Dynagen/confConsole.py:952
harvestman_2.0~alpha20022008-2 TypeError 
/usr/share/pyshared/harvestman/lib/urlqueue.py:675
harvestman_2.0~alpha20022008-2 TypeError 
/usr/share/pyshared/harvestman/lib/urlqueue.py:686
hellanzb_0.13-6.1 ValueError 
/usr/share/pyshared/Hellanzb/NewzbinDownloader.py:135
ibus-skk_0.0.9-1 AssertionError /usr/share/ibus-skk/engine/skk.py:722
ibus-skk_0.0.9-1 UnicodeDecodeError /usr/share/ibus-skk/engine/skk.py:1332
idjc_0.8.3-1 IOError /usr/share/pyshared/idjcgui.py:1892
idjc_0.8.3-1 TypeError /usr/share/pyshared/idjc/IDJCfree.py:65
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:1282
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:1366
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:1505
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:1735
kanyremote_5.11.7-1 KeyError /usr/bin/kanyremote:2821
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:2968
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:3255
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:3271
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:3907
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:3920
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:3933
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:3995
kanyremote_5.11.7-1 NameError /usr/bin/kanyremote:4029
magicor_1.1-3 IndexError /usr/share/pyshared/magicor/sprites/stones.py:35
mbot_0.3-7 SyntaxError /usr/share/mbot/modules/NewsHandler.py:47
mgltools-molkit_1.5.4.cvs.20090603-1.1 IndexError 
/usr/share/pyshared/MolKit/pdb2pqr/pdb.py:369
mgltools-molkit_1.5.4.cvs.20090603-1.1 IndexError 
/usr/share/pyshared/MolKit/pdb2pqr/pdb.py:496
mgltools-molkit_1.5.4.cvs.20090603-1.1 NameError 
/usr/share/pyshared/MolKit/pdb2pqr/src/protein.py:188
mgltools-molkit_1.5.4.cvs.20090603-1.1 IndexError 
/usr/share/pyshared/MolKit/pdb2pqr/src/pdb.py:417
mgltools-molkit_1.5.4.cvs.20090603-1.1 IndexError 
/usr/share/pyshared/MolKit/pdb2pqr/src/pdb.py:685
mmass_2.4.0-4 TypeError /usr/share/mmass/modules/mimport/document_mmass.py:266
moovida-plugins-ugly_1.0.9+bzr1614-1 AttributeError 
/usr/share/pyshared/elisa/plugins/youtube/resource_provider.py:152
moovida-plugins-ugly_1.0.9+bzr1614-1 AttributeError 
/usr/share/pyshared/elisa/plugins/youtube/resource_provider.py:162
pitivi_0.13.4-3 OSError /usr/lib/pitivi/python/pitivi/settings.py:212
pyaimt_0.8.0.1-2 TypeError /usr/share/pyaimt/src/register.py:153
pyaimt_0.8.0.1-2 TypeError /usr/share/pyaimt/src/register.py:232
pyaimt_0.8.0.1-2 UnicodeDecodeError /usr/share/pyaimt/src/xdb/xmlfiles.py:352
pyicqt_0.8.1.5-3 TypeError /usr/share/pyicqt/src/register.py:153
pyicqt_0.8.1.5-3 TypeError /usr/share/pyicqt/src/register.py:232
pyicqt_0.8.1.5-3 UnicodeDecodeError /usr/share/pyicqt/src/xdb/xmlfiles.py:448
pymsnt_0.11.3-5 TypeError /usr/share/pymsnt/src/register.py:126
python-apptools_3.3.2-1 NotImplementedError 
/usr/share/doc/python-apptools/examples/permissions/server/server.py:549
python-aptdaemon_0.31+bzr413-1 IndexError 
/usr/share/pyshared/aptdaemon/progress.py:504
python-django-treebeard_1.61-1 KeyError 
/usr/share/pyshared/treebeard/models.py:558
python-enable_3.3.1-1 SystemExit 
/usr/share/pyshared/enthought/enable/toolkit.py:39
python-enable_3.3.1-1 SystemExit 
/usr/share/pyshared/enthought/savage/traits/ui/toolkit.py:34
python-freevo_1.9.0-4 SystemExit /usr/share/pyshared/freevo/helpers/passwd.py:43
python-nose_0.11.1-1 SystemExit 
/usr/share/pyshared/nose/plugins/multiprocess.py:493
python-pydhcplib_0.6.2-2 TypeError 
/usr/share/pyshared/pydhcplib/dhcp_packet.py:146
python-reportbug_4.12.4 OSError /usr/share/pyshared/reportbug/utils.py:864
python-sss_1.2.1-1 KeyError /usr/share/pyshared/SSSDConfig.py:289
python-sss_1.2.1-1 KeyError /usr/share/pyshared/SSSDConfig.py:308
python-sss_1.2.1-1 KeyError /usr/share/pyshared/SSSDConfig.py:323
python-swap_1.2.1-4.1 AssertionError /usr/share/pyshared/swap/cwm_time.py:44
python-tables_2.1.2-3+b1 AttributeError 
/usr/share/pyshared/tables/nra/nestedrecords.py:694
python-twisted-calendarserver_0.2.0.svn19773-5+b2 AttributeError 
/usr/share/pyshared/twisted/internet/gtkreactor.py:28
python-twisted-calendarserver_0.2.0.svn19773-5+b2 ValueError 
/usr/share/pyshared/twisted/words/protocols/jabber/xmlstream.py:534
python-twisted-calendarserver_8.2.0.svn27622-1 AttributeError 
/usr/lib/twisted-calendarserver/lib/python2.6/site-packages/twisted/internet/gtkreactor.py:22
python-twisted-calendarserver_8.2.0.svn27622-1 AttributeError 
/usr/lib/twisted-calendarserver/lib/python2.5/site-packages/twisted/internet/gtkreactor.py:22
python-twisted-core_10.1.0-2 AttributeError 
/usr/lib/python2.6/dist-packages/twisted/internet/gtkreactor.py:22
python-twisted-core_10.1.0-2 AttributeError 
/usr/lib/python2.5/site-packages/twisted/internet/gtkreactor.py:22
python-twisted-core_10.1.0-2 AttributeError 
/usr/share/pyshared/twisted/internet/gtkreactor.py:22
python-vobject_0.8.1c-3 KeyError /usr/share/pyshared/vobject/icalendar.py:391
python-vobject_0.8.1c-3 KeyError /usr/share/pyshared/vobject/icalendar.py:399
python-vobject_0.8.1c-3 KeyError /usr/share/pyshared/vobject/icalendar.py:473
qmtest_2.4.1-1 AttributeError 
/usr/share/pyshared/qm/external/DocumentTemplate/pDocumentTemplate.py:93
qmtest_2.4.1-1 KeyError 
/usr/share/pyshared/qm/external/DocumentTemplate/DT_In.py:701
qmtest_2.4.1-1 KeyError 
/usr/share/pyshared/qm/external/DocumentTemplate/DT_In.py:710
quodlibet-plugins_1:2.2.1-1 IOError 
/usr/share/pyshared/quodlibet/plugins/songsmenu/albumart.py:1116
rednotebook_1.0.0-2 UnicodeEncodeError 
/usr/share/rednotebook/rednotebook/util/unicode.py:69
roundup_1.4.13-3.1 TypeError /usr/share/pyshared/roundup/hyperdb.py:1104
roundup_1.4.13-3.1 TypeError /usr/share/pyshared/roundup/anypy/sets_.py:27
rst2pdf_0.14.2-1 UnicodeEncodeError 
/usr/share/pyshared/rst2pdf/pdfbuilder.py:781
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/lib/sagemath/devel/sage-main/sage/server/simple/twist.py:176
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/lib/sagemath/devel/sage-main/sage/server/simple/twist.py:283
sagemath_3.0.5dfsg-5.1+b1 KeyboardInterrupt 
/usr/lib/sagemath/devel/sage-main/sage/schemes/elliptic_curves/ell_padic.py:71
sagemath_3.0.5dfsg-5.1+b1 AttributeError 
/usr/lib/sagemath/devel/sage-main/sage/schemes/elliptic_curves/sha.py:152
sagemath_3.0.5dfsg-5.1+b1 KeyboardInterrupt 
/usr/lib/sagemath/devel/sage-main/sage/schemes/elliptic_curves/padic_height.py:51
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/lib/sagemath/devel/sage-main/sage/rings/coerce_python.py:54
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/lib/sagemath/devel/sage-main/sage/rings/coerce_python.py:58
sagemath_3.0.5dfsg-5.1+b1 OSError 
/usr/lib/sagemath/devel/sage-main/sage/misc/interpreter.py:316
sagemath_3.0.5dfsg-5.1+b1 OSError 
/usr/lib/sagemath/devel/sage-main/sage/misc/interpreter.py:322
sagemath_3.0.5dfsg-5.1+b1 OSError 
/usr/lib/sagemath/devel/sage-main/sage/misc/interpreter.py:328
sagemath_3.0.5dfsg-5.1+b1 OSError 
/usr/lib/sagemath/devel/sage-main/sage/misc/preparser.py:928
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/share/pyshared/sage/server/simple/twist.py:176
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/share/pyshared/sage/server/simple/twist.py:283
sagemath_3.0.5dfsg-5.1+b1 KeyboardInterrupt 
/usr/share/pyshared/sage/schemes/elliptic_curves/ell_padic.py:71
sagemath_3.0.5dfsg-5.1+b1 AttributeError 
/usr/share/pyshared/sage/schemes/elliptic_curves/sha.py:152
sagemath_3.0.5dfsg-5.1+b1 KeyboardInterrupt 
/usr/share/pyshared/sage/schemes/elliptic_curves/padic_height.py:51
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/share/pyshared/sage/rings/coerce_python.py:54
sagemath_3.0.5dfsg-5.1+b1 ValueError 
/usr/share/pyshared/sage/rings/coerce_python.py:58
sagemath_3.0.5dfsg-5.1+b1 OSError 
/usr/share/pyshared/sage/misc/interpreter.py:316
sagemath_3.0.5dfsg-5.1+b1 OSError 
/usr/share/pyshared/sage/misc/interpreter.py:322
sagemath_3.0.5dfsg-5.1+b1 OSError 
/usr/share/pyshared/sage/misc/interpreter.py:328
sagemath_3.0.5dfsg-5.1+b1 OSError /usr/share/pyshared/sage/misc/preparser.py:928
scribes_0.4~r543-2 IOError 
/usr/share/pyshared/SCRIBES/PluginInitializer/HomePluginPathCreator.py:33
spambayes_1.0.4-5.1 ValueError /usr/share/pyshared/spambayes/classifier.py:614
spambayes_1.0.4-5.1 ValueError /usr/share/pyshared/spambayes/classifier.py:633
treeline_1.2.4-1 AttributeError /usr/share/treeline/p3.py:39
uligo_0.3-6 OSError /usr/games/uligo:307
uligo_0.3-6 OSError /usr/share/games/uligo/uligo.py:307
uzbl_0.0.0~git.20100403-2 ValueError /usr/bin/uzbl-event-manager:247
uzbl_0.0.0~git.20100403-2 ValueError 
/usr/share/uzbl/examples/data/scripts/uzbl-event-manager:247
w3af-console_1.0-rc3svn3489-1 SystemExit 
/usr/share/w3af/extlib/nltk/internals.py:486
w3af-console_1.0-rc3svn3489-1 KeyboardInterrupt 
/usr/share/w3af/extlib/nltk/classify/weka.py:67
xen-utils-4.0_4.0.1~rc3-1 TypeError 
/usr/lib/xen-4.0/lib/python/xen/sv/Wizard.py:217
zeroinstall-injector_0.49-1 ValueError 
/usr/share/pyshared/zeroinstall/0launch-gui/properties.py:77

Attachment: signature.asc
Description: Digital signature

Reply via email to