from __future__ import annotations
from typing import Any, Callable, ClassVar, Literal, Protocol, TypedDict, overload
import numpy as np
from numpy.typing import ArrayLike, NDArray
from .core import CoppError
class TimeObjectiveDict(TypedDict):
kind: Literal["time"]
weight: float
class LinearObjectiveDict(TypedDict):
kind: Literal["linear"]
weight: float
alpha: ArrayLike
beta: ArrayLike
class ThermalEnergyObjectiveDict(TypedDict):
kind: Literal["thermal_energy", "thermal"]
weight: float
normalize: ArrayLike
class TotalVariationTorqueObjectiveDict(TypedDict):
kind: Literal["total_variation_torque", "tv_torque"]
weight: float
normalize: ArrayLike
ObjectiveDict = (
TimeObjectiveDict
| LinearObjectiveDict
| ThermalEnergyObjectiveDict
| TotalVariationTorqueObjectiveDict
)
class Time:
weight: float
def __init__(self, weight: float) -> None:
...
class Linear:
weight: float
alpha: NDArray[np.float64]
beta: NDArray[np.float64]
def __init__(
self,
weight: float,
alpha: ArrayLike,
beta: ArrayLike,
) -> None:
...
class ThermalEnergy:
weight: float
normalize: NDArray[np.float64]
def __init__(self, weight: float, normalize: ArrayLike) -> None:
...
class TotalVariationTorque:
weight: float
normalize: NDArray[np.float64]
def __init__(self, weight: float, normalize: ArrayLike) -> None:
...
ObjectiveLike = (
Time
| Linear
| ThermalEnergy
| TotalVariationTorque
| ObjectiveDict
)