[Python-Dev] Breaking bug #411881 into manageable pieces

Skip Montanaro skip@pobox.com
Tue, 19 Mar 2002 14:59:01 -0600


--cbZEu+XcE7
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit


Just to make sure nobody's confused by the timing of this note: none of this
has anything to do with 2.2.1.

About a year ago, Itamar Shtull-Trauring filed a bug report about the use of
unqualified except clauses in the standard library.  Over the past year a
number of instances have been corrected, but many remain.  I made a pass
through those that remain and tried to break them into four groups:

    * Obviously okay, because the code must potentially recover from just
      about anything.  Modules like repr.py fall into this category.

    * Not worth fixing, because the except: occurs in situations that would
      not affect application code (such as in module tests).

    * Instances that should probably be fixed because it appears only a
      narrow set of exceptions could be raised by the code called from their
      try: blocks.

    * I Trust Tim (tm).

I'd like to break this bug into multiple pieces by

    * open a separate bug for each module that uses unqualified except
      clauses that don't obviously need to guard against random exceptions
      (see my notes below).

    * for those uses that are obviously okay or don't seem worth fixing, add
      a short comment to the code explaining why it's okay in the
      neighborhood of the use.

    * close bug #411881 with a reference to the new bugs spawned by this
      exercise.
    
While this will increase the number of open bugs, it will make this issue
more tractable.  As currently constituted, I don't see this bug report ever
getting closed.

Attached are the notes I took while picking through the source.

Skip


--cbZEu+XcE7
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64

CmFzeW5jb3JlLnB5OiBndWFyZHMgcmFuZG9tIGNvZGUKCkJhc3Rpb24ucHk6IG9rYXkgLSBh
bGwgdW5xdWFsaWZpZWQgZXhjZXB0cyBhcmUgaW4gdGVzdCBmdW5jdGlvbnMKCmJkYi5weTog
dGhlIG9uZSB1bnF1YWxpZmllZCBleGNlcHQgZ3VhcmRzIHJhbmRvbSBjb2RlCgpDR0lIVFRQ
U2VydmVyLnB5OiB0aGUgb25lIHVucXVhbGlmaWVkIGV4Y2VwdCBwcm90ZWN0cyBhIG51bWJl
ciBvZiBvcyBtb2R1bGUKCQkgIGNhbGxzIC0gbG9va3MgYXQgZmlyc3QgYmx1c2ggbGlrZSBv
bmx5IGNhbiBiZSByYWlzZWQuCgpjZ2l0Yi5weTogYSBjb3VwbGUgbG9vayBsaWtlIHRoZXkg
bWlnaHQgcmVhc29uYWJseSBiZSBtb3JlIHNwZWNpZmljLCBidXQKCSAgdGhlIG1vZHVsZSBp
dHNlbGYgbmVlZHMgdG8gcmVjb3ZlciBmcm9tIGFzIG11Y2ggYXMgcG9zc2libGUsIHNvCgkg
IGVycmluZyBvbiB0aGUgc2lkZSBvZiBiZWluZyB0b28gZ2VuZXJhbCBpcyBwcm9iYWJseSBv
a2F5LgoKY29kZS5weTogPwoKY29tcGlsZWFsbC5weTogdGhlIG9uZSBnZW5lcmljIGV4Y2Vw
dCBzZWVtcyByZWFzb25hYmxlIC0gc2luY2UgY29tcGlsZWFsbAoJICAgICAgIG11c3Qga2Vl
cCBnb2luZy4KCkNvb2tpZS5weTogdGhlIG9uZSBnZW5lcmljIGV4Y2VwdCBsb29rcyBsaWtl
IGl0IHNob3VsZCBiZSBtb3JlIHNwZWNpZmljLgoKZG9jdGVzdC5weTogSSBUcnVzdCBUaW0g
KHRtKQoKZ2V0cGFzcy5weTogc2VlbXMgbGlrZSB0aGUgb25lIGdlbmVyaWMgZXhjZXB0IGNv
dWxkIGJlIG1vcmUgc3BlY2lmaWMuCgppbWFwbGliLnB5OiA/Cgpsb2NhbGUucHk6IHNlZW1z
IGxpa2UgdGhlIG9uZSBnZW5lcmljIGV4Y2VwdCBjb3VsZCBiZSBtb3JlIHNwZWNpZmljLgoK
b3MucHk6IGd1YXJkcyBhIGNhbGxlci1wcm92aWRlZCBmdW5jdGlvbiBpbiBfc3Bhd252ZWYg
LSBwcm9iYWJseSBoYXMgdG8gYmUKICAgICAgIGdlbmVyaWMuCgpwZGIucHk6IHNldmVyYWwg
Z2VuZXJpYyBleGNlcHRzIHNlZW0gbGlrZSBvcyBhbmQgYmRiLCBuZWVkcyB0byByZWNvdmVy
IGZyb20KCWVycm9ycyBpbiB1c2VyLXByb3ZpZGVkIGNvZGUuICBPdGhlcnMgc2VlbSBsaWtl
IHRoZXkgY291bGQgYmUgbWFkZQoJbW9yZSBzcGVjaWZpYy4KCnBvcGVuMi5weTogdGhlIG9u
ZSBleGNlcHQ6IGlzIGluIHRlc3QgY29kZS4KCnBzdGF0cy5weTogdGhlcmUgaGFzIHRvIGJl
IGEgYmV0dGVyIHdheSB0byB0ZXN0IGZvciB1bml4Li4uCgpweWNsYnIucHk6IG9ubHkgZ3Vh
cmRzIHR3byBjYWxscyB0byByZWFkbW9kdWxlX2V4IC0gc2hvdWxkIGJlIGFibGUKCSAgIHRv
IGlkZW50aWZ5IHdoYXQgZXhjZXB0aW9ucyBtaWdodCBiZSByYWlzZWQuCgpweWRvYy5weTog
c29tZSBndWFyZCBnZW5lcmljIGNvZGUgbGlrZSByZXByKCksIG90aGVycyBzZWVtIGxpa2Ug
dGhlIHBvc3NpYmxlCgkgIGV4Y2VwdGlvbnMgcmFpc2VkIHNob3VsZCBiZSBwcmV0dHkgc3Bl
Y2lmaWMuCgpyZXByLnB5OiBndWFyZHMgcmFuZG9tIGNvZGUuCgpyZXhlYy5weTogZ3VhcmRz
IHJhbmRvbSBjb2RlLgoKc2hlbHZlLnB5OiBwcmVzdW1hYmx5IGRpY3QncyBjbG9zZSgpIHJv
dXRpbmUgY291bGQgcmFpc2UgYW55dGhpbmcsIHNpbmNlCgkgICBpdCdzIGltcGxlbWVudGVk
IGluIGEgc3ViY2xhc3MuCgpzaHV0aWwucHk6IGd1YXJkcyBjb2RlIHRoYXQgb25seSBleGVj
dXRlcyBvcy5yZW1vdmUgb3Igb3Mucm1kaXIuICBTaG91bGQKCSAgIHByb2JhYmx5IGJlIG1v
cmUgc3BlY2lmaWMuCgp0ZW1wZmlsZS5weTogc2hvdWxkIHByb2JhYmx5IGJlIG1hZGUgbW9y
ZSBzcGVjaWZpYy4gIE9ubHkgZ3VhcmRzIG9zLnVubGluawoJICAgICBhbmQgb3MuZmRvcGVu
IGNhbGxzLgoKdGhyZWFkaW5nLnB5OiBJIFRydXN0IFRpbS4KCnRyYWNlYmFjay5weTogZ3Vh
cmRzIGEgY2FsbCB0byBzdHIodmFsdWUpIHdoZXJlIHZhbHVlIGlzIGEgcmVhc29uYWJseQoJ
ICAgICAgd2VsbC1rbm93biBvYmplY3Qgc3VjaCBhcyBzeXMuZXhjX2luZm8oKVsxXS4gIENv
dWxkIHByb2JhYmx5CgkgICAgICB0aWdodGVuIHVwLgoKdW5pdHRlc3QucHk6IGd1YXJkcyB3
aGF0IGxvb2tzIGxpa2UgY291bGQgYmUgcmFuZG9tIGNvZGUuCgp6aXBmaWxlLnB5OiBsb29r
cyBsaWtlIGl0IHNob3VsZCBiZSAiZXhjZXB0IChCYWRaaXBGaWxlLCBSdW50aW1lRXJyb3Ip
OiIuLi4KCmN1cnNlcy93cmFwcGVyLnB5OiBvdXRlciBleGNlcHQ6IGxvb2tzIG9rYXkgLSBp
bm5lciBzaG91bGQgcHJvYmFibHkgYmUgbW9yZQoJCSAgIHNwZWNpZmljLgoKZGlzdHV0aWxz
L2NvcmUucHk6IGhhcyAiZXhjZXB0OiByYWlzZSIgd2hpY2ggc2hvdWxkIHByb2JhYmx5IGp1
c3QgYmUKCQkgICBkZWxldGVkLgoKeG1sL3NheC9leHBhdHJlYWRlci5weTogPwoKcGxhdC1v
czJlbXgvZ3JwLnB5OiBjYW4ndCB0aGlzIGp1c3QgYmUgImV4Y2VwdCBJT0Vycm9yOiI/Cgpw
bGF0LW9zMmVteC9wd2QucHk6IGRpdHRvLgoKY2dpdGIucHk6IGdpdmUgaXQgdGhlIGJlbmVm
aXQgb2YgdGhlIGRvdWJ0IC0gaGFzIHRvIHdvcmsgaW4ganVzdCBhYm91dCBhbnkKCSAgc2l0
dWF0aW9uLgoKU2ltcGxlWE1MUlBDU2VydmVyLnB5OiBsb29rcyBsaWtlIGl0IGd1YXJkcyBy
YW5kb20gY29kZS4K
--cbZEu+XcE7--