EOS/src/akkudoktoreos/optimization/optimizationabc.py

26 lines
797 B
Python
Raw Normal View History

"""Abstract and base classes for optimization."""
from pydantic import ConfigDict
from akkudoktoreos.core.coreabc import ConfigMixin, PredictionMixin
from akkudoktoreos.core.logging import get_logger
from akkudoktoreos.core.pydantic import PydanticBaseModel
logger = get_logger(__name__)
class OptimizationBase(ConfigMixin, PredictionMixin, PydanticBaseModel):
"""Base class for handling optimization data.
Enables access to EOS configuration data (attribute `config`) and EOS prediction data (attribute
`prediction`).
Note:
Validation on assignment of the Pydantic model is disabled to speed up optimization runs.
"""
# Disable validation on assignment to speed up optimization runs.
model_config = ConfigDict(
validate_assignment=False,
)