2024-12-15 14:40:03 +01:00
|
|
|
"""Abstract and base classes for optimization."""
|
|
|
|
|
|
|
|
from pydantic import ConfigDict
|
|
|
|
|
|
|
|
from akkudoktoreos.core.coreabc import ConfigMixin, PredictionMixin
|
2025-01-05 14:41:07 +01:00
|
|
|
from akkudoktoreos.core.logging import get_logger
|
2024-12-15 14:40:03 +01:00
|
|
|
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,
|
|
|
|
)
|