From: Michael Schroeder Date: Mon, 31 Mar 2014 12:58:06 +0000 (+0200) Subject: make the __iter__ methods in the python bindings return self X-Git-Tag: 0.6.4~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=214203ca6cc97d91e3638b96bee00ee32977111e;p=thirdparty%2Flibsolv.git make the __iter__ methods in the python bindings return self The old code returned a new iterator object, which broke the skip_solvable method. I hope the new way does not break anything. --- diff --git a/bindings/solv.i b/bindings/solv.i index bf46c08a..54b6022c 100644 --- a/bindings/solv.i +++ b/bindings/solv.i @@ -1734,12 +1734,8 @@ rb_eval_string( solv_free($self); } #if defined(SWIGPYTHON) - %newobject __iter__; - Dataiterator *__iter__() { - Dataiterator *ndi; - ndi = solv_calloc(1, sizeof(*ndi)); - dataiterator_init_clone(ndi, $self); - return ndi; + %pythoncode { + def __iter__(self): return self } #ifndef PYTHON3 %rename("next") __next__(); @@ -1971,12 +1967,8 @@ rb_eval_string( return s; } #if defined(SWIGPYTHON) - %newobject __iter__; - Pool_solvable_iterator *__iter__() { - Pool_solvable_iterator *s; - s = solv_calloc(1, sizeof(*s)); - *s = *$self; - return s; + %pythoncode { + def __iter__(self): return self } #ifndef PYTHON3 %rename("next") __next__(); @@ -2030,12 +2022,8 @@ rb_eval_string( return s; } #if defined(SWIGPYTHON) - %newobject __iter__; - Pool_repo_iterator *__iter__() { - Pool_repo_iterator *s; - s = solv_calloc(1, sizeof(*s)); - *s = *$self; - return s; + %pythoncode { + def __iter__(self): return self } #ifndef PYTHON3 %rename("next") __next__(); @@ -2090,12 +2078,8 @@ rb_eval_string( return s; } #if defined(SWIGPYTHON) - %newobject __iter__; - Repo_solvable_iterator *__iter__() { - Repo_solvable_iterator *s; - s = solv_calloc(1, sizeof(*s)); - *s = *$self; - return s; + %pythoncode { + def __iter__(self): return self } #ifndef PYTHON3 %rename("next") __next__();