Skip to content

Commit 6ae120b

Browse files
committed
Add LabelMethod enum
1 parent dbb8db9 commit 6ae120b

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

pystac/extensions/label.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def __str__(self) -> str:
5353

5454

5555
class LabelTask(str, Enum):
56-
"""Enumerates recommended label tasks."""
56+
"""Enumerates recommended values for "label:tasks" field."""
5757

5858
def __str__(self) -> str:
5959
return str(self.value)
@@ -64,6 +64,16 @@ def __str__(self) -> str:
6464
SEGMENTATION = "segmentation"
6565

6666

67+
class LabelMethod(str, Enum):
68+
"""Enumerates recommended values for "label:methods" field."""
69+
70+
def __str__(self) -> str:
71+
return str(self.value)
72+
73+
AUTOMATED = "automated"
74+
MANUAL = "manual"
75+
76+
6777
class LabelClasses:
6878
"""Defines the list of possible class names (e.g., tree, building, car, hippo).
6979
@@ -452,7 +462,7 @@ def apply(
452462
label_properties: Optional[List[str]] = None,
453463
label_classes: Optional[List[LabelClasses]] = None,
454464
label_tasks: Optional[List[Union[LabelTask, str]]] = None,
455-
label_methods: Optional[List[str]] = None,
465+
label_methods: Optional[List[Union[LabelMethod, str]]] = None,
456466
label_overviews: Optional[List[LabelOverview]] = None,
457467
) -> None:
458468
"""Applies label extension properties to the extended Item.
@@ -561,14 +571,14 @@ def label_tasks(self, v: Optional[List[Union[LabelTask, str]]]) -> None:
561571
self.obj.properties[TASKS_PROP] = v
562572

563573
@property
564-
def label_methods(self) -> Optional[List[str]]:
574+
def label_methods(self) -> Optional[List[Union[LabelMethod, str]]]:
565575
"""Gets or set a list of methods used for labeling.
566576
567577
Usually a subset of 'automated' or 'manual', but may be arbitrary values."""
568578
return self.obj.properties.get("label:methods")
569579

570580
@label_methods.setter
571-
def label_methods(self, v: Optional[List[str]]) -> None:
581+
def label_methods(self, v: Optional[List[Union[LabelMethod, str]]]) -> None:
572582
if v is None:
573583
self.obj.properties.pop("label:methods", None)
574584
else:
@@ -769,15 +779,15 @@ def label_tasks(self, v: Optional[List[Union[LabelTask, str]]]) -> None:
769779
self._set_summary(TASKS_PROP, v)
770780

771781
@property
772-
def label_methods(self) -> Optional[List[str]]:
782+
def label_methods(self) -> Optional[List[Union[LabelMethod, str]]]:
773783
"""Get or sets the summary of :attr:`LabelExtension.label_methods` values
774784
for this Collection.
775785
"""
776786

777787
return self.summaries.get_list(METHODS_PROP)
778788

779789
@label_methods.setter
780-
def label_methods(self, v: Optional[List[str]]) -> None:
790+
def label_methods(self, v: Optional[List[Union[LabelMethod, str]]]) -> None:
781791
self._set_summary(METHODS_PROP, v)
782792

783793

0 commit comments

Comments
 (0)