11from labelbox .data .annotation_types .annotation import ClassificationAnnotation
2- from labelbox .data .annotation_types .classification .classification import Checklist , ClassificationAnswer , Radio , Text
2+ from labelbox .data .annotation_types .classification .classification import ClassificationAnswer , Radio , Text
33from labelbox .data .annotation_types .data .text import TextData
44from labelbox .data .annotation_types .label import Label
55
@@ -13,92 +13,23 @@ def test_serialization():
1313 text = "This is a test" ,
1414 ),
1515 annotations = [
16- ClassificationAnnotation (name = "free_text_annotation" ,
17- value = Text (confidence = 0.5 ,
18- answer = "text_answer" ))
16+ ClassificationAnnotation (
17+ name = "radio_question_geo" ,
18+ confidence = 0.5 ,
19+ value = Text (answer = "first_radio_answer" ))
1920 ])
2021
2122 serialized = NDJsonConverter .serialize ([label ])
2223 res = next (serialized )
23-
24- assert res ['confidence' ] == 0.5
25- assert res ['name' ] == "free_text_annotation"
26- assert res ['answer' ] == "text_answer"
24+ assert 'confidence' not in res # because confidence needs to be set on the annotation itself
25+ assert res ['name' ] == "radio_question_geo"
26+ assert res ['answer' ] == "first_radio_answer"
2727 assert res ['dataRow' ]['id' ] == "bkj7z2q0b0000jx6x0q2q7q0d"
2828
2929 deserialized = NDJsonConverter .deserialize ([res ])
3030 res = next (deserialized )
31-
3231 annotation = res .annotations [0 ]
33- answer = annotation .value .answer
3432
3533 annotation_value = annotation .value
3634 assert type (annotation_value ) is Text
37- assert annotation_value .answer == "text_answer"
38- assert annotation_value .confidence == 0.5
39-
40-
41- def test_nested_serialization ():
42- label = Label (
43- uid = "ckj7z2q0b0000jx6x0q2q7q0d" ,
44- data = TextData (
45- uid = "bkj7z2q0b0000jx6x0q2q7q0d" ,
46- text = "This is a test" ,
47- ),
48- annotations = [
49- ClassificationAnnotation (
50- name = "nested test" ,
51- value = Checklist (answer = [
52- ClassificationAnswer (
53- name = "first_answer" ,
54- confidence = 0.9 ,
55- classifications = [
56- ClassificationAnnotation (
57- name = "sub_radio_question" ,
58- value = Radio (answer = ClassificationAnswer (
59- name = "first_sub_radio_answer" ,
60- confidence = 0.8 ,
61- classifications = [
62- ClassificationAnnotation (
63- name = "nested answer" ,
64- value = Text (
65- answer = "nested answer" ,
66- confidence = 0.7 ,
67- ))
68- ])))
69- ])
70- ]),
71- )
72- ])
73-
74- serialized = NDJsonConverter .serialize ([label ])
75- res = next (serialized )
76-
77- assert res ['dataRow' ]['id' ] == "bkj7z2q0b0000jx6x0q2q7q0d"
78- answer = res ['answer' ][0 ]
79- assert answer ['confidence' ] == 0.9
80- assert answer ['name' ] == "first_answer"
81- classification = answer ['classifications' ][0 ]
82- nested_classification_answer = classification ['answer' ]
83- assert nested_classification_answer ['confidence' ] == 0.8
84- assert nested_classification_answer ['name' ] == "first_sub_radio_answer"
85- sub_classification = nested_classification_answer ['classifications' ][0 ]
86- assert sub_classification ['name' ] == "nested answer"
87- assert sub_classification ['answer' ] == "nested answer"
88- assert sub_classification ['confidence' ] == 0.7
89-
90- deserialized = NDJsonConverter .deserialize ([res ])
91- res = next (deserialized )
92- annotation = res .annotations [0 ]
93- answer = annotation .value .answer [0 ]
94- assert answer .confidence == 0.9
95- assert answer .name == "first_answer"
96-
97- classification_answer = answer .classifications [0 ].value .answer
98- assert classification_answer .confidence == 0.8
99- assert classification_answer .name == "first_sub_radio_answer"
100-
101- sub_classification_answer = classification_answer .classifications [0 ].value
102- assert type (sub_classification_answer ) is Text
103- assert sub_classification_answer .answer == "nested answer"
104- assert sub_classification_answer .confidence == 0.7
35+ assert annotation_value .answer == "first_radio_answer"
0 commit comments