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 62d731d201174dba56f6381b660a99b396c2f1b1..baba8115839726d0ecc8e7f3acc063d35efc1f71 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 fe0bae238ab74d5c45eadac1099983e8fea0f533..71127c038a1041bba77184bccd9e7861d654c75d 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)