Skip to content

Commit 373014b

Browse files
committed
code: update KN attribute dependence
1 parent 774eb8c commit 373014b

3 files changed

Lines changed: 8 additions & 8 deletions

File tree

linopy/solvers.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,15 +1782,18 @@ def solve_problem_from_model(
17821782

17831783
@staticmethod
17841784
def _set_option(kc: Any, name: str, value: Any) -> None:
1785+
1786+
param_id = knitro.KN_get_param_id(kc, name)
1787+
17851788
if isinstance(value, bool):
17861789
value = int(value)
17871790

17881791
if isinstance(value, int):
1789-
knitro.KN_set_int_param(kc, name, value)
1792+
knitro.KN_set_int_param(kc, param_id, value)
17901793
elif isinstance(value, float):
1791-
knitro.KN_set_double_param(kc, name, value)
1794+
knitro.KN_set_double_param(kc, param_id, value)
17921795
elif isinstance(value, str):
1793-
knitro.KN_set_char_param(kc, name, value)
1796+
knitro.KN_set_char_param(kc, param_id, value)
17941797
else:
17951798
msg = f"Unsupported Knitro option type for {name!r}: {type(value).__name__}"
17961799
raise TypeError(msg)
@@ -1877,9 +1880,7 @@ def solve_problem_from_file(
18771880
)
18781881

18791882
if log_fn is not None:
1880-
log_fn.parent.mkdir(parents=True, exist_ok=True)
1881-
knitro.KN_set_char_param(kc, "outdir", str(log_fn.parent))
1882-
knitro.KN_set_char_param(kc, "outname", log_fn.stem)
1883+
logger.warning("Log file output not implemented for Knitro")
18831884

18841885
for k, v in self.solver_options.items():
18851886
self._set_option(kc, k, v)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ solvers = [
8484
"coptpy!=7.2.1",
8585
"xpress; platform_system != 'Darwin' and python_version < '3.11'",
8686
"pyscipopt; platform_system != 'Darwin'",
87-
"knitro==15.1.0",
87+
"knitro>=15.1.0",
8888
# "cupdlpx>=0.1.2", pip package currently unstable
8989
]
9090

test/test_solvers.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ def test_knitro_solver_with_options(tmp_path: Path) -> None:
135135
problem_fn=mps_file, solution_fn=sol_file, log_fn=log_file
136136
)
137137
assert result.status.is_ok
138-
assert log_file.exists()
139138

140139

141140
@pytest.mark.skipif(

0 commit comments

Comments
 (0)