File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -250,25 +250,17 @@ object CCachedGenerator::get_generator()
250250
251251object CCachedGenerator::__iter__ ()
252252{
253- return m_generator.is_none () ? m_generated_values.attr (" __iter__" )() : object (ptr (this ));
254- }
255-
256-
257- object CCachedGenerator::__next__ ()
258- {
259- object value;
260- if (!m_generator.is_none ())
253+ while (!m_generator.is_none ())
261254 {
262255 try
263256 {
264- value = m_generator.attr (" __next__" )();
265- m_generated_values.append (value);
257+ m_generated_values.append (m_generator.attr (" __next__" )());
266258 }
267259 catch (...)
268260 {
269261 m_generator = object ();
270- BOOST_RAISE_EXCEPTION (PyExc_StopIteration, " StopIteration " );
262+ PyErr_Clear ( );
271263 }
272264 }
273- return value ;
265+ return m_generated_values. attr ( " __iter__ " )() ;
274266}
Original file line number Diff line number Diff line change @@ -93,7 +93,6 @@ class CCachedGenerator
9393 object get_generator ();
9494
9595 object __iter__ ();
96- object __next__ ();
9796
9897private:
9998 object m_generator;
Original file line number Diff line number Diff line change @@ -314,10 +314,4 @@ void export_cached_generator(scope _cache)
314314 &CCachedGenerator::__iter__,
315315 " Returns an iterator iterating over the generated values of the wrapped generator."
316316 );
317-
318- CachedGenerator.def (
319- " __next__" ,
320- &CCachedGenerator::__next__,
321- " Returns the next value from the current iteration."
322- );
323317}
You can’t perform that action at this time.
0 commit comments