Inline > 1.) Why are you removing the .pyc file?
After I had run the script once and subsequently changed the class file, I would run the script again, and it would use the pyc file from the older revision of the script. I got frustrated with having to manually delete the pyc file before rerunning the script after every edit, so I built it in. > 2.) Reading lines from a file is better done like so: > > arrLines = open('datafiles/'+filename+'.tabdata').readlines() > > and the 'r' flag is the default, you can omit it. I know. In fact, this was the original code. However, I have read in many places that if the file is *massive*, which is true in my case, it is far more efficient to use the line-by-line implicit method I used. On a decent machine it doesn't really make a noticeable difference, but some of the ".tabdata" files I'm parsing are > 20MB plain text, so I figured that warranted the alternative approach. > 3.) You can create the Test instances like so: > > arrTests = [Test() for i in range(cntTests)] Figures. I'm overzealous with the list comprehensions below, and totally ignorant of them here... > 4.) You don't need "saveout = sys.stdout", sys.__stdout__ is already > this. Cool. > 5.) In "check = 0.6 * float(depth)" the call to float is redundant and > can be eliminated. Understood. > 6.) In "sumx = sum([x[0] for x in self.data])", etc.. you can leave out > the []'s. There's no need to create a list, the ()'s in the call to > sum() suffice to make a generator comprehension. That I didn't know, and I'm glad I do now. > > FWIW, if you're still having trouble later I'll try to take another > look at your code. Print statements and debuggers are your friends, > and John Machin's advice seems good to me. > > Peace, > ~Simon Thanks to John M's debugging code I was led to the source of my problems, or so it seems. I'll post a follow up from work tomorrow (EDT) stating whether or not the issue has been completely resolved. Thank you both very much. Aside -- John M, I realized what you meant about splitting the code between the class and the processing file. At first it seemed intuitive, but stepping back, it doesn't really make sense that a test would be able to analyze and take an inventory of *itself*. I think I'm going to reorganize the code such that the Test class does nothing but provide a barebones data structure with which to work. And regarding the file separation, it's totally personal preference. It scales well, at least. Another Aside -- Does anybody see any major bottlenecks in the code? I'd like to be able to speed up the program considerably. Psyco was really no help. Again, thanks -- http://mail.python.org/mailman/listinfo/python-list