From katel at worldpath.net Sun Apr 8 01:32:44 2001 From: katel at worldpath.net (Cayte) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] EOL blues References: <00aa01c0b8e3$f59762c0$8295fc9e@josiah> <15045.13682.530560.511561@taxus.athen1.ga.home.com> Message-ID: <002701c0bfed$57bafb00$010a0a0a@cadence.com> My Kabat data files are in Windows format. The engine seems to be getting out of sync with the two character line feed. I reached this conclusion after poring over the data files, a hex binary dump of the files and the test results and the test output with debug level set to 2. Unfortunately, I can't come up with a more user friendly way to visualize it. But I'll send it to Andrew or Brad if they have an hour or two on a rainy April day. Maybe the next step is to convert the data file to Unix format. Cayte From dalke at acm.org Mon Apr 9 02:27:01 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] Martel in CVS Message-ID: <3AD15635.F54C3395@acm.org> Getting there. I'm able to dialup and get my linux machine talking to CVS on biopython.org. I even have a little program to set up the SSH connection so once I'm connected I can do CVS over it without it asking for a password every time. Want to make sure about the configuration before I do the final commit. As I recall we said that - Martel is a sibling to Bio - Martel should be able to be distributed w/ or w/o the read of biopython - Biopython should allow distributions w/ or w/o Martel, as determined by a flag Brad added to setup.py There are some things I need to do to make things integrate nicely. Martel needs its own setup.py for independent distribution. I assume it should be independent from the main setup.py (that is, there will be a Martel/setup.py). I'm planning to move the format definitions to biopython proper, and pull most (all?) of them out of Martel/formats. Where should they go? It looks like they will be scattered about, so they go into the directory associated with that datatype. Where do the tests go? There are two types of tests. Some are integral to Martel and should stay with a Martel distribution. Others are related to the formats. I'm thinking of putting the format tests under Tests, which would only contain tests related to syntax matching like Martel already has. The problem there would be in upping the namespace pollution of putting all the tests in one spot. But we've only a couple dozen so far so it isn't a serious problem. I'm going to make all the core Martel tests use the Python 2.1 unittest and the other biopython tests (in Test) use Test/unittest.py. I hope they aren't too different. Where should the documentation go? I think it's okay to leave it in Martel/doc since nearly everything that is there is specific to Martel the parser, and not the format definitions for biopython. I will scatter the files in the Martel/builders/ directory to the appropriate parts of biopython. This all means there will be two different ways to parse the same data files. How should that changeover be managed, since the two styles of processing are somewhat different? Andrew dalke@acm.org From dalke at acm.org Mon Apr 9 02:27:21 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] generic format reader interface Message-ID: <3AD15649.B90A36B8@acm.org> We've been putting the different formats under Bio/*. Bioperl makes things available through a standard interface at Bio::IO. I like the biopython way since I think that's the only way to capture everything a database might do, but I also see the need for a centralized way to do I/O. What I'm thinking of is a centralized registry, which let you specify: - input data type (some unique string, like "swissprot version='38'" or a tuple like ("swissprot", "38") ) - requested record type (another unique stream, like "Seq" or "SProt") This function would return an iterator for that input and output type. For example: iterator = Bio.IO.parseFile(open("sprot.dat"), input="swissprot", record="Seq") while 1: record = iterator.next() if record is None: break ... work with the Seq record ... Not sure of the details now, but by using this sort of interface allows resolution to the best parser available for that need. Eg, it could be something which reads the record into a SProt then converts the Sprot to a Seq, or it could go directly from the record to a Seq, if someone wants to write the appropriate specialization. What would be really nice is if the API had the ability to allow something like iterator = Bio.IO.parseFile(open("sprot.dat"), input="swissprot", record="fasta") and have this return each record as the FASTA formatted string, and work either because: - there is a swissprot -> FASTA string builder directly or - there is a swissprot -> Seq builder and a Seq -> FASTA converter Still thinking about it. Andrew From jchang at SMI.Stanford.EDU Mon Apr 9 02:43:21 2001 From: jchang at SMI.Stanford.EDU (Jeffrey Chang) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] generic format reader interface In-Reply-To: <3AD15649.B90A36B8@acm.org> Message-ID: On Mon, 9 Apr 2001, Andrew Dalke wrote: > We've been putting the different formats under Bio/*. Bioperl > makes things available through a standard interface at Bio::IO. > I like the biopython way since I think that's the only way to > capture everything a database might do, but I also see the need > for a centralized way to do I/O. In keeping with the current philosophy, I'd like to keep the formats separate. This would allow people interested in a particular package to look for all the code under one place. That is, I should be able to find all the SWISS-PROT stuff (or as much as possible) under the SwissProt directory, rather that looking under SwissProt, SeqIO, etc etc etc. That said, you're right in that having a centralized mechanism for I/O is very useful. I recall reading on the bioperl list somewhere that a user thought it was the most valuable part of the package. It's convenient, easy to understand. However, keeping things separate doesn't preclude a centralized I/O mechanism. It just means that you have to write wrappers in SeqIO that understands where the rest of the code is. It's an extra layer of stuff to write, but well worth it, IMHO. > What I'm thinking of is a centralized registry, which let you > specify: > - input data type (some unique string, like "swissprot version='38'" > or a tuple like ("swissprot", "38") ) > - requested record type (another unique stream, like "Seq" or > "SProt") > > This function would return an iterator for that input and output > type. For example: > > iterator = Bio.IO.parseFile(open("sprot.dat"), input="swissprot", > record="Seq") > > while 1: > record = iterator.next() > if record is None: > break > ... work with the Seq record ... > > Not sure of the details now, but by using this sort of interface > allows resolution to the best parser available for that need. Eg, > it could be something which reads the record into a SProt then > converts the Sprot to a Seq, or it could go directly from the > record to a Seq, if someone wants to write the appropriate > specialization. > > What would be really nice is if the API had the ability to allow > something like > > iterator = Bio.IO.parseFile(open("sprot.dat"), input="swissprot", > record="fasta") > > and have this return each record as the FASTA formatted string, > and work either because: > - there is a swissprot -> FASTA string builder directly > or > - there is a swissprot -> Seq builder and a Seq -> FASTA converter The first would be nice, so that we could preserve information that's not storable cleanly in the Seq object. However, I worry about the N**2-number-of-converters problem. Do you have some ideas of working around that? Jeff > > Still thinking about it. > > Andrew > _______________________________________________ > Biopython-dev mailing list > Biopython-dev@biopython.org > http://biopython.org/mailman/listinfo/biopython-dev > From jchang at SMI.Stanford.EDU Mon Apr 9 02:58:35 2001 From: jchang at SMI.Stanford.EDU (Jeffrey Chang) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] Martel in CVS In-Reply-To: <3AD15635.F54C3395@acm.org> Message-ID: > Want to make sure about the configuration before I do the > final commit. As I recall we said that > - Martel is a sibling to Bio Do you mean that "Bio" and "Martel" live in the same namespace? If so, that sounds fine to me. > - Martel should be able to be distributed w/ or w/o the read of > biopython Definitely. > - Biopython should allow distributions w/ or w/o Martel, as determined > by a flag Brad added to setup.py Sure. However, I think that by 1.0 is released, Martel will be a bona-fide requirement. Biopython will be usable without Martel, but won't be a lot of fun (like Windows without a mouse). > There are some things I need to do to make things integrate nicely. > > Martel needs its own setup.py for independent distribution. I > assume it should be independent from the main setup.py (that is, > there will be a Martel/setup.py). Yes. > I'm planning to move the format definitions to biopython proper, > and pull most (all?) of them out of Martel/formats. Where > should they go? It looks like they will be scattered about, > so they go into the directory associated with that datatype. Covered in previous email. > Where do the tests go? There are two types of tests. Some are > integral to Martel and should stay with a Martel distribution. > Others are related to the formats. I'm thinking of putting > the format tests under Tests, which would only contain tests > related to syntax matching like Martel already has. The > problem there would be in upping the namespace pollution of > putting all the tests in one spot. But we've only a couple > dozen so far so it isn't a serious problem. > > I'm going to make all the core Martel tests use the Python 2.1 > unittest and the other biopython tests (in Test) use > Test/unittest.py. I hope they aren't too different. Yes, me too. Biopython will not require Python 2.1 for some time from now. Can we use the Python 2.1 unittest in biopython? This would make the migration easier when it happens, and it sounds like it would make your work easier too. > Where should the documentation go? I think it's okay to > leave it in Martel/doc since nearly everything that is there > is specific to Martel the parser, and not the format definitions > for biopython. Sounds good. > I will scatter the files in the Martel/builders/ directory > to the appropriate parts of biopython. > > This all means there will be two different ways to parse > the same data files. How should that changeover be managed, > since the two styles of processing are somewhat different? Will this change the API, or can we just change the code out from under the current Parser and Iterator classes? If the API needs to change, we should do this sooner rather than later, and definitely before 1.0 is released. In fact, we won't release 1.0 until there are no planned API changes. Jeff > Andrew > dalke@acm.org > _______________________________________________ > Biopython-dev mailing list > Biopython-dev@biopython.org > http://biopython.org/mailman/listinfo/biopython-dev > From dalke at acm.org Mon Apr 9 14:00:43 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] generic format reader interface Message-ID: <008b01c0c122$bf6fd500$0301a8c0@josiah> Jeff: >In keeping with the current philosophy, I'd like to keep the formats >separate. I agree. It works with bioperl since they convert the different formats into a generic object, so putting all the I/O in one spot is fine. >However, I worry about the >N**2-number-of-converters problem. It's only N**2 if you want to be as preserving as possible or as fast as possible. Otherwise, if there is an intermediate format which holds the needed data then it reduces to 2*N converters. That's what bioperl does, but I'm not convinced it stores all of the data. Plus, if you really want performance (eg, with conversion to FASTA) then you loose by going through an extra layer. > Do you have some ideas of working around that? Some. I'm thinking of a registry of builders and converters. If the requested transformation exists (eg, swissprot input to SProt objects) then that is returned, else it can look at the 1- or 2- step conversions needed to go from X to Y. The idea feels right, but I haven't figured out the details. I present it here in the hope that others have ideas. Andrew dalke@acm.org From dalke at acm.org Mon Apr 9 14:19:40 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] Martel in CVS Message-ID: <008c01c0c122$c11372e0$0301a8c0@josiah> Jeff: >Do you mean that "Bio" and "Martel" live in the same namespace? If so, >that sounds fine to me. Yep. I believe that was what we agreed upon. [Tests/unittest.py vs. unittest.py in Python 2.1] >Yes, me too. Biopython will not require Python 2.1 for some time from >now. Can we use the Python 2.1 unittest in biopython? This would make >the migration easier when it happens, and it sounds like it would make >your work easier too. Actually, yes, it would. Brad? Did you get the unittest.py from the Python 2.1 distribution or the original code from which it was based? >> This all means there will be two different ways to parse >> the same data files. How should that changeover be managed, >> since the two styles of processing are somewhat different? > >Will this change the API, or can we just change the code out from under >the current Parser and Iterator classes? If the API needs to change, we >should do this sooner rather than later, and definitely before 1.0 is >released. In fact, we won't release 1.0 until there are no planned API >changes. It might, or we can have two ways to read files. I (with you it seems) prefer making all the changes now and have a single API but I don't think that's possible. What I'm concerned with is the API differences between Iterator, Parser, etc. in biopython and the Martel way. I haven't spent the time to figure out the best way to unite them. I don't want to scrap the existing interface in favor of a Martel style because there are some formats that Martel cannot handle (eg, context free ones) and because it is hard to retrofit most existing parsers to become event driven). So I'll look to see what can be done to replace the code from underneath Parser and Iterator. This is the style Cayte's used, and it looks like Brad as well. The problems are that 1) I need to learn this API better and 2) time. The time comes in because I don't have support for all of the formats Biopython currently handles, so there may be a time when things are unstable. I cannot predict how much effort that will take, so there will be a transformation period when things are part one and part the other. My thoughts are to go slowly. Put Martel in without any of the parsers, then change and test each new format one by one. Still, the layer under Parser/Iterator must be accessible to others because some format definitions are shared by multiple databases and because Martel has the ability to do some optimizations. Andrew dalke@acm.org From dalke at acm.org Mon Apr 9 17:22:17 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] generic format reader interface Message-ID: <016901c0c13b$2d1424e0$0301a8c0@josiah> Me: >The idea feels right, but I haven't figured out the details. >I present it here in the hope that others have ideas. And upon further reflection, I can't go any farther without working code upon which to build, so I'll keep it as a goal for which to strive. Andrew From dalke at acm.org Wed Apr 11 20:18:06 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] language war Message-ID: <000501c0c2e6$0f989b60$0301a8c0@josiah> Now here's fight'n words from http://www.biolisp.org/biolinks.html :) > Python is approximately Lisp re-invented by folks who > apparently understood neither CONS, nor the importance > and elegance of Lisp syntax! Spoken by someone who doesn't understand O(1) lookup nor the importance and readability of Python syntax! Andrew dalke@acm.org From dalke at acm.org Wed Apr 11 20:21:57 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] language war Message-ID: <01aa01c0c2e6$9906cc00$0301a8c0@josiah> Oops. Forgot to put a lot of smilies on the end of that message. :) :) :) :) :) :) :) :) Andrew From jchang at SMI.Stanford.EDU Wed Apr 11 20:37:27 2001 From: jchang at SMI.Stanford.EDU (Jeffrey Chang) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] language war In-Reply-To: <000501c0c2e6$0f989b60$0301a8c0@josiah> Message-ID: Here's a python quote for Peter Norvig, someone who does understand CONS and the importance and elegance of LISP syntax: "Python has the philosophy of making sensible compromises that make the easy things very easy, and don't preclude too many hard things. In my opinion it does a very good job. The easy things are easy, the harder things are progressively harder, and you tend not to notice the inconsistencies. Lisp has the philosophy of making fewer compromises: of providing a very powerful and totally consistent core. This can make Lisp harder to learn because you operate at a higher level of abstraction right from the start and because you need to understand what you're doing, rather than just relying on what feels or looks nice. But it also means that in Lisp it is easier to add levels of abstraction and complexity; Lisp makes the very hard things not too hard." from http://www.norvig.com/python-lisp.html Jeff On Wed, 11 Apr 2001, Andrew Dalke wrote: > Now here's fight'n words from > http://www.biolisp.org/biolinks.html :) > > > Python is approximately Lisp re-invented by folks who > > apparently understood neither CONS, nor the importance > > and elegance of Lisp syntax! > > Spoken by someone who doesn't understand O(1) lookup nor > the importance and readability of Python syntax! > > Andrew > dalke@acm.org > > > _______________________________________________ > Biopython-dev mailing list > Biopython-dev@biopython.org > http://biopython.org/mailman/listinfo/biopython-dev > From chapmanb at arches.uga.edu Thu Apr 12 18:11:57 2001 From: chapmanb at arches.uga.edu (Brad Chapman) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] Regression Test problem Message-ID: wankyu kim wrote in bug 27: > I've tested by executing "python setup.py test" > there was no error message in GUI box. It seemed biopython works well. > but when I executed "python br_regrtest.py" in the Tests directory, > there was error with test_gobase, test_rebase and test_unigene. > > the error message was all the same. > "Writing : '\012', expected: '\015' > > It seem it could not be able to discriminate "new line" and "end of > file" Hello -- thanks for writing. br_regrtest.py is actually the old regression testing mechanism. The new mechanism, which uses PyUnit, is now called "run_tests.py" (and is located in the Tests directory). This is the regression test program that running "python setup.py test" actually runs. We wrote run_tests.py and moved away from br_regrtest.py precisely because of the problems we were having with newlines from different platforms. So, biopython works fine -- it is br_regrtest.py which has problems. Sorry about the confusion. BTW, there is documentation available at: http://biopython.org/wiki/html/BioPython/BiopythonCode.html which mentions some of this in the FAQ. Thanks again for the message. Hope you enjoy biopython. Brad From biopython-bugs at bioperl.org Sun Apr 15 18:53:50 2001 From: biopython-bugs at bioperl.org (biopython-bugs@bioperl.org) Date: Sat Mar 5 14:42:58 2005 Subject: [Biopython-dev] Notification: incoming/21 Message-ID: <200104152253.f3FMro227571@pw600a.bioperl.org> JitterBug notification chapmanb moved PR#21 from incoming to trash Message summary for PR#21 From: jchang@smi.stanford.edu Subject: testing email notification Date: Mon, 19 Feb 2001 19:35:36 -0500 0 replies 0 followups ====> ORIGINAL MESSAGE FOLLOWS <==== >From jchang@smi.stanford.edu Mon Feb 19 19:35:36 2001 Received: from localhost (localhost [127.0.0.1]) by pw600a.bioperl.org (8.11.2/8.11.2) with ESMTP id f1K0ZaS14921 for ; Mon, 19 Feb 2001 19:35:36 -0500 Date: Mon, 19 Feb 2001 19:35:36 -0500 Message-Id: <200102200035.f1K0ZaS14921@pw600a.bioperl.org> From: jchang@smi.stanford.edu To: biopython-bugs@bioperl.org Subject: testing email notification Full_Name: Jeffrey Chang Module: jitterbug Version: current (2/19/01) OS: Netscape Submission from: riboweb.stanford.edu (171.65.32.79) Is this bug being sent out on biopython-dev? It should be... From biopython-bugs at bioperl.org Sun Apr 15 18:53:51 2001 From: biopython-bugs at bioperl.org (biopython-bugs@bioperl.org) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/25 Message-ID: <200104152253.f3FMrp227586@pw600a.bioperl.org> JitterBug notification chapmanb moved PR#25 from incoming to trash Message summary for PR#25 From: jchang@smi.stanford.edu Subject: another test of jitterbug auto-notification Date: Mon, 12 Mar 2001 01:08:04 -0500 0 replies 0 followups ====> ORIGINAL MESSAGE FOLLOWS <==== >From jchang@smi.stanford.edu Mon Mar 12 01:08:04 2001 Received: from localhost (localhost [127.0.0.1]) by pw600a.bioperl.org (8.11.2/8.11.2) with ESMTP id f2C684220901 for ; Mon, 12 Mar 2001 01:08:04 -0500 Date: Mon, 12 Mar 2001 01:08:04 -0500 Message-Id: <200103120608.f2C684220901@pw600a.bioperl.org> From: jchang@smi.stanford.edu To: biopython-bugs@bioperl.org Subject: another test of jitterbug auto-notification Full_Name: Jeffrey Chang Module: Jitterbug Version: 3/11/2001 OS: netscape Submission from: c1128134-a.stcla1.sfba.home.com (24.176.209.55) Hi! I've implemented Brad's suggestion. Does everyone on the biopython-dev list see this? (Please don't email me back!) From biopython-bugs at bioperl.org Sun Apr 15 18:53:53 2001 From: biopython-bugs at bioperl.org (biopython-bugs@bioperl.org) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/26 Message-ID: <200104152253.f3FMrr227601@pw600a.bioperl.org> JitterBug notification chapmanb moved PR#26 from incoming to trash Message summary for PR#26 From: jchang@smi.stanford.edu Subject: yet another jitterbug test Date: Wed, 14 Mar 2001 00:17:56 -0500 0 replies 0 followups ====> ORIGINAL MESSAGE FOLLOWS <==== >From jchang@smi.stanford.edu Wed Mar 14 00:17:56 2001 Received: from localhost (localhost [127.0.0.1]) by pw600a.bioperl.org (8.11.2/8.11.2) with ESMTP id f2E5Hp215465 for ; Wed, 14 Mar 2001 00:17:56 -0500 Date: Wed, 14 Mar 2001 00:17:56 -0500 Message-Id: <200103140517.f2E5Hp215465@pw600a.bioperl.org> From: jchang@smi.stanford.edu To: biopython-bugs@bioperl.org Subject: yet another jitterbug test Full_Name: Jeffrey Chang Module: jitterbug Version: whatever OS: Submission from: c1128134-a.stcla1.sfba.home.com (24.176.209.55) I'm testing the jitterbug auto-notification. Please ignore this. Thanks! Jeff From biopython-bugs at bioperl.org Sun Apr 15 18:53:55 2001 From: biopython-bugs at bioperl.org (biopython-bugs@bioperl.org) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/28 Message-ID: <200104152253.f3FMrt227616@pw600a.bioperl.org> JitterBug notification chapmanb moved PR#28 from incoming to trash Message summary for PR#28 From: yourstruely@hkg.net Subject: toner supplies Date: Sat, 14 Apr 01 14:42:23 EST 0 replies 0 followups ====> ORIGINAL MESSAGE FOLLOWS <==== >From yourstruely@hkg.net Sat Apr 14 15:50:18 2001 Received: from brixton.com ([139.93.128.25]) by pw600a.bioperl.org (8.11.2/8.11.2) with ESMTP id f3EJoD217722; Sat, 14 Apr 2001 15:50:18 -0400 Received: from 139.93.128.25 (rsvp-208-187-151-63.ac05.dlls.eli.net [208.187.151.63]) by brixton.com (8.8.8/8.8.7) with SMTP id PAA04214; Sat, 14 Apr 2001 15:47:07 -0400 (EDT) From: yourstruely@hkg.net Message-Id: <200104141947.PAA04214@brixton.com> To: handyandy@republic.com Date: Sat, 14 Apr 01 14:42:23 EST Subject: toner supplies Reply-To: handyandy@republic.com PLEASE FORWARD TO THE PERSON RESPONSIBLE FOR PURCHASING YOUR LASER PRINTER SUPPLIES **** VORTEX SUPPLIES **** -SPECIALS OF THE DAY ON LASER TONER SUPPLIES AT DISCOUNT PRICES-- LASER PRINTER TONER CARTRIDGES COPIER AND FAX CARTRIDGES WE ARE -->THE<-- PLACE TO BUY YOUR TONER CARTRIDGES BECAUSE YOU SAVE UP TO 30% FROM OFFICE DEPOT'S, QUILL'S OR OFFICE MAX'S EVERY DAY LOW PRICES ORDER BY PHONE:1-888-288-9043 ORDER BY FAX: 1-888-977-1577 CUSTOMER SERVICE: 1-888-248-2015 E-MAIL REMOVAL LINE: 1-888-248-4930 UNIVERSITY AND/OR SCHOOL PURCHASE ORDERS WELCOME. (NO CREDIT APPROVAL REQUIRED) ALL OTHER PURCHASE ORDER REQUESTS REQUIRE CREDIT APPROVAL. PAY BY CHECK (C.O.D), CREDIT CARD OR PURCHASE ORDER (NET 30 DAYS). IF YOUR ORDER IS BY CREDIT CARD PLEASE LEAVE YOUR CREDIT CARD # PLUS EXPIRATION DATE. IF YOUR ORDER IS BY PURCHASE ORDER LEAVE YOUR SHIPPING/BILLING ADDRESSES AND YOUR P.O. NUMBER NO SHIPPING CHARGES FOR ORDERS $49 OR OVER ADD $4.75 FOR ORDERS UNDER $49. C.O.D. ORDERS ADD $4.5 TO SHIPPING CHARGES. FOR THOSE OF YOU WHO REQUIRE MORE INFORMATION ABOUT OUR COMPANY INCUDING FEDERAL TAX ID NUMBER, CLOSEST SHIPPING OR CORPORATE ADDRESS IN THE CONTINENTAL U.S. OR FOR CATALOG REQUESTS PLEASE CALL OUR CUSTOMER SERVICE LINE 1-888-248-2015 OUR NEW , LASER PRINTER TONER CARTRIDGE, PRICES ARE AS FOLLOWS: (PLEASE ORDER BY PAGE NUMBER AND/OR ITEM NUMBER) HEWLETT PACKARD: (ON PAGE 2) ITEM #1 LASERJET SERIES 4L,4P (74A)------------------------$44 ITEM #2 LASERJET SERIES 1100 (92A)-------------------------$44 ITEM #3 LASERJET SERIES 2 (95A)-------------------------------$39 ITEM #4 LASERJET SERIES 2P (75A)-----------------------------$54 ITEM #5 LASERJET SERIES 5P,6P,5MP, 6MP (3903A)--$44 ITEM #6 LASERJET SERIES 5SI, 5000 (29A)------------------$95 ITEM #7 LASERJET SERIES 2100 (96A)-------------------------$74 ITEM #8 LASERJET SERIES 8100 (82X)-----------------------$145 ITEM #9 LASERJET SERIES 5L/6L (3906A0------------------$35 ITEM #10 LASERJET SERIES 4V-------------------------------------$95 ITEM #11 LASERJET SERIES 4000 (27X)-------------------------$72 ITEM #12 LASERJET SERIES 3SI/4SI (91A)--------------------$54 ITEM #13 LASERJET SERIES 4, 4M, 5,5M-----------------------$49 HEWLETT PACKARD FAX (ON PAGE 2) ITEM #14 LASERFAX 500, 700 (FX1)----------$49 ITEM #15 LASERFAX 5000,7000 (FX2)------$54 ITEM #16 LASERFAX (FX3)------------------------$59 ITEM #17 LASERFAX (FX4)------------------------$54 LEXMARK/IBM (ON PAGE 3) OPTRA 4019, 4029 HIGH YIELD---------------$89 OPTRA R, 4039, 4049 HIGH YIELD---------$105 OPTRA E----------------------------------------------------$59 OPTRA N--------------------------------------------------$115 OPTRA S--------------------------------------------------$165 - EPSON (ON PAGE 4) ACTION LASER 7000,7500,8000,9000-------$105 ACTION LASER 1000,1500-------------------------$105 CANON PRINTERS (ON PAGE 5) PLEASE CALL FOR MODELS AND UPDATED PRICES FOR CANON PRINTER CARTRIDGES PANASONIC (0N PAGE 7) NEC SERIES 2 MODELS 90 AND 95----------$105 APPLE (0N PAGE 8) LASER WRITER PRO 600 or 16/600------------$49 LASER WRITER SELECT 300,320,360---------$74 LASER WRITER 300 AND 320----------------------$54 LASER WRITER NT, 2NT------------------------------$54 LASER WRITER 12/640--------------------------------$79 CANON FAX (ON PAGE 9) LASERCLASS 4000 (FX3)---------------------------$59 LASERCLASS 5000,6000,7000 (FX2)---------$54 LASERFAX 5000,7000 (FX2)----------------------$54 LASERFAX 8500,9000 (FX4)----------------------$54 CANON COPIERS (PAGE 10) PC 3, 6RE, 7 AND 11 (A30)---------------------$69 PC 300,320,700,720 and 760 (E-40)--------$89 IF YOUR CARTRIDGE IS NOT LISTED CALL CUSTOMER SERVICE AT 1-888-248-2015 90 DAY UNLIMITED WARRANTY INCLUDED ON ALL PRODUCTS. ALL TRADEMARKS AND BRAND NAMES LISTED ABOVE ARE PROPERTY OF THE RESPECTIVE HOLDERS AND USED FOR DESCRIPTIVE PURPOSES ONLY. From biopython-bugs at bioperl.org Sun Apr 15 19:15:55 2001 From: biopython-bugs at bioperl.org (biopython-bugs@bioperl.org) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/29 Message-ID: <200104152315.f3FNFs228545@pw600a.bioperl.org> JitterBug notification new message incoming/29 Message summary for PR#29 From: Brad Chapman Subject: Re: [Biopython-dev] Notification: incoming/28 Date: Sun, 15 Apr 2001 19:15:49 -0400 0 replies 0 followups ====> ORIGINAL MESSAGE FOLLOWS <==== >From chapmanb@arches.uga.edu Sun Apr 15 19:15:54 2001 Received: from mailgw.cc.uga.edu (mailgw.cc.uga.edu [128.192.1.101]) by pw600a.bioperl.org (8.11.2/8.11.2) with ESMTP id f3FNFr228529 for ; Sun, 15 Apr 2001 19:15:53 -0400 Received: from archa11.cc.uga.edu (arch11.cc.uga.edu) by mailgw.cc.uga.edu (LSMTP for Windows NT v1.1b) with SMTP id <0.0312837C@mailgw.cc.uga.edu>; 15 Apr 2001 19:15:34 -0400 Received: from taxus.athen1.ga.home.com.ci350185-a.athen1.ga.home.com ([24.9.210.117]) by archa11.cc.uga.edu (8.9.1/8.9.1) with ESMTP id TAA39492 for ; Sun, 15 Apr 2001 19:15:52 -0400 From: Brad Chapman MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Message-ID: <15066.11173.275385.256554@taxus.athen1.ga.home.com> Date: Sun, 15 Apr 2001 19:15:49 -0400 To: biopython-bugs@bioperl.org Subject: Re: [Biopython-dev] Notification: incoming/28 In-Reply-To: <200104152253.f3FMrt227616@pw600a.bioperl.org> References: <200104152253.f3FMrt227616@pw600a.bioperl.org> X-Mailer: VM 6.90 under 21.2 (beta18) "Toshima" XEmacs Lucid Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by pw600a.bioperl.org id f3FNFr228529 > JitterBug notification [...snip...] Holy cow! Notification is sort of working! Wow, this is quite unexpected -- I was just moving some junk into the trash (unless Toner supplies are really a bug :-). So this means I was actually on to something with my .notify stuff from before. Anyways, this got me interested in looking at bioperl-bugs again, and I have an idea -- bioperl-bugs also has a website directory with a .notify file pointing to the bioperl-guts list... so, maybe if we add website/.notify with the line 'biopython-dev@biopython.org' we'll get updates any time anything happens on the biopython-bug website. Jeff, o' holder o' priviledges on bioperl.org, do you think we could try this? Maybe we'll actually get notifications now... Just-wishing-and-hoping-ly yr's Brad From chapmanb at arches.uga.edu Sun Apr 15 19:16:55 2001 From: chapmanb at arches.uga.edu (Brad Chapman) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/28 In-Reply-To: <200104152253.f3FMrt227616@pw600a.bioperl.org> References: <200104152253.f3FMrt227616@pw600a.bioperl.org> Message-ID: <15066.11239.685952.43802@taxus.athen1.ga.home.com> > JitterBug notification [...snip...] Holy cow! Notification is sort of working! Wow, this is quite unexpected -- I was just moving some junk into the trash (unless Toner supplies are really a bug :-). So this means I was actually on to something with my .notify stuff from before. Anyways, this got me interested in looking at bioperl-bugs again, and I have an idea -- bioperl-bugs also has a website directory with a .notify file pointing to the bioperl-guts list... so, maybe if we add website/.notify with the line 'biopython-dev@biopython.org' we'll get updates any time anything happens on the biopython-bug website. Jeff, o' holder o' priviledges on bioperl.org, do you think we could try this? Maybe we'll actually get notifications now... Just-wishing-and-hoping-ly yr's Brad From biopython-bugs at bioperl.org Sun Apr 15 19:20:13 2001 From: biopython-bugs at bioperl.org (biopython-bugs@bioperl.org) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/29 Message-ID: <200104152320.f3FNKD229076@pw600a.bioperl.org> JitterBug notification chapmanb changed notes Message summary for PR#29 From: Brad Chapman Subject: Re: [Biopython-dev] Notification: incoming/28 Date: Sun, 15 Apr 2001 19:15:49 -0400 0 replies 0 followups Notes: Woo hoo! Notification via e-mail to biopython-bugs works as well. Okay, this was a stupid way to test it, I admit it :-) ====> ORIGINAL MESSAGE FOLLOWS <==== >From chapmanb@arches.uga.edu Sun Apr 15 19:15:54 2001 Received: from mailgw.cc.uga.edu (mailgw.cc.uga.edu [128.192.1.101]) by pw600a.bioperl.org (8.11.2/8.11.2) with ESMTP id f3FNFr228529 for ; Sun, 15 Apr 2001 19:15:53 -0400 Received: from archa11.cc.uga.edu (arch11.cc.uga.edu) by mailgw.cc.uga.edu (LSMTP for Windows NT v1.1b) with SMTP id <0.0312837C@mailgw.cc.uga.edu>; 15 Apr 2001 19:15:34 -0400 Received: from taxus.athen1.ga.home.com.ci350185-a.athen1.ga.home.com ([24.9.210.117]) by archa11.cc.uga.edu (8.9.1/8.9.1) with ESMTP id TAA39492 for ; Sun, 15 Apr 2001 19:15:52 -0400 From: Brad Chapman MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Message-ID: <15066.11173.275385.256554@taxus.athen1.ga.home.com> Date: Sun, 15 Apr 2001 19:15:49 -0400 To: biopython-bugs@bioperl.org Subject: Re: [Biopython-dev] Notification: incoming/28 In-Reply-To: <200104152253.f3FMrt227616@pw600a.bioperl.org> References: <200104152253.f3FMrt227616@pw600a.bioperl.org> X-Mailer: VM 6.90 under 21.2 (beta18) "Toshima" XEmacs Lucid Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by pw600a.bioperl.org id f3FNFr228529 > JitterBug notification [...snip...] Holy cow! Notification is sort of working! Wow, this is quite unexpected -- I was just moving some junk into the trash (unless Toner supplies are really a bug :-). So this means I was actually on to something with my .notify stuff from before. Anyways, this got me interested in looking at bioperl-bugs again, and I have an idea -- bioperl-bugs also has a website directory with a .notify file pointing to the bioperl-guts list... so, maybe if we add website/.notify with the line 'biopython-dev@biopython.org' we'll get updates any time anything happens on the biopython-bug website. Jeff, o' holder o' priviledges on bioperl.org, do you think we could try this? Maybe we'll actually get notifications now... Just-wishing-and-hoping-ly yr's Brad From biopython-bugs at bioperl.org Sun Apr 15 19:20:15 2001 From: biopython-bugs at bioperl.org (biopython-bugs@bioperl.org) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/29 Message-ID: <200104152320.f3FNKF229091@pw600a.bioperl.org> JitterBug notification chapmanb moved PR#29 from incoming to trash Message summary for PR#29 From: Brad Chapman Subject: Re: [Biopython-dev] Notification: incoming/28 Date: Sun, 15 Apr 2001 19:15:49 -0400 0 replies 0 followups Notes: Woo hoo! Notification via e-mail to biopython-bugs works as well. Okay, this was a stupid way to test it, I admit it :-) ====> ORIGINAL MESSAGE FOLLOWS <==== >From chapmanb@arches.uga.edu Sun Apr 15 19:15:54 2001 Received: from mailgw.cc.uga.edu (mailgw.cc.uga.edu [128.192.1.101]) by pw600a.bioperl.org (8.11.2/8.11.2) with ESMTP id f3FNFr228529 for ; Sun, 15 Apr 2001 19:15:53 -0400 Received: from archa11.cc.uga.edu (arch11.cc.uga.edu) by mailgw.cc.uga.edu (LSMTP for Windows NT v1.1b) with SMTP id <0.0312837C@mailgw.cc.uga.edu>; 15 Apr 2001 19:15:34 -0400 Received: from taxus.athen1.ga.home.com.ci350185-a.athen1.ga.home.com ([24.9.210.117]) by archa11.cc.uga.edu (8.9.1/8.9.1) with ESMTP id TAA39492 for ; Sun, 15 Apr 2001 19:15:52 -0400 From: Brad Chapman MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Message-ID: <15066.11173.275385.256554@taxus.athen1.ga.home.com> Date: Sun, 15 Apr 2001 19:15:49 -0400 To: biopython-bugs@bioperl.org Subject: Re: [Biopython-dev] Notification: incoming/28 In-Reply-To: <200104152253.f3FMrt227616@pw600a.bioperl.org> References: <200104152253.f3FMrt227616@pw600a.bioperl.org> X-Mailer: VM 6.90 under 21.2 (beta18) "Toshima" XEmacs Lucid Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by pw600a.bioperl.org id f3FNFr228529 > JitterBug notification [...snip...] Holy cow! Notification is sort of working! Wow, this is quite unexpected -- I was just moving some junk into the trash (unless Toner supplies are really a bug :-). So this means I was actually on to something with my .notify stuff from before. Anyways, this got me interested in looking at bioperl-bugs again, and I have an idea -- bioperl-bugs also has a website directory with a .notify file pointing to the bioperl-guts list... so, maybe if we add website/.notify with the line 'biopython-dev@biopython.org' we'll get updates any time anything happens on the biopython-bug website. Jeff, o' holder o' priviledges on bioperl.org, do you think we could try this? Maybe we'll actually get notifications now... Just-wishing-and-hoping-ly yr's Brad From jchang at SMI.Stanford.EDU Sun Apr 15 19:30:23 2001 From: jchang at SMI.Stanford.EDU (Jeffrey Chang) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/28 In-Reply-To: <15066.11239.685952.43802@taxus.athen1.ga.home.com> Message-ID: Hi Brad, I think the website directory is because bioperl has a directory where they stored the bugs for their website. We have a .notify file in the incoming box (I think you suggested it!), so every time we make changes to the incoming bugs, they get sent to the website. Chris, do you know how we can get notification when people submit anonymous bug reports to Jitterbug? New bug reports aren't getting sent to biopython-dev. They haven't been for a while (6 months at least), and we've never quite figured out why. Thanks, Jeff On Sun, 15 Apr 2001, Brad Chapman wrote: > > JitterBug notification > [...snip...] > > Holy cow! Notification is sort of working! Wow, this is quite > unexpected -- I was just moving some junk into the trash (unless Toner > supplies are really a bug :-). So this means I was actually on to > something with my .notify stuff from before. > > Anyways, this got me interested in looking at bioperl-bugs again, and > I have an idea -- bioperl-bugs also has a website directory with a > .notify file pointing to the bioperl-guts list... so, maybe if we add > website/.notify with the line 'biopython-dev@biopython.org' we'll get > updates any time anything happens on the biopython-bug website. > > Jeff, o' holder o' priviledges on bioperl.org, do you think we could > try this? Maybe we'll actually get notifications now... > > Just-wishing-and-hoping-ly yr's > Brad > > _______________________________________________ > Biopython-dev mailing list > Biopython-dev@biopython.org > http://biopython.org/mailman/listinfo/biopython-dev > From chapmanb at arches.uga.edu Mon Apr 16 02:30:45 2001 From: chapmanb at arches.uga.edu (Brad Chapman) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Martel in CVS In-Reply-To: <008c01c0c122$c11372e0$0301a8c0@josiah> References: <008c01c0c122$c11372e0$0301a8c0@josiah> Message-ID: <15066.37269.16897.513739@taxus.athen1.ga.home.com> Jeff: > [Tests/unittest.py vs. unittest.py in Python 2.1] > >Yes, me too. Biopython will not require Python 2.1 for some time from > >now. Can we use the Python 2.1 unittest in biopython? This would make > >the migration easier when it happens, and it sounds like it would make > >your work easier too. Andrew: > Actually, yes, it would. Brad? Did you get the unittest.py > from the Python 2.1 distribution or the original code from which > it was based? Well, unittest used to be from the last release of pyunit, but I just updated the CVS to the version from the latest release candidate. This actually has quite a few changes over what I had -- it looks like things are changing a bit under the watchful eye of Guido. I agree that it would be best to keep Tests/unittest in-sync with whatever is included in the python distribution. Then eventually we'll be able to just move over to it, once everyone in the world is using python2.1 or greater. So-expect-to-get-rid-of-Tests/unittest-in-February-2003-ly yr's, Brad From dag at sonsorol.org Mon Apr 16 11:18:29 2001 From: dag at sonsorol.org (chris dagdigian) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Notification: incoming/28 References: Message-ID: <3ADB0D45.4040106@sonsorol.org> I'm not sure we are doing much with .notify files unless that is the mechanism by which new reports get sent to bioperl-l. However- the reason you saw email when you MOVED bug reports is that there should be a place in the jitterbug GUI called "Notifications:" or somesuch. That gets trigggered every time you add notes, move or delete a bug report. I'll poke around and see why the new incoming stuff does not generate email. In the meantime it may be worthwhile looking at the web interface again to see how the notification stuff is set up. -chris Jeffrey Chang wrote: > Hi Brad, > > I think the website directory is because bioperl has a directory where > they stored the bugs for their website. We have a .notify file in the > incoming box (I think you suggested it!), so every time we make changes to > the incoming bugs, they get sent to the website. > > Chris, do you know how we can get notification when people submit > anonymous bug reports to Jitterbug? New bug reports aren't getting sent > to biopython-dev. They haven't been for a while (6 months at least), and > we've never quite figured out why. > > Thanks, > Jeff > > > > On Sun, 15 Apr 2001, Brad Chapman wrote: > > >>> JitterBug notification >> >> [...snip...] >> >> Holy cow! Notification is sort of working! Wow, this is quite >> unexpected -- I was just moving some junk into the trash (unless Toner >> supplies are really a bug :-). So this means I was actually on to >> something with my .notify stuff from before. >> >> Anyways, this got me interested in looking at bioperl-bugs again, and >> I have an idea -- bioperl-bugs also has a website directory with a >> .notify file pointing to the bioperl-guts list... so, maybe if we add >> website/.notify with the line 'biopython-dev@biopython.org' we'll get >> updates any time anything happens on the biopython-bug website. >> >> Jeff, o' holder o' priviledges on bioperl.org, do you think we could >> try this? Maybe we'll actually get notifications now... >> >> Just-wishing-and-hoping-ly yr's >> Brad >> >> _______________________________________________ >> Biopython-dev mailing list >> Biopython-dev@biopython.org >> http://biopython.org/mailman/listinfo/biopython-dev >> From katel at worldpath.net Mon Apr 23 03:40:29 2001 From: katel at worldpath.net (Cayte) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] nodes in Martel tree Message-ID: <004501c0cbc8$ac888620$010a0a0a@cadence.com> I wonder if with nested nodes, you need to use the leaf nodes to get it to work right. I had the following structure. residue = Martel.Group( "residue", blank_space + codon + blank_space + amino_3_letter_code + blank_space + amino_1_letter_code ) The callback residue() was only called once, although the record contained multiple instances of residue. I removed residue from interest_tags and substituted codon and amino_1_letter_code and provided content handlers for these tags. These new content handlers were called for all the residues. I have another question about residue notation. My example contains this text. It looks like the letters may be intended to represent variations rather than consecutive residues, but I can't be sure. SEQTPA 106 97 ctg LEU L SEQTPA 107 98 gag GLU E SEQTPA 108 99 tgg TRP W SEQTPA 109 100 gat ASP D SEQTPA 110 100A cta LEU L SEQTPA 111 100B ccg PRO P SEQTPA 112 100C cac HIS H SEQTPA 113 100D aat ASN N SEQTPA 114 100E gat ASP D SEQTPA 115 100F ggt GLY G SEQTPA 116 100G --- --- - SEQTPA 117 100H --- --- - SEQTPA 118 100I --- --- - SEQTPA 119 100J --- --- - SEQTPA 120 100K ttt PHE F Cayte From dalke at acm.org Mon Apr 23 00:49:41 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] nodes in Martel tree References: <004501c0cbc8$ac888620$010a0a0a@cadence.com> Message-ID: <3AE3B465.5BBA2E66@acm.org> Cayte wrote: > I wonder if with nested nodes, you need to use the leaf nodes to get it to > work right. I had the following structure. No, you shouldn't need to. > I had the following structure. It's hard to evaluate that without the full format definition. I've attached a file which I used for testing. The result when parsing the data: SEQTPA 107 98 gag GLU E SEQTPA 108 99 tgg TRP W SEQTPA 106 100 aaa XXX X bbb YYY Y is (up to newlines) SEQTPA 107 98 gag GLU E SEQTPA 108 99 tgg TRP W SEQTPA 106 100 aaa XXX X bbb YYY Y As you can see in the last line, there are two "residue" fields. I can't seem to reproduce the behaviour you are seeing. > I have another question about residue notation. That one I cannot answer - I don't know. My guess agrees with yours. Andrew dalke@acm.org -------------- next part -------------- import Martel from xml.sax import saxutils blank_space = Martel.Str(" ") codon = Martel.Re("(?P...)") amino_3_letter_code = Martel.Re("(?P...)") amino_1_letter_code = Martel.Re("(?P.)") residue = Martel.Group( "residue", blank_space + codon + blank_space + amino_3_letter_code + blank_space + amino_1_letter_code ) spaces = Martel.Re(" +") seqtpa = Martel.Str("SEQTPA") + \ spaces + Martel.Integer("n1") + \ spaces + Martel.Integer("n2") + \ Martel.Rep1(residue) + \ Martel.AnyEol() format = Martel.Rep1(seqtpa) data = """\ SEQTPA 107 98 gag GLU E SEQTPA 108 99 tgg TRP W SEQTPA 106 100 aaa XXX X bbb YYY Y """ parser = format.make_parser() parser.setContentHandler(saxutils.XMLGenerator()) parser.parseString(data) From katel at worldpath.net Tue Apr 24 03:28:18 2001 From: katel at worldpath.net (Cayte) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] nodes in Martel tree References: <004501c0cbc8$ac888620$010a0a0a@cadence.com> <3AE3B465.5BBA2E66@acm.org> Message-ID: <003201c0cc90$231af4e0$010a0a0a@cadence.com> From: "Andrew Dalke" > It's hard to evaluate that without the full format definition. I Its mostly the same format I already sent, except for small changes. The code traverses the tree just fine. The problem seems to occur in _do_callback in Martel.Parser.py. It doesn't seem to get to the true branch in if begin < l: cont_handler.characters(s[begin:l]) Later, it takes the true branch in if subtags: _do_callback(s, l, r, subtags, cont_handler) else: cont_handler.characters(s[l:r]) Thank you for your time. Cayte From dalke at acm.org Wed Apr 25 16:39:29 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] iterators Message-ID: <03c301c0cdc9$d6be7320$0301a8c0@josiah> Anyone catch the recent discussions of adding better iteration support for Python? Most specifically, Tim Peter's post in c.l.py named "Iterators, generators and 2.2"? Old way was that for x in spam: pass was semantically identical to (excepting the exposure of the loop counter) i = 0 while 1: try: x = spam[i] except IndexError: break ... work with x ... New way is more like class IterAdapter: def __init__(self, list): self.list = list self.i = 0 def next(self): try: x = self.list[self.i] except IndexError: raise StopIteration self.i += 1 if hasattr(spam, "__iter__"): iter = spam.__iter__() else: iter = IterAdapter(spam) while 1: try: x = iter.next() except StopIteration: break ... work with x ... This simplifies a lot of the code I've done, which turns constructs like: class LineReader: def __init__(self, infile): self.infile = infile self._n = 0 def next(self): line = self.infile.readline() if not line: return None self._n = self._n + 1 return line def __getitem__(self, i): assert self._n == i, "forward iteration only" x = self.next() if x is None: raise IndexError, i return x into class IterUntilNone: def __init__(self, obj): self.obj = obj def next(self): x = self.obj.next() if x is None raise StopIteration return x class LineReader: def __init__(self, infile): self.infile = infile def next(self): line = self.infile.readline() if not line: return None return line def __iter__(self): return IterUntilNone(self) and where that 'IterUntilNone' (got a better name?) can be shared across a range of classes, rather than having to code up the '_n' solution in every one. (I suppose I could have derived from a ForwardIterator class, but that never worked out well in my mind - too complicated) I like. But that has to wait for 2.2 to come out ;( Andrew dalke@acm.org From chapmanb at arches.uga.edu Fri Apr 27 17:50:23 2001 From: chapmanb at arches.uga.edu (Brad Chapman) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Various fixes in CVS Message-ID: <15081.59807.227960.127051@taxus.athen1.ga.home.com> Hello all; I just mucked around in CVS with various stuff and wanted to give a quick update of what I changed: * There was a message on bioperl-l about some upcoming changes in GenBank format. I updated the GenBank parser so it should handle these once they are live. * Python 2.1 has changed the default ordering of dictionary keys when they are printed out. This is fine since keys are guaranteed to be ordered, but makes some of the tests appear as if they are broken when compared against the golden output. This happened for UniGene and GenBank tests. I made some small changes so that keys are sorted, then printed out, so that they won't change. * Since Martel is now in CVS (yay!), I updated the setup.py file so it now installs Martel by default. Please let me know if any of the changes cause any problems. Brad From jchang at SMI.Stanford.EDU Fri Apr 27 18:18:45 2001 From: jchang at SMI.Stanford.EDU (Jeffrey Chang) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Various fixes in CVS In-Reply-To: <15081.59807.227960.127051@taxus.athen1.ga.home.com> Message-ID: > * Since Martel is now in CVS (yay!), I updated the setup.py file so it > now installs Martel by default. This assumes that Martel is distributed with biopython. Is that what we decided? Also, should we check to make sure this won't overwrite a previous Martel installation? Jeff From chapmanb at arches.uga.edu Fri Apr 27 18:30:52 2001 From: chapmanb at arches.uga.edu (Brad Chapman) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Various fixes in CVS In-Reply-To: References: <15081.59807.227960.127051@taxus.athen1.ga.home.com> Message-ID: <15081.62236.187220.636645@taxus.athen1.ga.home.com> me: > > * Since Martel is now in CVS (yay!), I updated the setup.py file so it > > now installs Martel by default. Jeff: > This assumes that Martel is distributed with biopython. Is that what we > decided? I think so :-) > Also, should we check to make sure this won't overwrite a > previous Martel installation? We could, do you think it's necessary? In my mind, most people will just want to install Martel/biopython and have it "work" and this way makes it simplest. If you are keeping multiple different versions of Martel, then you can just go into the setup.py and switch off the flag to INSTALL_MARTEL. So, I vote for simplicity, at the cost of some overwriting. But, I think Andrew should have the final say on this. Whoever-writes-the-code-gets-to-decide-on-the-installation-ly yr's, Brad From dalke at acm.org Fri Apr 27 18:46:06 2001 From: dalke at acm.org (Andrew Dalke) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Various fixes in CVS References: Message-ID: <3AE9F6AE.A71C3A83@acm.org> Jeff: > This assumes that Martel is distributed with biopython. Is that what we > decided? Also, should we check to make sure this won't overwrite a > previous Martel installation? I think it should be distributed with biopython. I just wanted to make it available outside of biopython. For now I don't know of anyone who will install Martel from a package other than biopython, then later install biopython - so it wouldn't be too bad to always install. But I imagine Brad can easily write a test which only adds a Martel installation if it isn't already present. So... default installs Martel, with an option to not install it. The option can be: - modify setup.py - command-line option - autorecognize Martel exists and complain if the version is too old I have no preference. The first is easist and least error prone, and there isn't yet need for more, so it's hard to know what the exact requirements are. Brad: > If you are keeping multiple different versions of Martel, then you > can just go into the setup.py and switch off the flag to INSTALL_MARTEL. In other words, I agree with Brad. Though it needs to be mentioned in the installation instructions, for people like me who read instructions :) One thing to consider is how setup.py works with installers. Johann distributes these seperately with the FreeBSD ports. I can't comment any about his needs. Want to pipe in, Johann? Andrew From chapmanb at arches.uga.edu Mon Apr 30 21:01:06 2001 From: chapmanb at arches.uga.edu (Brad Chapman) Date: Sat Mar 5 14:42:59 2005 Subject: [Biopython-dev] Small fix to MutableSeq Message-ID: <15086.2770.109215.321112@taxus.athen1.ga.home.com> Hey all; Just a friendly heads-up to let you know that I fixed a small bug in MutableSeq. This was the same array.array() initializer bug we saw before, but I caught it in __setslice__ this time. I also added some tests for MutableSeq to the test_seq class, as part of my continuing attempts to turn myself into an Extreme Programmer extraordinaire :-) Brad