added new annotation types

This commit is contained in:
Brian Bjarke Jensen
2025-09-18 21:05:47 +02:00
parent 86935ab18e
commit 4a8e091a2d
8 changed files with 137 additions and 46 deletions
+6
View File
@@ -5,9 +5,12 @@ Exposes core data transfer objects and enums for use throughout the project.
from .angle_enum import AngleEnum
from .annotation import Annotation
from .colour_enum import ColourEnum
from .contact_enum import ContactEnum
from .depth_enum import DepthEnum
from .distance_enum import DistanceEnum
from .job import Job
from .lighting_enum import LightingEnum
from .point_of_view_enum import PointOfViewEnum
__all__ = [
@@ -17,4 +20,7 @@ __all__ = [
"DistanceEnum",
"Job",
"PointOfViewEnum",
"ColourEnum",
"DepthEnum",
"LightingEnum",
]
+17 -4
View File
@@ -1,16 +1,29 @@
"""Definition of Annotation DTO."""
from .type_checking_base_model import TypeCheckingBaseModel
from .distance_enum import DistanceEnum
from .angle_enum import AngleEnum
from .point_of_view_enum import PointOfViewEnum
from .colour_enum import ColourEnum
from .contact_enum import ContactEnum
from .depth_enum import DepthEnum
from .distance_enum import DistanceEnum
from .lighting_enum import LightingEnum
from .point_of_view_enum import PointOfViewEnum
class Annotation(TypeCheckingBaseModel):
"""Data Transfer Object representing an Annotation."""
distance: DistanceEnum
angle: AngleEnum
point_of_view: PointOfViewEnum
angle_uncertainty: bool
colour: ColourEnum
colour_uncertainty: bool
contact: ContactEnum
contact_uncertainty: bool
depth: DepthEnum
depth_uncertainty: bool
distance: DistanceEnum
distance_uncertainty: bool
lighting: LightingEnum
lighting_uncertainty: bool
point_of_view: PointOfViewEnum
point_of_view_uncertainty: bool
+11
View File
@@ -0,0 +1,11 @@
"""Definition of ColourEnum DTO."""
from enum import StrEnum
class ColourEnum(StrEnum):
"""Enumeration for Colour values."""
HIGH = "high"
MEDIUM = "medium"
LOW = "low"
+11
View File
@@ -0,0 +1,11 @@
"""Definition of DepthEnum DTO."""
from enum import StrEnum
class DepthEnum(StrEnum):
"""Enumeration for Depth values."""
HIGH = "high"
MEDIUM = "medium"
LOW = "low"
+11
View File
@@ -0,0 +1,11 @@
"""Definition of LightingEnum DTO."""
from enum import StrEnum
class LightingEnum(StrEnum):
"""Enumeration for Lighting values."""
HIGH = "high"
MEDIUM = "medium"
LOW = "low"
@@ -11,10 +11,13 @@ from python_repositories.adapters import MinioAdapter
from data_store.interfaces import AnnotationRepositoryInterface
from data_store.dto import (
Annotation,
DistanceEnum,
AngleEnum,
PointOfViewEnum,
ColourEnum,
ContactEnum,
DepthEnum,
DistanceEnum,
LightingEnum,
PointOfViewEnum,
)
@@ -55,10 +58,20 @@ class AnnotationRepository(MinioAdapter, AnnotationRepositoryInterface):
data_str = buffer.read().decode(self.encoding)
data = json.loads(data_str)
annotation = Annotation(
distance=DistanceEnum(data["distance"]),
angle=AngleEnum(data["angle"]),
point_of_view=PointOfViewEnum(data["point_of_view"]),
angle_uncertainty=bool(data["angle_uncertainty"]),
colour=ColourEnum(data["colour"]),
colour_uncertainty=bool(data["colour_uncertainty"]),
contact=ContactEnum(data["contact"]),
contact_uncertainty=bool(data["contact_uncertainty"]),
depth=DepthEnum(data["depth"]),
depth_uncertainty=bool(data["depth_uncertainty"]),
distance=DistanceEnum(data["distance"]),
distance_uncertainty=bool(data["distance_uncertainty"]),
lighting=LightingEnum(data["lighting"]),
lighting_uncertainty=bool(data["lighting_uncertainty"]),
point_of_view=PointOfViewEnum(data["point_of_view"]),
point_of_view_uncertainty=bool(data["point_of_view_uncertainty"]),
)
except (KeyError, ValueError) as e:
self.logger.error(