3131from labelbox .schema .identifiable import UniqueId , GlobalKey
3232from labelbox .schema .task import Task , DataUpsertTask
3333from labelbox .schema .user import User
34- < << << << HEAD
3534from labelbox .schema .iam_integration import IAMIntegration
36- == == == =
3735from labelbox .schema .internal .data_row_create_upsert import (DataRowItemBase ,
3836 DataRowUpsertItem ,
3937 DataRowCreateItem )
4038from labelbox .schema .internal .data_row_uploader import DataRowUploader
4139from labelbox .schema .internal .datarow_upload_constants import (
4240 MAX_DATAROW_PER_API_OPERATION , FILE_UPLOAD_THREAD_COUNT , UPSERT_CHUNK_SIZE )
43- > >> >> >> 58e48 ccf (Refactor upsert code so that it can be reused for create )
4441
4542logger = logging .getLogger (__name__ )
4643
@@ -644,11 +641,13 @@ def _exec_upsert_data_rows(
644641 task ._user = self .client .get_user ()
645642 return task
646643
647- def add_iam_integration (self , iam_integration : Union [str , IAMIntegration ]) -> IAMIntegration :
644+ def add_iam_integration (
645+ self , iam_integration : Union [str ,
646+ IAMIntegration ]) -> IAMIntegration :
648647 """
649648 Sets the IAM integration for the dataset. IAM integration is used to sign URLs for data row assets.
650649
651- Args:
650+ Args:
652651 iam_integration (Union[str, IAMIntegration]): IAM integration object or IAM integration id.
653652
654653 Returns:
@@ -679,7 +678,8 @@ def add_iam_integration(self, iam_integration: Union[str, IAMIntegration]) -> IA
679678 >>> dataset.set_iam_integration(iam_integration)
680679 """
681680
682- iam_integration_id = iam_integration .uid if isinstance (iam_integration , IAMIntegration ) else iam_integration
681+ iam_integration_id = iam_integration .uid if isinstance (
682+ iam_integration , IAMIntegration ) else iam_integration
683683
684684 query = """
685685 mutation SetSignerForDatasetPyApi($signerId: ID!, $datasetId: ID!) {
@@ -695,20 +695,30 @@ def add_iam_integration(self, iam_integration: Union[str, IAMIntegration]) -> IA
695695 }
696696 """
697697
698- response = self .client .execute (query , {"signerId" : iam_integration_id , "datasetId" : self .uid })
698+ response = self .client .execute (query , {
699+ "signerId" : iam_integration_id ,
700+ "datasetId" : self .uid
701+ })
699702
700703 if not response :
701- raise ResourceNotFoundError (IAMIntegration , {"signerId" : iam_integration_id , "datasetId" : self . uid })
702-
703- try :
704- iam_integration_id = response . get ( "setSignerForDataset" , {}). get ( "signer" , {})[ "id" ]
704+ raise ResourceNotFoundError (IAMIntegration , {
705+ "signerId" : iam_integration_id ,
706+ "datasetId" : self . uid
707+ })
705708
706- return [integration for integration
707- in self .client .get_organization ().get_iam_integrations ()
708- if integration .uid == iam_integration_id ][0 ]
709+ try :
710+ iam_integration_id = response .get ("setSignerForDataset" ,
711+ {}).get ("signer" , {})["id" ]
712+
713+ return [
714+ integration for integration in
715+ self .client .get_organization ().get_iam_integrations ()
716+ if integration .uid == iam_integration_id
717+ ][0 ]
709718 except :
710- raise LabelboxError (f"Can't retrieve IAM integration { iam_integration_id } " )
711-
719+ raise LabelboxError (
720+ f"Can't retrieve IAM integration { iam_integration_id } " )
721+
712722 def remove_iam_integration (self ) -> None :
713723 """
714724 Unsets the IAM integration for the dataset.
@@ -738,4 +748,3 @@ def remove_iam_integration(self) -> None:
738748
739749 if not response :
740750 raise ResourceNotFoundError (Dataset , {"id" : self .uid })
741-
0 commit comments