Skip to content
Open

SCIP 10 #1009

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
6a4140b
Add printStatisticsJson
Joao-Dionisio May 28, 2025
3c50d40
Implied integer stuff
Joao-Dionisio May 31, 2025
45933b9
Add extra event types
Joao-Dionisio May 31, 2025
af1645d
minor fixes in relax.pxi
Joao-Dionisio May 31, 2025
a310db6
start of iisfinder plugin
Joao-Dionisio May 31, 2025
3db696e
udpate inlcudeReader with the new definition, add printStatisticsJson
mmghannam Jun 3, 2025
40b901a
Add assert to statistics json test
Jun 3, 2025
2fe7680
compilation, left iis for later
Joao-Dionisio Jun 3, 2025
a29aa5c
fix issues with exact scip. still no support
Joao-Dionisio Jun 3, 2025
15afb8e
Merge remote-tracking branch 'origin/master' into SCIP10
Joao-Dionisio Jun 5, 2025
6c126f7
fixed some tests
Joao-Dionisio Jun 5, 2025
b841b95
fix minor typos
Joao-Dionisio Jun 5, 2025
79c88a1
changelog so I don't forget
Joao-Dionisio Jun 5, 2025
703fd34
variable type tests
Joao-Dionisio Jun 5, 2025
f352c30
fix test_pricer bug
Joao-Dionisio Jun 11, 2025
97434b5
Merge branch 'master' into SCIP10
Joao-Dionisio Jun 17, 2025
81395b2
typo
Joao-Dionisio Jun 17, 2025
ae60d7e
IISfinder progress
Joao-Dionisio Jun 17, 2025
be3022e
Start of support for exact scip
Joao-Dionisio Jun 17, 2025
dc08654
Fix reader write (#1015)
DominikKamp Jul 2, 2025
ffcf001
Fix most compilation issues and warnings
Joao-Dionisio Jul 11, 2025
b417a92
Update IIS method and remove redeclaration
Joao-Dionisio Jul 11, 2025
5d2f440
Merge branch 'master' into SCIP10
Joao-Dionisio Jul 24, 2025
389ac74
Fix build error
Joao-Dionisio Jul 24, 2025
e2d9038
little IIS progress
Joao-Dionisio Jul 24, 2025
55c99bb
iis compilation
Joao-Dionisio Jul 24, 2025
3914760
some iis methods
Joao-Dionisio Jul 24, 2025
e9238a1
remove semicolons
Joao-Dionisio Jul 24, 2025
f9a781d
Change IIS methods imported
Joao-Dionisio Jul 26, 2025
01757c8
remove cons_and methods that were removed in SCIP
svigerske Sep 23, 2025
3e44a06
Merge branch 'SCIP10' of github.com:scipopt/PySCIPOpt into SCIP10
mmghannam Sep 24, 2025
c5b72dc
Update callback signatures of IISFinderExec and ReaderWrite to match …
mmghannam Sep 24, 2025
48434eb
Merge branch 'master' of github.com:scipopt/PySCIPOpt into SCIP10
mmghannam Sep 24, 2025
a1a707f
Export IISfinder class
Sep 24, 2025
3b7fab3
Add simple iis tests
Sep 24, 2025
5c71a07
Fix write json statistics test
Sep 24, 2025
0f3b26a
Use deprecated implied integer type
Sep 24, 2025
ddb4e5d
Raise error when relaxator doesn't implement the exec callback
Sep 24, 2025
baac6be
Fix event tests and add another one for catching variable events
Sep 24, 2025
1a57360
Fix relaxator tests
Sep 24, 2025
113891c
Merge branch 'master' into SCIP10
mmghannam Oct 9, 2025
2e53afa
Merge branch 'master' of https://github.com/scipopt/PySCIPOpt into SC…
Joao-Dionisio Nov 12, 2025
ba2d6ce
Merge branch 'SCIP10' of https://github.com/scipopt/PySCIPOpt into SC…
Joao-Dionisio Nov 12, 2025
bd9a4e3
Merge branch 'master' of github.com:scipopt/PySCIPOpt into SCIP10
Joao-Dionisio Nov 22, 2025
5f8afa0
add forgotten events. tests pass
Joao-Dionisio Nov 22, 2025
1c04b3c
custom iis finder test
Joao-Dionisio Nov 22, 2025
edc0fda
try to fix jenkins pipeline
Joao-Dionisio Nov 22, 2025
a030bf7
some stuff for the release
Joao-Dionisio Nov 22, 2025
3235b75
more complete and passing event tests
Joao-Dionisio Nov 23, 2025
d42c496
typo
Joao-Dionisio Nov 23, 2025
e8d2b4d
correct version name
Joao-Dionisio Nov 23, 2025
d36054e
changelog and exact keyword
Joao-Dionisio Nov 24, 2025
31362d1
update scip version
Joao-Dionisio Nov 24, 2025
ac40257
trying out new links
Joao-Dionisio Nov 25, 2025
7fb7826
binaries will remain on github
Joao-Dionisio Nov 25, 2025
3c57380
Merge branch 'SCIP10' of github.com:scipopt/PySCIPOpt into SCIP10
Joao-Dionisio Nov 25, 2025
bb459d6
update with new file names
Joao-Dionisio Nov 25, 2025
4024b01
Merge branch 'SCIP10' of github.com:scipopt/PySCIPOpt into SCIP10
Joao-Dionisio Nov 25, 2025
e09fbc9
one more attempt
Joao-Dionisio Nov 25, 2025
9da0614
ignoring scip deprecation warning, for now
Joao-Dionisio Nov 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Run tests with coverage
env:
version: 9.2.4
version: 10.0.0

on:
push:
Expand All @@ -25,8 +25,8 @@ jobs:

- name: Install dependencies (SCIPOptSuite)
run: |
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-Linux-ubuntu22.deb
sudo apt-get update && sudo apt install -y ./SCIPOptSuite-${{ env.version }}-Linux-ubuntu22.deb
wget --quiet --no-check-certificate "https://github.com/scipopt/scip/releases/download/v${{ env.version }}/scipoptsuite_${{ env.version }}-1+jammy_amd64.deb"
sudo apt-get update && sudo apt install -y ./scipoptsuite_${{ env.version }}-1+jammy_amd64.deb

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v4
Expand All @@ -40,7 +40,7 @@ jobs:

- name: Install PySCIPOpt
run: |
export CFLAGS="-O0 -ggdb -Wall -Wextra -Werror" # Debug mode. More warnings. Warnings as errors.
export CFLAGS="-O0 -ggdb -Wall -Wextra -Werror -Wno-error=deprecated-declarations" # Debug mode. More warnings. Warnings as errors, but allow deprecated declarations.
python -m pip install . -v 2>&1 | tee build.log
grep -i "warning" build.log || true

Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Integration test

env:
version: 9.2.4
version: 10.0.0

on:
push:
Expand All @@ -23,8 +23,8 @@ jobs:

- name: Install dependencies (SCIPOptSuite)
run: |
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-Linux-ubuntu22.deb
sudo apt-get update && sudo apt install -y ./SCIPOptSuite-${{ env.version }}-Linux-ubuntu22.deb
wget --quiet --no-check-certificate "https://github.com/scipopt/scip/releases/download/v${version}/scipoptsuite_${version}-1+jammy_amd64.deb"
sudo apt-get update && sudo apt install -y ./scipoptsuite_${version}-1+jammy_amd64.deb

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v4
Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:

- name: Download dependencies (SCIPOptSuite)
shell: powershell
run: wget https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-win64.exe -outfile scipopt-installer.exe
run: wget https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/scipoptsuite-${{ env.version }}-win-x64.exe -outfile scipopt-installer.exe

- name: Install dependencies (SCIPOptSuite)
shell: cmd
Expand Down Expand Up @@ -92,10 +92,11 @@ jobs:
- name: Install dependencies (SCIPOptSuite)
run: |
brew install tbb boost bison
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-Darwin.sh
chmod +x SCIPOptSuite-${{ env.version }}-Darwin.sh
./SCIPOptSuite-${{ env.version }}-Darwin.sh --skip-license --include-subdir
mv SCIPOptSuite-${{ env.version }}-Darwin ${{ github.workspace }}/scipoptsuite
wget --quiet --no-check-certificate "https://github.com/scipopt/scip/releases/download/v${version}/scipoptsuite-${version}-macos13-arm64.tgz"
tar xzf "scipoptsuite-${version}-macos13-arm64.tgz"
chmod +x "scipoptsuite-${version}-macos13-arm64.sh"
"./scipoptsuite-${version}-macos13-arm64.sh" --skip-license --include-subdir
mv "scipoptsuite-${version}-macos13-arm64" "${{ github.workspace }}/scipoptsuite"

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v4
Expand All @@ -122,4 +123,3 @@ jobs:
### if you need valgrind on mac, you can install it via
# brew tap LouisBrunner/valgrind
# brew install --HEAD LouisBrunner/valgrind/valgrind

6 changes: 3 additions & 3 deletions .github/workflows/test-release.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: TestPyPI release

env:
version: 9.2.4
version: 10.0.0


# runs only when a release is published, not on drafts
Expand All @@ -17,8 +17,8 @@ jobs:

- name: Install dependencies (SCIPOptSuite)
run: |
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-Linux-ubuntu20.deb
sudo apt-get update && sudo apt install -y ./SCIPOptSuite-${{ env.version }}-Linux-ubuntu20.deb
wget --quiet --no-check-certificate "https://github.com/scipopt/scip/releases/download/v${version}/scipoptsuite_${version}-1+jammy_amd64.deb"
sudo apt-get update && sudo apt install -y ./scipoptsuite_${version}-1+jammy_amd64.deb

- name: Setup python 3
uses: actions/setup-python@v4
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/update-packages-and-documentation.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Test and Release PyPI Package

env:
version: 9.2.4
version: 10.0.0


# runs only when a release is published, not on drafts
Expand Down Expand Up @@ -38,8 +38,8 @@ jobs:

- name: Install dependencies (SCIPOptSuite)
run: |
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-Linux-ubuntu20.deb
sudo apt-get update && sudo apt install -y ./SCIPOptSuite-${{ env.version }}-Linux-ubuntu20.deb
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/scipoptsuite_${{ env.version }}-1+jammy_amd64.deb
sudo apt-get update && sudo apt install -y ./scipoptsuite_${{ env.version }}-1+jammy_amd64.deb

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v4
Expand Down Expand Up @@ -71,7 +71,9 @@ jobs:

- name: Download dependencies (SCIPOptSuite)
shell: powershell
run: wget https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-win64-VS15.exe -outfile scipopt-installer.exe
run: |
$url = "https://github.com/scipopt/scip/releases/download/v${{ env.version }}/scipoptsuite-${{ env.version }}-win-x64.exe"
Invoke-WebRequest -Uri $url -OutFile scipopt-installer.exe

- name: Install dependencies (SCIPOptSuite)
shell: cmd
Expand Down Expand Up @@ -107,8 +109,8 @@ jobs:

- name: Install dependencies (SCIPOptSuite)
run: |
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/SCIPOptSuite-${{ env.version }}-Linux-ubuntu20.deb
sudo apt-get update && sudo apt install -y ./SCIPOptSuite-${{ env.version }}-Linux-ubuntu20.deb
wget --quiet --no-check-certificate https://github.com/scipopt/scip/releases/download/$(echo "v${{env.version}}" | tr -d '.')/scipoptsuite_${{ env.version }}-1+jammy_amd64.deb
sudo apt-get update && sudo apt install -y ./scipoptsuite_${{ env.version }}-1+jammy_amd64.deb

- name: Setup python 3
uses: actions/setup-python@v4
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,20 @@
### Changed
### Removed

## 6.0.0 - 2025.xx.yy
### Added
- Support for SCIP 10.0.0
- Added support for IIS - Irreducible Inconsistent Subsystems
- Added 4 new events: TYPECHANGED, IMPLTYPECHANGED, DUALBOUNDIMPROVED, GAPUPDATED.
- Support for new implied integrality
- Wrapped varIsBinary(), varIsIntegral(), varIsImpliedIntegral(), varIsNonImpliedIntegral(), varGetImplType()
- Interfaced some exact SCIP methods
- wrapped SCIPprintStatisticsJson
### Fixed
### Changed
### Removed
- Removed methods chgAndConsCheckFlagWhenUpgr, chgAndConsRemovableFlagWhenUpgr

## 5.7.0 - 2025.11.17
### Added
- Added possibility of having variables in exponent.
Expand Down
2 changes: 2 additions & 0 deletions docs/build.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ To download SCIP please either use the pre-built SCIP Optimization Suite availab

* - SCIP
- PySCIPOpt
* - 10.0.0
- 6.0
* - 9.2
- 5.3, 5.4, 5.5, 5.6, 5.7
* - 9.1
Expand Down
10 changes: 5 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ AARCH=$(uname -m)
echo "------"
echo $AARCH
if [[ $AARCH == "aarch64" ]]; then
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.9.0/libscip-linux-arm.zip -O scip.zip
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.10.0/libscip-linux-arm.zip -O scip.zip
else
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.9.0/libscip-linux.zip -O scip.zip
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.10.0/libscip-linux.zip -O scip.zip
fi
unzip scip.zip
mv scip_install scip
Expand All @@ -67,10 +67,10 @@ before-all = '''
#!/bin/bash
brew install wget zlib gcc
if [[ $CIBW_ARCHS == *"arm"* ]]; then
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.9.0/libscip-macos-arm.zip -O scip.zip
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.10.0/libscip-macos-arm.zip -O scip.zip
export MACOSX_DEPLOYMENT_TARGET=14.0
else
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.9.0/libscip-macos-intel.zip -O scip.zip
wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.10.0/libscip-macos-intel.zip -O scip.zip
export MACOSX_DEPLOYMENT_TARGET=14.0
fi
unzip scip.zip
Expand All @@ -96,7 +96,7 @@ repair-wheel-command = '''
skip="pp* cp36* cp37*"
before-all = [
"choco install 7zip wget",
"wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.9.0/libscip-windows.zip -O scip.zip",
"wget https://github.com/scipopt/scipoptsuite-deploy/releases/download/v0.10.0/libscip-windows.zip -O scip.zip",
"\"C:\\Program Files\\7-Zip\\7z.exe\" x \"scip.zip\" -o\"scip-test\"",
"mv .\\scip-test\\scip_install .\\test",
"mv .\\test .\\scip"
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@

setup(
name="PySCIPOpt",
version="5.7.1",
version="6.0.0",
description="Python interface and modeling environment for SCIP",
long_description=long_description,
long_description_content_type="text/markdown",
Expand Down
2 changes: 2 additions & 0 deletions src/pyscipopt/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from pyscipopt.scip import Reader as Reader
from pyscipopt.scip import Sepa as Sepa
from pyscipopt.scip import LP as LP
from pyscipopt.scip import IISfinder as IISfinder
from pyscipopt.scip import PY_SCIP_LPPARAM as SCIP_LPPARAM
from pyscipopt.scip import readStatistics as readStatistics
from pyscipopt.scip import Expr as Expr
Expand Down Expand Up @@ -56,3 +57,4 @@
from pyscipopt.scip import PY_SCIP_ROWORIGINTYPE as SCIP_ROWORIGINTYPE
from pyscipopt.scip import PY_SCIP_SOLORIGIN as SCIP_SOLORIGIN
from pyscipopt.scip import PY_SCIP_NODETYPE as SCIP_NODETYPE
from pyscipopt.scip import PY_SCIP_IMPLINTTYPE as SCIP_IMPLINTTYPE
2 changes: 1 addition & 1 deletion src/pyscipopt/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__: str = '5.7.1'
__version__: str = '6.0.0'
34 changes: 34 additions & 0 deletions src/pyscipopt/iisfinder.pxi
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
##@file iisfinder.pxi
#@brief Base class of the IIS finder Plugin
cdef class IISfinder:
cdef public Model model
cdef public str name
cdef SCIP_IIS* _iisfinder

def iisfinderfree(self):
'''calls destructor and frees memory of iis finder'''
pass

def iisfinderexec(self):
'''calls execution method of iis finder'''
raise NotImplementedError("iisfinderexec() is a fundamental callback and should be implemented in the derived class")


cdef SCIP_RETCODE PyiisfinderCopy (SCIP* scip, SCIP_IISFINDER* iisfinder) noexcept with gil:
return SCIP_OKAY

cdef SCIP_RETCODE PyiisfinderFree (SCIP* scip, SCIP_IISFINDER* iisfinder) noexcept with gil:
cdef SCIP_IISFINDERDATA* iisfinderdata
iisfinderdata = SCIPiisfinderGetData(iisfinder)
PyIIS = <IISfinder>iisfinderdata
PyIIS.iisfinderfree()
Py_DECREF(PyIIS)
return SCIP_OKAY

cdef SCIP_RETCODE PyiisfinderExec (SCIP_IIS* iis, SCIP_IISFINDER* iisfinder, SCIP_RESULT* result) noexcept with gil:
cdef SCIP_IISFINDERDATA* iisfinderdata
iisfinderdata = SCIPiisfinderGetData(iisfinder)
PyIIS = <IISfinder>iisfinderdata
result_dict = PyIIS.iisfinderexec()
assert isinstance(result_dict, dict), "iisfinderexec() must return a dictionary."
return SCIP_OKAY
14 changes: 8 additions & 6 deletions src/pyscipopt/reader.pxi
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ cdef class Reader:
'''calls read method of reader'''
return {}

def readerwrite(self, file, name, transformed, objsense, objscale, objoffset, binvars, intvars,
def readerwrite(self, file, name, transformed, objsense, objoffset, objscale, binvars, intvars,
implvars, contvars, fixedvars, startnvars, conss, maxnconss, startnconss, genericnames):
'''calls write method of reader'''
return {}
Expand All @@ -39,10 +39,11 @@ cdef SCIP_RETCODE PyReaderRead (SCIP* scip, SCIP_READER* reader, const char* fil
return SCIP_OKAY

cdef SCIP_RETCODE PyReaderWrite (SCIP* scip, SCIP_READER* reader, FILE* file,
const char* name, SCIP_PROBDATA* probdata, SCIP_Bool transformed,
SCIP_OBJSENSE objsense, SCIP_Real objscale, SCIP_Real objoffset,
SCIP_VAR** vars, int nvars, int nbinvars, int nintvars, int nimplvars, int ncontvars,
SCIP_VAR** fixedvars, int nfixedvars, int startnvars,
const char* filename, const char* name, SCIP_PROBDATA* probdata, SCIP_Bool transformed,
SCIP_OBJSENSE objsense, SCIP_Real objoffset, SCIP_Real objscale,
SCIP_RATIONAL* objoffsetexact, SCIP_RATIONAL* objscaleexact,
SCIP_VAR** vars, int nvars, int nbinvars, int nintvars, int nimplvars,
int ncontvars, SCIP_VAR** fixedvars, int nfixedvars, int startnvars,
SCIP_CONS** conss, int nconss, int maxnconss, int startnconss,
SCIP_Bool genericnames, SCIP_RESULT* result) noexcept with gil:
cdef SCIP_READERDATA* readerdata = SCIPreaderGetData(reader)
Expand All @@ -58,7 +59,8 @@ cdef SCIP_RETCODE PyReaderWrite (SCIP* scip, SCIP_READER* reader, FILE* file,
PyFixedVars = [Variable.create(fixedvars[i]) for i in range(nfixedvars)]
PyConss = [Constraint.create(conss[i]) for i in range(nconss)]
PyReader = <Reader>readerdata
result_dict = PyReader.readerwrite(PyFile, PyName, transformed, objsense, objscale, objoffset,
#TODO: provide rational objoffsetexact and objscaleexact
result_dict = PyReader.readerwrite(PyFile, PyName, transformed, objsense, objoffset, objscale,
PyBinVars, PyIntVars, PyImplVars, PyContVars, PyFixedVars, startnvars,
PyConss, maxnconss, startnconss, genericnames)
result[0] = result_dict.get("result", <SCIP_RESULT>result[0])
Expand Down
2 changes: 1 addition & 1 deletion src/pyscipopt/recipes/infeasibilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def get_infeasible_constraints(orig_model: Model, verbose: bool = False):

n_infeasibilities_detected = 0
for c in binary:
if model.isGT(model.getVal(binary[c]), 0):
if model.isInfinity(model.getVal(binary[c])) or model.isGT(model.getVal(binary[c]), 0):
n_infeasibilities_detected += 1
print("Constraint %s is causing an infeasibility." % c)

Expand Down
6 changes: 2 additions & 4 deletions src/pyscipopt/relax.pxi
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,8 @@ cdef class Relax:
pass

def relaxexec(self):
'''callls execution method of relaxation handler'''
print("python error in relaxexec: this method needs to be implemented")
return{}

'''calls execution method of relaxation handler'''
raise NotImplementedError("relaxexec() is a fundamental callback and should be implemented in the derived class")

cdef SCIP_RETCODE PyRelaxCopy (SCIP* scip, SCIP_RELAX* relax) noexcept with gil:
return SCIP_OKAY
Expand Down
Loading