From e5460115d26af5324d648e27ca393b9fb3e3c7bf Mon Sep 17 00:00:00 2001 From: Edoardo Zoni Date: Tue, 2 Dec 2025 17:04:41 -0800 Subject: [PATCH 1/2] Remove ThinElement --- src/pals/kinds/Marker.py | 8 ++++++-- src/pals/kinds/mixin/ThinElement.py | 14 -------------- src/pals/kinds/mixin/__init__.py | 1 - 3 files changed, 6 insertions(+), 17 deletions(-) delete mode 100644 src/pals/kinds/mixin/ThinElement.py diff --git a/src/pals/kinds/Marker.py b/src/pals/kinds/Marker.py index 649f5f3..4d864a0 100644 --- a/src/pals/kinds/Marker.py +++ b/src/pals/kinds/Marker.py @@ -1,9 +1,9 @@ from typing import Literal -from .mixin import ThinElement +from .mixin import BaseElement -class Marker(ThinElement): +class Marker(BaseElement): """Zero length element to mark a particular position The main purpose of this thin element is to name a position in the beamline. @@ -11,3 +11,7 @@ class Marker(ThinElement): # Discriminator field kind: Literal["Marker"] = "Marker" + + # Segment length in meters (m) + # Always 0, cannot be modified + length: Literal[0.0] = 0.0 diff --git a/src/pals/kinds/mixin/ThinElement.py b/src/pals/kinds/mixin/ThinElement.py deleted file mode 100644 index 1981bf3..0000000 --- a/src/pals/kinds/mixin/ThinElement.py +++ /dev/null @@ -1,14 +0,0 @@ -from typing import Literal - -from . import BaseElement - - -class ThinElement(BaseElement): - """A thin base element with zero segment length""" - - # Discriminator field - kind: Literal["ThinElement"] = "ThinElement" - - # Segment length in meters (m) - # always 0 for thin elements, not modifiable - length: Literal[0.0] = 0.0 diff --git a/src/pals/kinds/mixin/__init__.py b/src/pals/kinds/mixin/__init__.py index cf1687a..3c9fb3d 100644 --- a/src/pals/kinds/mixin/__init__.py +++ b/src/pals/kinds/mixin/__init__.py @@ -1,3 +1,2 @@ from .BaseElement import BaseElement # noqa: F401 from .ThickElement import ThickElement # noqa: F401 -from .ThinElement import ThinElement # noqa: F401 From 69418de032ead64e7373829b0d35d2cadc141795 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Tue, 2 Dec 2025 17:37:35 -0800 Subject: [PATCH 2/2] ThickElement >= 0 --- src/pals/kinds/mixin/ThickElement.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pals/kinds/mixin/ThickElement.py b/src/pals/kinds/mixin/ThickElement.py index 1780566..e8dfffb 100644 --- a/src/pals/kinds/mixin/ThickElement.py +++ b/src/pals/kinds/mixin/ThickElement.py @@ -1,5 +1,5 @@ from typing import Annotated, Literal -from annotated_types import Gt +from annotated_types import Ge from . import BaseElement @@ -11,4 +11,4 @@ class ThickElement(BaseElement): kind: Literal["ThickElement"] = "ThickElement" # Segment length in meters (m) - length: Annotated[float, Gt(0)] + length: Annotated[float, Ge(0)]