From 8ea2094d7a527256cf22d60acfd8a7de78f8d463 Mon Sep 17 00:00:00 2001 From: 40% Date: Wed, 21 Jan 2026 18:41:45 +0800 Subject: [PATCH 1/4] Remove __next__ method from Expr class The __next__ method was removed from the Expr class, leaving only __iter__ for iteration. This simplifies the class and relies on the iterator protocol of self.terms. --- src/pyscipopt/expr.pxi | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/pyscipopt/expr.pxi b/src/pyscipopt/expr.pxi index e0d35e8b0..664c26448 100644 --- a/src/pyscipopt/expr.pxi +++ b/src/pyscipopt/expr.pxi @@ -175,10 +175,6 @@ cdef class Expr: def __iter__(self): return iter(self.terms) - def __next__(self): - try: return next(self.terms) - except: raise StopIteration - def __abs__(self): return abs(buildGenExprObj(self)) From ebc8cb49b2cff5f2c557a2ba0f40ef9a63dd2852 Mon Sep 17 00:00:00 2001 From: 40% Date: Wed, 21 Jan 2026 18:43:05 +0800 Subject: [PATCH 2/4] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e203885c..cff3baa28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - Speed up np.ndarray(..., dtype=np.float64) @ MatrixExpr - Minimum numpy version increased from 1.16.0 to 1.19.0 ### Removed +- Removed `__next__` from Expr ## 6.0.0 - 2025.xx.yy ### Added From 2d1e5af12d8ef2e9a9b7df42db6970f860fc4325 Mon Sep 17 00:00:00 2001 From: 40% Date: Thu, 22 Jan 2026 14:58:54 +0800 Subject: [PATCH 3/4] Revert "Update CHANGELOG.md" This reverts commit ebc8cb49b2cff5f2c557a2ba0f40ef9a63dd2852. --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cff3baa28..6e203885c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,6 @@ - Speed up np.ndarray(..., dtype=np.float64) @ MatrixExpr - Minimum numpy version increased from 1.16.0 to 1.19.0 ### Removed -- Removed `__next__` from Expr ## 6.0.0 - 2025.xx.yy ### Added From f5da72390430d82d9dad9b8d8a38dabf21de0e84 Mon Sep 17 00:00:00 2001 From: 40% Date: Thu, 22 Jan 2026 15:06:04 +0800 Subject: [PATCH 4/4] Remove __next__ method from Expr class stub The __next__ method was removed from the Expr class in the type stub file, likely because Expr is not intended to be an iterator. This change improves the accuracy of the type hints. --- src/pyscipopt/scip.pyi | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pyscipopt/scip.pyi b/src/pyscipopt/scip.pyi index 6f228d030..cb397d54e 100644 --- a/src/pyscipopt/scip.pyi +++ b/src/pyscipopt/scip.pyi @@ -342,7 +342,6 @@ class Expr: def __mul__(self, other: Incomplete) -> Incomplete: ... def __ne__(self, other: Incomplete)-> Incomplete: ... def __neg__(self) -> Incomplete: ... - def __next__(self) -> Incomplete: ... def __pow__(self, other: Incomplete, mod: Incomplete = ...) -> Incomplete: ... def __radd__(self, other: Incomplete) -> Incomplete: ... def __rmul__(self, other: Incomplete) -> Incomplete: ...