from __future__ import annotations from collections.abc import Iterable, Mapping from typing import Literal, Sequence, TypeVar from docplex.mp.constants import WriteLevel from docplex.mp.dvar import Var from docplex.mp.model import Model from docplex.mp.sdetails import SolveDetails from typing_extensions import TypeAlias _Key = TypeVar("_Key") _SolvedBy: TypeAlias = Literal["cplex_local", "cplex_cloud"] | None class SolveSolution: def __init__( self, model: Model, var_value_map: Mapping[Var, float] | None = None, obj: Sequence[float] | float | None = None, blended_obj_by_priority: Sequence[float] | None = None, name: str | None = None, solved_by: _SolvedBy = None, keep_zeros: bool = True, ) -> None: ... @property def problem_name(self) -> str: ... @property def solved_by(self) -> _SolvedBy: ... @property def name(self) -> str: ... @property def solve_details(self) -> SolveDetails: ... def get_objective_value(self) -> float | list[float]: ... def get_value(self, arg: Var) -> float: ... def get_values(self, var_seq: Iterable[Var]) -> list[float]: ... def get_value_list(self, dvars: Iterable[Var]) -> list[float]: ... def get_value_dict( self, var_dict: Mapping[_Key, Var], keep_zeros: bool = True, precision: float = 1e-6, ) -> dict[_Key, float]: ... def as_mip_start( self, write_level: WriteLevel = ..., complete_vars: bool = False, eps_zero: float = 1e-6, ) -> SolveSolution: ...