Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions indico/queries/questionnaire.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,53 @@ class GetQuestionnaireExamples(GraphQLRequest["List[Example]"]):
examples(numExamples: $num_examples, datafileId: $datafile_id) {
rowIndex
datafileId
sourceFileId
datarowId
datapointId
datarowIds
datafileIds
datapointIds
status
source
id
partial
autolabeled
originalDatafileId
originalDatafileName
context {
id
source
datafileId
spans {
start
end
pageNum
}
bounds {
top
bottom
left
right
value
}
}
contexts {
id
source
datafileId
spans {
start
end
pageNum
}
bounds {
top
bottom
left
right
value
}
}
}
}
}
Expand Down
30 changes: 28 additions & 2 deletions indico/types/questionnaire.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import List
from typing import List, Optional

from indico.types.base import BaseType

Expand Down Expand Up @@ -26,12 +26,38 @@ class Questionnaire(BaseType):
question: Question


class ExampleContext(BaseType):
"""
The portion of the source file that this example will cover
"""
id: int
source: Optional[str]
datafile_id: Optional[int]
spans: Optional[List[dict]]
bounds: Optional[List[dict]]


class Example(BaseType):
row_index: int
datafile_id: int
# Deprecated fields - use the plural versions instead
datarow_id: Optional[int]
datafile_id: Optional[int]
datapoint_id: Optional[int]
# New plural fields
datarow_ids: Optional[List[int]]
datafile_ids: Optional[List[int]]
datapoint_ids: Optional[List[int]]
source_file_id: Optional[int]
status: str
source: str
id: int
partial: Optional[bool]
autolabeled: Optional[bool]
original_datafile_id: Optional[int]
original_datafile_name: Optional[str]
# Return one context for backwards compatibility
context: Optional[ExampleContext]
contexts: Optional[List[ExampleContext]]


class QuestionnaireExamples(BaseType):
Expand Down
13 changes: 13 additions & 0 deletions tests/integration/queries/test_questionnaire.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,18 @@ def test_get_examples(indico, unlabeled_questionnaire):
assert isinstance(example.source, str)
assert isinstance(example.row_index, int)
assert isinstance(example.datafile_id, int)
assert hasattr(example, "source_file_id")
assert hasattr(example, "datarow_id")
assert hasattr(example, "datapoint_id")
assert hasattr(example, "datarow_ids")
assert hasattr(example, "datafile_ids")
assert hasattr(example, "datapoint_ids")
assert hasattr(example, "partial")
assert hasattr(example, "autolabeled")
assert hasattr(example, "original_datafile_id")
assert hasattr(example, "original_datafile_name")
assert hasattr(example, "context")
assert hasattr(example, "contexts")


def test_add_labels(indico, unlabeled_questionnaire):
Expand Down Expand Up @@ -183,3 +195,4 @@ def test_add_labels(indico, unlabeled_questionnaire):
)
assert questionnaire.num_total_examples == 3
assert questionnaire.num_fully_labeled == 1