@@ -52,6 +52,18 @@ def __str__(self) -> str:
52
52
"""Convenience attribute for checking if values are valid label types"""
53
53
54
54
55
+ class LabelTask (str , Enum ):
56
+ """Enumerates recommended label tasks."""
57
+
58
+ def __str__ (self ) -> str :
59
+ return str (self .value )
60
+
61
+ REGRESSION = "regression"
62
+ CLASSIFICATION = "classification"
63
+ DETECTION = "detection"
64
+ SEGMENTATION = "segmentation"
65
+
66
+
55
67
class LabelClasses :
56
68
"""Defines the list of possible class names (e.g., tree, building, car, hippo).
57
69
@@ -403,7 +415,7 @@ def apply(
403
415
label_type : LabelType ,
404
416
label_properties : Optional [List [str ]] = None ,
405
417
label_classes : Optional [List [LabelClasses ]] = None ,
406
- label_tasks : Optional [List [str ]] = None ,
418
+ label_tasks : Optional [List [Union [ LabelTask , str ] ]] = None ,
407
419
label_methods : Optional [List [str ]] = None ,
408
420
label_overviews : Optional [List [LabelOverview ]] = None ,
409
421
) -> None :
@@ -499,14 +511,14 @@ def label_classes(self, v: Optional[List[LabelClasses]]) -> None:
499
511
self .obj .properties [CLASSES_PROP ] = classes
500
512
501
513
@property
502
- def label_tasks (self ) -> Optional [List [str ]]:
514
+ def label_tasks (self ) -> Optional [List [Union [ LabelTask , str ] ]]:
503
515
"""Gets or set a list of tasks these labels apply to. Usually a subset of 'regression',
504
516
'classification', 'detection', or 'segmentation', but may be arbitrary
505
517
values."""
506
518
return self .obj .properties .get (TASKS_PROP )
507
519
508
520
@label_tasks .setter
509
- def label_tasks (self , v : Optional [List [str ]]) -> None :
521
+ def label_tasks (self , v : Optional [List [Union [ LabelTask , str ] ]]) -> None :
510
522
if v is None :
511
523
self .obj .properties .pop (TASKS_PROP , None )
512
524
else :
0 commit comments