@@ -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