From 0a452e942c4015a4b33a17da179e4e604410df4f Mon Sep 17 00:00:00 2001
From: marco <marco@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 1 Jun 2010 14:27:37 +0000
Subject: [PATCH] more sequence exports and tweak to sequence list iterator
 export

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2309 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/seq/base/pymod/const_seq_list_export_def.hh | 1 +
 modules/seq/base/pymod/export_sequence.cc           | 9 ++++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/seq/base/pymod/const_seq_list_export_def.hh b/modules/seq/base/pymod/const_seq_list_export_def.hh
index 62d731d20..baba81158 100644
--- a/modules/seq/base/pymod/const_seq_list_export_def.hh
+++ b/modules/seq/base/pymod/const_seq_list_export_def.hh
@@ -23,6 +23,7 @@
   .def("AddSequence", &C::AddSequence)                                         \
   .def("GetMaxLength", &C::GetMaxLength)                                       \
   .def("GetMinLength", &C::GetMinLength)                                       \
+  .def("IsValid", &C::IsValid)                                                 \
   .def("Take", &C::Take)                                                       \
   .def("Slice", &C::Slice)                                                     \
   .def("SequencesHaveEqualLength",                                             \
diff --git a/modules/seq/base/pymod/export_sequence.cc b/modules/seq/base/pymod/export_sequence.cc
index fe0bae238..71127c038 100644
--- a/modules/seq/base/pymod/export_sequence.cc
+++ b/modules/seq/base/pymod/export_sequence.cc
@@ -136,7 +136,7 @@ private:
 
 struct ConstSeqListIter {
   ConstSeqListIter(ConstSequenceList& list):
-    b_(list.begin()), e_(list.end())
+    l_(list), b_(l_.begin()), e_(l_.end())
   { }
 
   ConstSequenceHandle next()
@@ -144,18 +144,19 @@ struct ConstSeqListIter {
     if (b_==e_) {
       boost::python::objects::stop_iteration_error();
     }
-    ConstSequenceHandle s=*b_;
+    ConstSequenceHandle s=*b_;  
     ++b_;
     return s;
   }
 private:
+  ConstSequenceList           l_;
   ConstSequenceList::iterator b_;
   ConstSequenceList::iterator e_;
 };
 
 struct SeqListIter {
   SeqListIter(SequenceList& list):
-    b_(list.begin()), e_(list.end())
+    l_(list), b_(l_.begin()), e_(l_.end())
   { }
 
   SequenceHandle next()
@@ -168,6 +169,7 @@ struct SeqListIter {
     return s;
   }
 private:
+  SequenceList           l_;
   SequenceList::iterator b_;
   SequenceList::iterator e_;
 };
@@ -209,6 +211,7 @@ void const_seq_handle_def(O& bp_class)
     .def("__getitem__", &C::GetOneLetterCode)
     .def("GetSequenceOffset", &C::GetSequenceOffset)
     .def("Copy", &C::Copy)
+    .def("IsValid", &C::IsValid)
     .def("GetFirstNonGap", &C::GetFirstNonGap)
     .def("GetLastNonGap", &C::GetLastNonGap)
     .add_property("first_non_gap", &C::GetFirstNonGap)
-- 
GitLab