Skip to content

Commit 79d3d0c

Browse files
author
Val Brodsky
committed
Add docstrings
1 parent d4fc695 commit 79d3d0c

File tree

3 files changed

+47
-17
lines changed

3 files changed

+47
-17
lines changed

libs/labelbox/src/labelbox/schema/dataset.py

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,13 @@
3131
from labelbox.schema.identifiable import UniqueId, GlobalKey
3232
from labelbox.schema.task import Task, DataUpsertTask
3333
from labelbox.schema.user import User
34-
<<<<<<< HEAD
3534
from labelbox.schema.iam_integration import IAMIntegration
36-
=======
3735
from labelbox.schema.internal.data_row_create_upsert import (DataRowItemBase,
3836
DataRowUpsertItem,
3937
DataRowCreateItem)
4038
from labelbox.schema.internal.data_row_uploader import DataRowUploader
4139
from labelbox.schema.internal.datarow_upload_constants import (
4240
MAX_DATAROW_PER_API_OPERATION, FILE_UPLOAD_THREAD_COUNT, UPSERT_CHUNK_SIZE)
43-
>>>>>>> 58e48ccf (Refactor upsert code so that it can be reused for create)
4441

4542
logger = 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-

libs/labelbox/src/labelbox/schema/internal/data_row_create_upsert.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77

88
class DataRowItemBase(BaseModel, ABC):
9+
"""
10+
Base class for creating payloads for upsert operations.
11+
"""
912
id: dict
1013
payload: dict
1114

libs/labelbox/src/labelbox/schema/task.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,9 @@ def get_task(client, task_id):
230230

231231

232232
class DataUpsertTask(Task):
233+
"""
234+
Task class for data row upsert operations
235+
"""
233236
__max_donwload_size: Final = MAX_DATAROW_PER_API_OPERATION
234237

235238
def __init__(self, *args, **kwargs):
@@ -238,12 +241,18 @@ def __init__(self, *args, **kwargs):
238241

239242
@property
240243
def result(self) -> Optional[List[Dict[str, Any]]]: # type: ignore
244+
"""
245+
Fetches maximum 150K results. If you need to fetch more, use `result_all` property
246+
"""
241247
if self.status == "FAILED":
242248
raise ValueError(f"Job failed. Errors : {self.errors}")
243249
return self._results_as_list()
244250

245251
@property
246252
def errors(self) -> Optional[List[Dict[str, Any]]]: # type: ignore
253+
"""
254+
Fetches maximum 150K errors. If you need to fetch more, use `errors_all` property
255+
"""
247256
return self._errors_as_list()
248257

249258
@property
@@ -258,10 +267,19 @@ def failed_data_rows( # type: ignore
258267

259268
@property
260269
def result_all(self) -> PaginatedCollection:
270+
"""
271+
This method uses our standard PaginatedCollection and allow to fetch any number of results
272+
See here for more https://docs.labelbox.com/reference/sdk-fundamental-concepts-1#iterate-over-paginatedcollection
273+
"""
261274
return self._download_results_paginated()
262275

263276
@property
264277
def errors_all(self) -> PaginatedCollection:
278+
"""
279+
This method uses our standard PaginatedCollection and allow to fetch any number of errors
280+
See here for more https://docs.labelbox.com/reference/sdk-fundamental-concepts-1#iterate-over-paginatedcollection
281+
"""
282+
265283
return self._download_errors_paginated()
266284

267285
def _download_results_paginated(self) -> PaginatedCollection:

0 commit comments

Comments
 (0)