Source code for ocean.cp._base

from abc import ABC
from typing import Any, Protocol

from ortools.sat.python import cp_model as cp


[docs] class BaseModel(ABC, cp.CpModel): """Base OR-Tools model used by the constraint programming backend.""" def __init__(self) -> None: cp.CpModel.__init__(self) def __setattr__(self, name: str, value: Any) -> None: # noqa: ANN401 object.__setattr__(self, name, value)
[docs] def build_vars(self, *variables: "Var") -> None: for variable in variables: variable.build(model=self)
class Var(Protocol): _name: str def __init__(self, name: str) -> None: self._name = name def build(self, model: BaseModel) -> None: ...