Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions examples/fodo.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def main():
quad1 = QuadrupoleElement(
name="quad1",
length=1.0,
MagneticMultipoleP=MagneticMultipoleParameters(
magnetic_multipole_parameters=MagneticMultipoleParameters(
Bn1=1.0,
),
)
Expand All @@ -33,7 +33,7 @@ def main():
quad2 = QuadrupoleElement(
name="quad2",
length=1.0,
MagneticMultipoleP=MagneticMultipoleParameters(
magnetic_multipole_parameters=MagneticMultipoleParameters(
Bn1=-1.0,
),
)
Expand Down
2 changes: 1 addition & 1 deletion schema/BaseElement.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class BaseElement(BaseModel):
"""A custom base element defining common properties"""

# Discriminator field
kind: Literal["BaseElement"] = "BaseElement"
Type: Literal["BaseElement"] = "BaseElement"

# Validate every time a new value is assigned to an attribute,
# not only when an instance of BaseElement is created
Expand Down
2 changes: 1 addition & 1 deletion schema/DriftElement.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ class DriftElement(ThickElement):
"""A field free region"""

# Discriminator field
kind: Literal["Drift"] = "Drift"
Type: Literal["Drift"] = "Drift"
4 changes: 2 additions & 2 deletions schema/Line.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class Line(BaseModel):
# not only when an instance of Line is created
model_config = ConfigDict(validate_assignment=True)

kind: Literal["Line"] = "Line"
Type: Literal["Line"] = "Line"

line: List[
Annotated[
Expand All @@ -25,7 +25,7 @@ class Line(BaseModel):
QuadrupoleElement,
"Line",
],
Field(discriminator="kind"),
Field(discriminator="Type"),
]
]

Expand Down
4 changes: 2 additions & 2 deletions schema/QuadrupoleElement.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class QuadrupoleElement(ThickElement):
"""A quadrupole element"""

# Discriminator field
kind: Literal["Quadrupole"] = "Quadrupole"
Type: Literal["Quadrupole"] = "Quadrupole"

# Magnetic multipole parameters
MagneticMultipoleP: MagneticMultipoleParameters
magnetic_multipole_parameters: MagneticMultipoleParameters
2 changes: 1 addition & 1 deletion schema/ThickElement.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class ThickElement(BaseElement):
"""A thick base element with finite segment length"""

# Discriminator field
kind: Literal["ThickElement"] = "ThickElement"
Type: Literal["ThickElement"] = "ThickElement"

# Segment length in meters (m)
length: Annotated[float, Gt(0)]
20 changes: 12 additions & 8 deletions tests/test_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def test_QuadrupoleElement():
element_magnetic_multipole_Bs2 = 2.2
element_magnetic_multipole_tilt1 = 3.1
element_magnetic_multipole_tilt2 = 3.2
element_magnetic_multipole = MagneticMultipoleParameters(
element_magnetic_multipole_parameters = MagneticMultipoleParameters(
Bn1=element_magnetic_multipole_Bn1,
Bs1=element_magnetic_multipole_Bs1,
tilt1=element_magnetic_multipole_tilt1,
Expand All @@ -86,16 +86,20 @@ def test_QuadrupoleElement():
element = QuadrupoleElement(
name=element_name,
length=element_length,
MagneticMultipoleP=element_magnetic_multipole,
magnetic_multipole_parameters=element_magnetic_multipole_parameters,
)
assert element.name == element_name
assert element.length == element_length
assert element.MagneticMultipoleP.Bn1 == element_magnetic_multipole_Bn1
assert element.MagneticMultipoleP.Bs1 == element_magnetic_multipole_Bs1
assert element.MagneticMultipoleP.tilt1 == element_magnetic_multipole_tilt1
assert element.MagneticMultipoleP.Bn2 == element_magnetic_multipole_Bn2
assert element.MagneticMultipoleP.Bs2 == element_magnetic_multipole_Bs2
assert element.MagneticMultipoleP.tilt2 == element_magnetic_multipole_tilt2
assert element.magnetic_multipole_parameters.Bn1 == element_magnetic_multipole_Bn1
assert element.magnetic_multipole_parameters.Bs1 == element_magnetic_multipole_Bs1
assert (
element.magnetic_multipole_parameters.tilt1 == element_magnetic_multipole_tilt1
)
assert element.magnetic_multipole_parameters.Bn2 == element_magnetic_multipole_Bn2
assert element.magnetic_multipole_parameters.Bs2 == element_magnetic_multipole_Bs2
assert (
element.magnetic_multipole_parameters.tilt2 == element_magnetic_multipole_tilt2
)
# Serialize the Line object to YAML
yaml_data = yaml.dump(element.model_dump(), default_flow_style=False)
print(f"\n{yaml_data}")
Expand Down