Skip to content

Commit b2048e8

Browse files
committed
fix field name and answers
1 parent 4ed0663 commit b2048e8

File tree

4 files changed

+11
-22
lines changed

4 files changed

+11
-22
lines changed

labelbox/data/serialization/ndjson/classification.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212

1313
class NDFeature(BaseModel):
14-
schema_id: Optional[Cuid] = None
1514
name: Optional[str] = None
15+
schema_id: Optional[Cuid] = None
1616

1717
@root_validator()
1818
def must_set_one(cls, values):

labelbox/schema/bulk_import_request.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -675,20 +675,9 @@ class NDText(NDBase):
675675
#No feature schema to check
676676

677677

678-
class NDAnswer(BaseModel):
679-
schemaId: Optional[Cuid] = None
680-
value: Optional[str] = None
681-
682-
@root_validator
683-
def must_set_one(cls, values):
684-
if values['schemaId'] is None and values['value'] is None:
685-
raise ValueError("Must set either schemaId or value for answers")
686-
return values
687-
688-
689678
class NDChecklist(VideoSupported, NDBase):
690679
ontology_type: Literal["checklist"] = "checklist"
691-
answers: List[NDAnswer] = pydantic.Field(determinant=True)
680+
answers: List[NDFeatureSchema] = pydantic.Field(determinant=True)
692681

693682
@validator('answers', pre=True)
694683
def validate_answers(cls, value, field):
@@ -704,7 +693,7 @@ def validate_feature_schemas(self, valid_feature_schemas_by_id,
704693
self).validate_feature_schemas(valid_feature_schemas_by_id,
705694
valid_feature_schemas_by_name)
706695
#Test the feature schemas provided to the answer field
707-
if len(set([answer.value or answer.schemaId for answer in self.answers
696+
if len(set([answer.name or answer.schemaId for answer in self.answers
708697
])) != len(self.answers):
709698
raise ValueError(
710699
f"Duplicated featureSchema found for checklist {self.uuid}")
@@ -713,15 +702,15 @@ def validate_feature_schemas(self, valid_feature_schemas_by_id,
713702
self.
714703
name]['options'] if self.name else valid_feature_schemas_by_id[
715704
self.schemaId]['options']
716-
if answer.value not in options and answer.schemaId not in options:
705+
if answer.name not in options and answer.schemaId not in options:
717706
raise ValueError(
718707
f"Feature schema provided to {self.ontology_type} invalid. Expected on of {options}. Found {answer}"
719708
)
720709

721710

722711
class NDRadio(VideoSupported, NDBase):
723712
ontology_type: Literal["radio"] = "radio"
724-
answer: NDAnswer = pydantic.Field(determinant=True)
713+
answer: NDFeatureSchema = pydantic.Field(determinant=True)
725714

726715
def validate_feature_schemas(self, valid_feature_schemas_by_id,
727716
valid_feature_schemas_by_name):
@@ -731,9 +720,9 @@ def validate_feature_schemas(self, valid_feature_schemas_by_id,
731720
options = valid_feature_schemas_by_name[
732721
self.name]['options'] if self.name else valid_feature_schemas_by_id[
733722
self.schemaId]['options']
734-
if self.answer.value not in options and self.answer.schemaId not in options:
723+
if self.answer.name not in options and self.answer.schemaId not in options:
735724
raise ValueError(
736-
f"Feature schema provided to {self.ontology_type} invalid. Expected on of {options}. Found {self.answer.value or self.answer.schemaId}"
725+
f"Feature schema provided to {self.ontology_type} invalid. Expected on of {options}. Found {self.answer.name or self.answer.schemaId}"
737726
)
738727

739728

tests/data/assets/ndjson/classification_import_name_only.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
[
22
{
3-
"answer": { "schemaId": "ckrb1sfl8099g0y91cxbd5ftb" },
3+
"answer": { "name": "choice 1" },
44
"name": "classification a",
55
"dataRow": { "id": "ckrb1sf1i1g7i0ybcdc6oc8ct" },
66
"uuid": "f6879f59-d2b5-49c2-aceb-d9e8dc478673"
77
},
88
{
9-
"answer": [{ "schemaId": "ckrb1sfl8099e0y919v260awv" }],
9+
"answer": [{ "name": "choice 2" }],
1010
"name": "classification b",
1111
"dataRow": { "id": "ckrb1sf1i1g7i0ybcdc6oc8ct" },
1212
"uuid": "d009925d-91a3-4f67-abd9-753453f5a584"
1313
},
1414
{
1515
"answer": "a value",
16-
"name": "classification b",
16+
"name": "classification c",
1717
"dataRow": { "id": "ckrb1sf1i1g7i0ybcdc6oc8ct" },
1818
"uuid": "d009925d-91a3-4f67-abd9-753453f5a584"
1919
}

tests/integration/annotation_import/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ def rectangle_inference(prediction_id_mapping):
185185
"schemaId":
186186
rectangle['tool']['classifications'][0]['options'][0]
187187
['featureSchemaId'],
188-
"value":
188+
"name":
189189
rectangle['tool']['classifications'][0]['options'][0]
190190
['value']
191191
}

0 commit comments

Comments
 (0)