Skip to content

Commit 2d67fcc

Browse files
committed
get_all_submission_statuses now returns a list of substat objects
1 parent 6aa914a commit 2d67fcc

File tree

1 file changed

+36
-18
lines changed

1 file changed

+36
-18
lines changed

synapseclient/models/submission_status.py

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def get_all_submission_statuses(
8989
offset: int = 0,
9090
*,
9191
synapse_client: Optional[Synapse] = None,
92-
) -> Dict:
92+
) -> List["SubmissionStatus"]:
9393
"""
9494
Gets a collection of SubmissionStatuses to a specified Evaluation.
9595
@@ -105,8 +105,7 @@ def get_all_submission_statuses(
105105
instance from the Synapse class constructor.
106106
107107
Returns:
108-
A PaginatedResults<SubmissionStatus> object as a JSON dict containing
109-
a paginated list of submission statuses for the evaluation queue.
108+
A list of SubmissionStatus objects for the evaluation queue.
110109
111110
Example: Getting all submission statuses for an evaluation
112111
```python
@@ -116,15 +115,17 @@ def get_all_submission_statuses(
116115
syn = Synapse()
117116
syn.login()
118117
119-
response = SubmissionStatus.get_all_submission_statuses(
118+
statuses = SubmissionStatus.get_all_submission_statuses(
120119
evaluation_id="9614543",
121120
status="SCORED",
122121
limit=50
123122
)
124-
print(f"Found {len(response['results'])} submission statuses")
123+
print(f"Found {len(statuses)} submission statuses")
124+
for status in statuses:
125+
print(f"Status ID: {status.id}, Status: {status.status}")
125126
```
126127
"""
127-
return {}
128+
return []
128129

129130
@staticmethod
130131
def batch_update_submission_statuses(
@@ -386,7 +387,6 @@ def fill_from_dict(
386387
self.submission_annotations = Annotations.from_dict(
387388
submission_annotations_dict
388389
)
389-
print(self.submission_annotations)
390390

391391
return self
392392

@@ -611,7 +611,7 @@ async def get_all_submission_statuses_async(
611611
offset: int = 0,
612612
*,
613613
synapse_client: Optional[Synapse] = None,
614-
) -> Dict:
614+
) -> List["SubmissionStatus"]:
615615
"""
616616
Gets a collection of SubmissionStatuses to a specified Evaluation.
617617
@@ -627,8 +627,7 @@ async def get_all_submission_statuses_async(
627627
instance from the Synapse class constructor.
628628
629629
Returns:
630-
A PaginatedResults<SubmissionStatus> object as a JSON dict containing
631-
a paginated list of submission statuses for the evaluation queue.
630+
A list of SubmissionStatus objects for the evaluation queue.
632631
633632
Example: Getting all submission statuses for an evaluation
634633
```python
@@ -638,22 +637,36 @@ async def get_all_submission_statuses_async(
638637
syn = Synapse()
639638
syn.login()
640639
641-
response = await SubmissionStatus.get_all_submission_statuses_async(
640+
statuses = await SubmissionStatus.get_all_submission_statuses_async(
642641
evaluation_id="9614543",
643642
status="SCORED",
644643
limit=50
645644
)
646-
print(f"Found {len(response['results'])} submission statuses")
645+
print(f"Found {len(statuses)} submission statuses")
646+
for status in statuses:
647+
print(f"Status ID: {status.id}, Status: {status.status}")
647648
```
648649
"""
649-
return await evaluation_services.get_all_submission_statuses(
650+
response = await evaluation_services.get_all_submission_statuses(
650651
evaluation_id=evaluation_id,
651652
status=status,
652653
limit=limit,
653654
offset=offset,
654655
synapse_client=synapse_client,
655656
)
656657

658+
# Convert each result to a SubmissionStatus object
659+
submission_statuses = []
660+
for status_dict in response.get("results", []):
661+
submission_status = SubmissionStatus()
662+
submission_status.fill_from_dict(status_dict)
663+
# Manually set evaluation_id since it's not part of the response
664+
submission_status.evaluation_id = evaluation_id
665+
submission_status._set_last_persistent_instance()
666+
submission_statuses.append(submission_status)
667+
668+
return submission_statuses
669+
657670
@staticmethod
658671
async def batch_update_submission_statuses_async(
659672
evaluation_id: str,
@@ -689,12 +702,17 @@ async def batch_update_submission_statuses_async(
689702
syn = Synapse()
690703
syn.login()
691704
692-
# Prepare list of status updates
693-
statuses = [
694-
SubmissionStatus(id="syn1", status="SCORED", submission_annotations={"score": [90.0]}),
695-
SubmissionStatus(id="syn2", status="SCORED", submission_annotations={"score": [85.0]})
696-
]
705+
# Retrieve existing statuses to update
706+
statuses = SubmissionStatus.get_all_submission_statuses(
707+
evaluation_id="9614543",
708+
status="RECEIVED"
709+
)
710+
711+
# Modify statuses as needed
712+
for status in statuses:
713+
status.status = "SCORED"
697714
715+
# Update statuses in batch
698716
response = await SubmissionStatus.batch_update_submission_statuses_async(
699717
evaluation_id="9614543",
700718
statuses=statuses,

0 commit comments

Comments
 (0)