I'm looking at behavior in ActiveState's Python which looks suspiciously
like a bug. I've got a number of steps before I'm ready to file a real
bug report (I'm a minor release behind (2.5.1.1), for one thing, so I'll
need to test with the latest release, and creating a repro case for this
one won't be trivial), but I'd like to do a little reality check here on
the listserv before I plow ahead.
Boiling the code down to its essentials, and with a few debugging output
statements thrown in, what we have looks something like this:
import sys, shelve, ...
class ClinicalTrial: ....
class Batch:
def __init__(self, ...):
self.trials = []
batches = shelve.open("batches")
documentIds = assembleSomeDocumentIds(...)
for docId in documentIds:
clinicalTrial = ClinicalTrial(docId)
if clinicalTrial.email not in batches:
batch = Batch(...)
else:
batch = batches[clinicalTrial.email]
batch.append(clinicalTrial)
sys.stderr.write("about to replace batch\n")
try:
batches[clinicalTrial.email] = batch
except Exception, e:
sys.stderr.write("bailing: %s\n" % e)
sys.stderr.write("done replacing batch\n")
....
The script gets through fewer than a couple dozen iterations through the
loop (if it ran to completion it would be several thousand iterations),
then just stops. No exception thrown, no indication whatsoever that an
error has occurred, nothing. The two expected stderr messages get
written for each iteration through the loop until the last time, when it
writes the "about to replace batch" message and then just disappears
into thin air. Never see the accompanying "done replacing ..." message,
nor the "bailing ..." message. This can't possibly be anything but a
bug in the Python engine, can it? I can't think of any other logical
explanation. Just to preempt one suggestion - I do make sure I don't
have any garbage laying around in the shelve file between runs (though
even if I didn't do that, it surely wouldn't be acceptable for Python to
just slip through a hole in the floor).
--
Bob Kline
http://www.rksystems.com
mailto:[EMAIL PROTECTED]
_______________________________________________
ActivePython mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython