add 'iterator'(sequences) and 'key_iterator'(maps). The first returns allways the C++ iterator. In sequences __iter__ returns 'iterator()', in maps, __iter__ returns 'key_iterator()'

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7775 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2005-11-02 15:58:58 +00:00
commit a3424e36e1
3 changed files with 30 additions and 23 deletions

View file

@ -623,16 +623,15 @@ namespace swig
%fragment("PySequence_Cont");
%newobject output_iterator(PyObject *seq);
%newobject iterator(PyObject *PYTHON_SELF);
%extend {
swig::PySequence_OutputIterator* output_iterator(PyObject *seq) {
return swig::make_output_iterator(self->begin(), self->begin(), self->end(), seq);
swig::PySequence_OutputIterator* iterator(PyObject **PYTHON_SELF) {
return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
}
%pythoncode {
def __iter__(self):
i = self.output_iterator(self)
return i
return self.iterator()
}
}
#endif //SWIG_EXPORT_ITERATOR_METHODS