[Biocorba-l] Bioperl biocorba server code checked in
Brad Chapman
chapmanb@arches.uga.edu
Fri, 23 Feb 2001 05:53:54 -0500
--2B+vy7X0lW
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit
[my bug list from before]
Jason:
> I fixed these bugs. Brad if you can run your code some more to see if
> this fixes your observed bugs. I added some more tests to the local
> server/client code to test the different cases of SeqFeature. I know
> there needs to be more tests and they ought to be done in a nice perl
> manner, I'll see if I can plug away some more later.
Yup, this fixes lots of my problems. Thanks Jason! I worked at this
more and got another list of (smaller) bugs for you. If these get
fixed, then we should have interoperability for just about everything!
Very nice. I checked the test suite into biopython-corba CVS, so if
you (or anyone else) wants to check it out, it is waiting in
Tests/test_PerlServers.py.
Thanks again for dealing with these bugs for me. Here is the buffer I
kept while working on this latest round of debugging. Proposed patches
are attached.
Brad
Fixed
-----
* PrimarySeq::primary_id -- Returns a stringified memory location if
there is not a primary_id, which can make CORBA unhappy (plus it looks
pretty funny to get back a perl hash!). Fixed this,
but the fix reaches into the internal hash of the PrimarySeq, which
is probably not the best way. Better suggestions are very welcome.
Now returns "unknown" if no id is set.
* PrimarySeqDB::get_PrimarySeq -- Calls the function
get_PrimarySeq_by_primary_id, which doesn't appear to actually exist.
Had this problem before, I think the fix just forgot to change the
function call.
* PrimarySeqVector::elementAt -- Has a problem when created from a
PrimarySeqDB, since the PrimarySeqDB was passing in CorbaServer::Seq objects
and not CorbaServer::PrimarySeq objects. Fixed in PrimarySeqDB.
* PrimarySeqVector::iterator -- This call was not working correctly for
two reasons. First, it passed the items as '-elements' instead of '-items'.
Second, new for PrimarySeqIterator didn't seem to act right if you pass in
a valid list of items (it still was requiring a SeqIO instance).
* BioEnv::get_SeqDB_names -- Was not returning an array reference,
at least not in the case where there were no sequence databases.
* BioEnv::get_Seq_from_file -- This was segfaulting. One problem was a
call to _get_seqio that didn't exist -- got rid of this.
Not Fixed
---------
* Damn, changing the AnonymousSeq to its own module didn't help with
the problem with narrowing. Sorry :-<. I think we're going to have to
chalk this one up to an interoperability bug. I just changed the
biopython stuff so that it doesn't ever try to narrow to check interface
inheritance.
--2B+vy7X0lW
Content-Type: application/octet-stream
Content-Description: BioEnv diffs
Content-Disposition: attachment;
filename="BioEnv.diff"
Content-Transfer-Encoding: base64
KioqIEJpb0Vudi5wbS5vcmlnCUZyaSBGZWIgMjMgMDU6NDA6MzQgMjAwMQotLS0gQmlvRW52
LnBtCUZyaSBGZWIgMjMgMDA6NTc6MzMgMjAwMQoqKioqKioqKioqKioqKioKKioqIDE3Nywx
ODMgKioqKgogICAgICBteSAkc2VxOwogIAogICAgICBldmFsIHsKISAJbXkgJHNlcWlvID0g
JHNlbGYtPl9nZXRfc2VxaW87CiAgCWlmKCAkZm9ybWF0ICF+IC9cdy8gKSB7CiAgCSAgICAk
c2VxaW8gPSBCaW86OlNlcUlPLT5uZXcoLWZpbGUgPT4gJGZpbGUpOwogIAl9IGVsc2Ugewot
LS0gMTc3LDE4MyAtLS0tCiAgICAgIG15ICRzZXE7CiAgCiAgICAgIGV2YWwgewohICAgICAg
IG15ICRzZXFpbzsKICAJaWYoICRmb3JtYXQgIX4gL1x3LyApIHsKICAJICAgICRzZXFpbyA9
IEJpbzo6U2VxSU8tPm5ldygtZmlsZSA9PiAkZmlsZSk7CiAgCX0gZWxzZSB7CioqKioqKioq
KioqKioqKgoqKiogMjEzLDIxOSAqKioqCiAgCiAgc3ViIGdldF9TZXFEQl9uYW1lcyB7CiAg
ICAgIG15ICgkc2VsZiApID0gQF87CiEgICAgIHJldHVybiBrZXlzICV7JHNlbGYtPnsnX3Nl
cWRicyd9fTsKICB9CiAgCiAgPWhlYWQyIGdldF9TZXFEQl92ZXJzaW9ucwotLS0gMjEzLDIy
MCAtLS0tCiAgCiAgc3ViIGdldF9TZXFEQl9uYW1lcyB7CiAgICAgIG15ICgkc2VsZiApID0g
QF87CiEgICAgIG15IEByZXN1bHQgPSBrZXlzICV7JHNlbGYtPnsnX3NlcWRicyd9fTsKISAg
ICAgcmV0dXJuIFxAcmVzdWx0OwogIH0KICAKICA9aGVhZDIgZ2V0X1NlcURCX3ZlcnNpb25z
Cg==
--2B+vy7X0lW
Content-Type: application/octet-stream
Content-Description: PrimarySeq.diff
Content-Disposition: attachment;
filename="PrimarySeq.diff"
Content-Transfer-Encoding: base64
KioqIFByaW1hcnlTZXEucG0ub3JpZwlGcmkgRmViIDIzIDA1OjM5OjIxIDIwMDEKLS0tIFBy
aW1hcnlTZXEucG0JVHVlIEZlYiAyMCAyMjowNDo1MCAyMDAxCioqKioqKioqKioqKioqKgoq
KiogMTg5LDE5NCAqKioqCi0tLSAxODksMjAwIC0tLS0KICAKICBzdWIgcHJpbWFyeV9pZCB7
CiAgICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgICMgY2hlY2sgaWYgYSBwcmltYXJ5X2lk
IGlzIHNldCAtLSBpZiBub3QgcmV0dXJuICJ1bmtub3duIgorICAgICAjIFRoZXJlIGlzIHBy
b2JhYmx5IGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLgorICAgICBpZiAoIWV4aXN0cyAkc2Vs
Zi0+X3NlcS0+eydwcmltYXJ5X2lkJ30pIHsKKyAgICAgICByZXR1cm4gInVua25vd24iOwor
ICAgICB9CisgCiAgICAgIHJldHVybiAkc2VsZi0+X3NlcS0+cHJpbWFyeV9pZCgpOwogIH0K
ICAK
--2B+vy7X0lW
Content-Type: application/octet-stream
Content-Description: PrimarySeqDB.diff
Content-Disposition: attachment;
filename="PrimarySeqDB.diff"
Content-Transfer-Encoding: base64
KioqIFByaW1hcnlTZXFEQi5wbS5vcmlnCUZyaSBGZWIgMjMgMDU6NDA6MDAgMjAwMQotLS0g
UHJpbWFyeVNlcURCLnBtCUZyaSBGZWIgMjMgMDE6MzI6MjAgMjAwMQoqKioqKioqKioqKioq
KioKKioqIDEzOCwxNDQgKioqKgogICAgICBteSBAb2JqOwogICAgICB3aGlsZSggbXkgJHNl
cSA9ICRzZXFpby0+bmV4dF9wcmltYXJ5X3NlcSApIHsgCiAgCXB1c2ggQG9iaiwKISAJbmV3
IEJpbzo6Q29yYmFTZXJ2ZXI6OlNlcSgnLXBvYSc9PiRzZWxmLT5wb2EsICctc2VxJyA9PiAk
c2VxKTsgCiAgICAgIH0KICAgICAgbXkgJHZlY3RvciA9IG5ldyBCaW86OkNvcmJhU2VydmVy
OjpQcmltYXJ5U2VxVmVjdG9yKCctcG9hJz0+ICRzZWxmLT5wb2EsCiAgCQkJCQkJCSctaXRl
bXMnID0+IFxAb2JqKTsKLS0tIDEzOCwxNDQgLS0tLQogICAgICBteSBAb2JqOwogICAgICB3
aGlsZSggbXkgJHNlcSA9ICRzZXFpby0+bmV4dF9wcmltYXJ5X3NlcSApIHsgCiAgCXB1c2gg
QG9iaiwKISAJbmV3IEJpbzo6Q29yYmFTZXJ2ZXI6OlByaW1hcnlTZXEoJy1wb2EnPT4kc2Vs
Zi0+cG9hLCAnLXNlcScgPT4gJHNlcSk7IAogICAgICB9CiAgICAgIG15ICR2ZWN0b3IgPSBu
ZXcgQmlvOjpDb3JiYVNlcnZlcjo6UHJpbWFyeVNlcVZlY3RvcignLXBvYSc9PiAkc2VsZi0+
cG9hLAogIAkJCQkJCQknLWl0ZW1zJyA9PiBcQG9iaik7CioqKioqKioqKioqKioqKgoqKiog
MTU5LDE2NSAqKioqCiAgc3ViIGdldF9QcmltYXJ5U2VxIHsKICAgICAgIyB0aHJvd3MgKFVu
YWJsZVRvUHJvY2VzcykKICAgICAgbXkgKCRzZWxmLCRpZCkgPSBAXzsKISAgICAgbXkgJHNl
cSA9ICRzZWxmLT5fc2VxZGItPmdldF9QcmltYXJ5U2VxX2J5X3ByaW1hcnlfaWQoJGlkKTsK
ICAgICAgaWYoIGRlZmluZWQgJHNlcSApIHsKICAJbXkgJHByaW1hcnlfc2VxID0gJHNlcS0+
cHJpbWFyeV9zZXEoKTsKICAJbXkgJHNlcnZhbnQgPSBuZXcgQmlvOjpDb3JiYVNlcnZlcjo6
UHJpbWFyeVNlcSgnLXBvYScgPT4gJHNlbGYtPnBvYSwgCi0tLSAxNTksMTY2IC0tLS0KICBz
dWIgZ2V0X1ByaW1hcnlTZXEgewogICAgICAjIHRocm93cyAoVW5hYmxlVG9Qcm9jZXNzKQog
ICAgICBteSAoJHNlbGYsJGlkKSA9IEBfOwohICAgICBteSAkc2VxID0gJHNlbGYtPl9zZXFk
Yi0+Z2V0X1NlcV9ieV9wcmltYXJ5X2lkKCRpZCk7CiEgCiAgICAgIGlmKCBkZWZpbmVkICRz
ZXEgKSB7CiAgCW15ICRwcmltYXJ5X3NlcSA9ICRzZXEtPnByaW1hcnlfc2VxKCk7CiAgCW15
ICRzZXJ2YW50ID0gbmV3IEJpbzo6Q29yYmFTZXJ2ZXI6OlByaW1hcnlTZXEoJy1wb2EnID0+
ICRzZWxmLT5wb2EsIAo=
--2B+vy7X0lW
Content-Type: application/octet-stream
Content-Description: PrimarySeqVector.diff
Content-Disposition: attachment;
filename="PrimarySeqVector.diff"
Content-Transfer-Encoding: base64
KioqIFByaW1hcnlTZXFWZWN0b3IucG0ub3JpZwlGcmkgRmViIDIzIDA1OjQwOjE5IDIwMDEK
LS0tIFByaW1hcnlTZXFWZWN0b3IucG0JRnJpIEZlYiAyMyAwNDo1Nzo1MSAyMDAxCioqKioq
KioqKioqKioqKgoqKiogNjQsNjkgKioqKgotLS0gNjQsNzAgLS0tLQogIAogIHVzZSBCaW86
OkNvcmJhU2VydmVyOjpCYXNlOwogIHVzZSBCaW86OkNvcmJhU2VydmVyOjpQcmltYXJ5U2Vx
SXRlcmF0b3I7CisgdXNlIEJpbzo6Q29yYmFTZXJ2ZXI6OlByaW1hcnlTZXE7CiAgCiAgQElT
QSA9IHF3KFBPQV9vcmc6OmJpb2NvcmJhOjpzZXFjb3JlOjpQcmltYXJ5U2VxVmVjdG9yIEJp
bzo6Q29yYmFTZXJ2ZXI6OkJhc2UpOwogIAoqKioqKioqKioqKioqKioKKioqIDExOSwxMjUg
KioqKgogIAl0aHJvdyBvcmc6OmJpb2NvcmJhOjpzZXFjb3JlOjpPdXRPZlJhbmdlIAogIAkg
ICAgcmVhc29uID0+ICJpbmRleCAkaW5kZXggaXMgb3V0IG9mIHJhbmdlICgwLCIuJHNlbGYt
PnNpemUuIikuIjsKICAgICAgfQohICAgICByZXR1cm4gJHNlbGYtPnsnX2VsZW1lbnRzJ30t
PlskaW5kZXhdOwogIH0KICAKICA9aGVhZDIgaXRlcmF0b3IKLS0tIDEyMCwxMjggLS0tLQog
IAl0aHJvdyBvcmc6OmJpb2NvcmJhOjpzZXFjb3JlOjpPdXRPZlJhbmdlIAogIAkgICAgcmVh
c29uID0+ICJpbmRleCAkaW5kZXggaXMgb3V0IG9mIHJhbmdlICgwLCIuJHNlbGYtPnNpemUu
IikuIjsKICAgICAgfQohICAgICBteSAkcHJpbWFyeV9zZXEgPSAkc2VsZi0+eydfZWxlbWVu
dHMnfS0+WyRpbmRleF07CiEgCiEgICAgIHJldHVybiAkcHJpbWFyeV9zZXEtPmdldF9hY3Rp
dmF0ZWRfb2JqZWN0X3JlZmVyZW5jZSgpOwogIH0KICAKICA9aGVhZDIgaXRlcmF0b3IKKioq
KioqKioqKioqKioqCioqKiAxMzYsMTQyICoqKioKICBzdWIgaXRlcmF0b3IgewogICAgICBt
eSAoJHNlbGYpID0gQF87CiAgICAgIG15ICRpdGVyID0gbmV3IEJpbzo6Q29yYmFTZXJ2ZXI6
OlByaW1hcnlTZXFJdGVyYXRvcignLXBvYScgPT4gJHNlbGYtPnBvYSwgCiEgCQkJCQkJCSct
ZWxlbWVudHMnID0+ICRzZWxmLT5fZWxlbWVudHMpOwogICAgICByZXR1cm4gJGl0ZXItPmdl
dF9hY3RpdmF0ZWRfb2JqZWN0X3JlZmVyZW5jZSgpOwogIH0KICAKLS0tIDEzOSwxNDUgLS0t
LQogIHN1YiBpdGVyYXRvciB7CiAgICAgIG15ICgkc2VsZikgPSBAXzsKICAgICAgbXkgJGl0
ZXIgPSBuZXcgQmlvOjpDb3JiYVNlcnZlcjo6UHJpbWFyeVNlcUl0ZXJhdG9yKCctcG9hJyA9
PiAkc2VsZi0+cG9hLCAKISAJCQkJCQkJJy1pdGVtcycgPT4gJHNlbGYtPl9lbGVtZW50cyk7
CiAgICAgIHJldHVybiAkaXRlci0+Z2V0X2FjdGl2YXRlZF9vYmplY3RfcmVmZXJlbmNlKCk7
CiAgfQogIAo=
--2B+vy7X0lW--