Skip to content

Commit

Permalink
move meta information to base class
Browse files Browse the repository at this point in the history
  • Loading branch information
sasanjac committed Jul 24, 2024
1 parent 69552b0 commit c5b8f64
Show file tree
Hide file tree
Showing 8 changed files with 9 additions and 28 deletions.
16 changes: 9 additions & 7 deletions psdm/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def _validate_unique_list(v: tuple[U]) -> tuple[U]:
NonEmptyTuple = t.Annotated[tuple[T, ...], annotated_types.Len(1, 2**126)]


class Base(pydantic.BaseModel):
class _Base(pydantic.BaseModel):
model_config = {
"frozen": True,
"use_enum_values": True,
Expand Down Expand Up @@ -75,12 +75,14 @@ def validate_deprecated(self: U, attr_dpr: str, attr_new: str) -> U:
return self


class VoltageSystemType(enum.Enum):
AC = "AC"
DC = "DC"


class AttributeData(Base):
class AttributeData(_Base):
name: str # attribute key
value: str | bool | int | float | UniqueTuple[t.Any]
description: str | None = None

class Base(_Base):
meta: UniqueNonEmptyTuple[AttributeData] | None = None

class VoltageSystemType(enum.Enum):
AC = "AC"
DC = "DC"
3 changes: 0 additions & 3 deletions psdm/topology/branch.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@

from enum import Enum

from psdm.base import AttributeData
from psdm.base import Base
from psdm.base import UniqueNonEmptyTuple
from psdm.base import UniqueTuple
from psdm.base import VoltageSystemType
from psdm.quantities.multi_phase import Phase
Expand Down Expand Up @@ -65,4 +63,3 @@ class Branch(Base):
xpn: ImpedanceNat | None = None # neutral-line couple values
gpn: AdmittanceNat | None = None # neutral-line couple values
bpn: AdmittanceNat | None = None # neutral-line couple values
meta: UniqueNonEmptyTuple[AttributeData] | None = None
3 changes: 0 additions & 3 deletions psdm/topology/coupler.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@

from __future__ import annotations

from psdm.base import AttributeData
from psdm.base import Base
from psdm.base import UniqueNonEmptyTuple


class Coupler(Base):
Expand All @@ -15,4 +13,3 @@ class Coupler(Base):
element: str
node: str
state: bool # 0:opened; 1:closed
meta: UniqueNonEmptyTuple[AttributeData] | None = None
3 changes: 0 additions & 3 deletions psdm/topology/external_grid.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@

from enum import Enum

from psdm.base import AttributeData
from psdm.base import Base
from psdm.base import UniqueNonEmptyTuple
from psdm.base import UniqueTuple
from psdm.quantities.multi_phase import Phase
from psdm.quantities.single_phase import ApparentPower
Expand All @@ -33,4 +31,3 @@ class ExternalGrid(Base):
short_circuit_power_max: ApparentPower
short_circuit_power_min: ApparentPower
type: GridType
meta: UniqueNonEmptyTuple[AttributeData] | None = None
3 changes: 0 additions & 3 deletions psdm/topology/fuse.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@

from __future__ import annotations

from psdm.base import AttributeData
from psdm.base import Base
from psdm.base import UniqueNonEmptyTuple


class Fuse(Base):
Expand All @@ -15,4 +13,3 @@ class Fuse(Base):
element: str
node: str
state: bool # 0:opened; 1:closed
meta: UniqueNonEmptyTuple[AttributeData] | None = None
3 changes: 0 additions & 3 deletions psdm/topology/load.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@

import pydantic

from psdm.base import AttributeData
from psdm.base import Base
from psdm.base import UniqueNonEmptyTuple
from psdm.base import VoltageSystemType
from psdm.quantities.multi_phase import ActivePower
from psdm.quantities.multi_phase import ApparentPower
Expand Down Expand Up @@ -154,7 +152,6 @@ class Load(Base): # including assets of type load and generator
system_type: SystemType
voltage_system_type: VoltageSystemType
description: str | None = None
meta: UniqueNonEmptyTuple[AttributeData] | None = None

@pydantic.model_validator(mode="after")
def validate_length(self) -> Load:
Expand Down
3 changes: 0 additions & 3 deletions psdm/topology/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# :copyright: Copyright (c) Institute of Electrical Power Systems and High Voltage Engineering - TU Dresden, 2022-2023.
# :license: BSD 3-Clause

from psdm.base import AttributeData
from psdm.base import Base
from psdm.base import UniqueNonEmptyTuple
from psdm.base import UniqueTuple
from psdm.quantities.multi_phase import Phase
from psdm.quantities.single_phase import Voltage
Expand All @@ -17,4 +15,3 @@ class Node(Base):
u_n: Voltage
phases: UniqueTuple[Phase]
description: str | None = None
meta: UniqueNonEmptyTuple[AttributeData] | None = None
3 changes: 0 additions & 3 deletions psdm/topology/transformer.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@

import enum

from psdm.base import AttributeData
from psdm.base import Base
from psdm.base import UniqueNonEmptyTuple
from psdm.base import UniqueTuple
from psdm.quantities.multi_phase import Phase
from psdm.quantities.single_phase import Angle
Expand Down Expand Up @@ -96,4 +94,3 @@ class Transformer(Base):
tap_min: int | None = None # lower position of tap for tap control
tap_neutral: int | None = None # initial position where rated transformation ratio is specified
tap_side: TapSide | None = None # transformer side of where tap changer is installed
meta: UniqueNonEmptyTuple[AttributeData] | None = None

0 comments on commit c5b8f64

Please sign in to comment.