[Python-Dev] Breaking bug #411881 into manageable pieces (original) (raw)

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--