diff --git a/src/infrasys/cost_curves.py b/src/infrasys/cost_curves.py index ebc29d0..0bb3020 100644 --- a/src/infrasys/cost_curves.py +++ b/src/infrasys/cost_curves.py @@ -1,12 +1,12 @@ from typing_extensions import Annotated -from infrasys.component import Component from pydantic import Field +from infrasys.models import InfraSysBaseModelWithIdentifers from infrasys.value_curves import InputOutputCurve, IncrementalCurve, AverageRateCurve, LinearCurve import pint -class ProductionVariableCostCurve(Component): - name: Annotated[str, Field(frozen=True)] = "" +class ProductionVariableCostCurve(InfraSysBaseModelWithIdentifers): + ... class CostCurve(ProductionVariableCostCurve): diff --git a/src/infrasys/function_data.py b/src/infrasys/function_data.py index a37b1f3..6b954eb 100644 --- a/src/infrasys/function_data.py +++ b/src/infrasys/function_data.py @@ -1,12 +1,14 @@ """Defines models for cost functions""" -from infrasys import Component -from typing_extensions import Annotated -from pydantic import Field, model_validator -from pydantic.functional_validators import AfterValidator -from typing import NamedTuple, List +from typing import List, NamedTuple + import numpy as np import pint +from pydantic import Field, model_validator +from pydantic.functional_validators import AfterValidator +from typing_extensions import Annotated + +from infrasys.models import InfraSysBaseModelWithIdentifers class XYCoords(NamedTuple): @@ -16,10 +18,10 @@ class XYCoords(NamedTuple): y: float -class FunctionData(Component): +class FunctionData(InfraSysBaseModelWithIdentifers): """BaseClass of FunctionData""" - name: Annotated[str, Field(frozen=True)] = "" + ... class LinearFunctionData(FunctionData): diff --git a/src/infrasys/value_curves.py b/src/infrasys/value_curves.py index 95b86f3..31b829e 100644 --- a/src/infrasys/value_curves.py +++ b/src/infrasys/value_curves.py @@ -1,7 +1,6 @@ """Defines classes for value curves using cost functions""" from typing_extensions import Annotated -from infrasys.component import Component from infrasys.exceptions import ISOperationNotAllowed from infrasys.function_data import ( LinearFunctionData, @@ -13,9 +12,10 @@ from pydantic import Field import numpy as np +from infrasys.models import InfraSysBaseModelWithIdentifers -class ValueCurve(Component): - name: Annotated[str, Field(frozen=True)] = "" + +class ValueCurve(InfraSysBaseModelWithIdentifers): input_at_zero: Annotated[ float | None, Field(