Skip to content

Commit e858b25

Browse files
authored
[AL-5519] Add SDK Validation (#1053)
1 parent 1fb42f7 commit e858b25

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

labelbox/schema/data_row.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from labelbox.orm.db_object import DbObject, Updateable, BulkDeletable
88
from labelbox.orm.model import Entity, Field, Relationship
99
from labelbox.schema.data_row_metadata import DataRowMetadataField # type: ignore
10-
from labelbox.schema.export_params import CatalogExportParams
10+
from labelbox.schema.export_params import CatalogExportParams, validate_catalog_export_params
1111
from labelbox.schema.task import Task
1212
from labelbox.schema.user import User # type: ignore
1313

@@ -177,7 +177,6 @@ def export_v2(client: 'Client',
177177
>>> task.wait_till_done()
178178
>>> task.result
179179
"""
180-
print('export start')
181180

182181
_params = params or CatalogExportParams({
183182
"attachments": False,
@@ -191,6 +190,8 @@ def export_v2(client: 'Client',
191190
"project_ids": None,
192191
})
193192

193+
validate_catalog_export_params(_params)
194+
194195
mutation_name = "exportDataRowsInCatalog"
195196
create_task_query_str = """mutation exportDataRowsInCatalogPyApi($input: ExportDataRowsInCatalogInput!){
196197
%s(input: $input) {taskId} }

labelbox/schema/dataset.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from labelbox.exceptions import MalformedQueryException
2020
from labelbox.schema.data_row import DataRow
2121
from labelbox.schema.export_filters import DatasetExportFilters, SharedExportFilters
22-
from labelbox.schema.export_params import CatalogExportParams
22+
from labelbox.schema.export_params import CatalogExportParams, validate_catalog_export_params
2323
from labelbox.schema.project import _validate_datetime
2424
from labelbox.schema.task import Task
2525
from labelbox.schema.user import User
@@ -570,6 +570,7 @@ def export_v2(self,
570570
"model_run_ids": None,
571571
"project_ids": None,
572572
})
573+
validate_catalog_export_params(_params)
573574

574575
_filters = filters or DatasetExportFilters({
575576
"last_activity_at": None,

labelbox/schema/export_params.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
from typing import Optional, List
44

5+
EXPORT_LIMIT = 30
6+
57
from labelbox.schema.media_type import MediaType
68
if sys.version_info >= (3, 8):
79
from typing import TypedDict
@@ -32,4 +34,19 @@ class CatalogExportParams(DataRowParams):
3234

3335

3436
class ModelRunExportParams(DataRowParams):
35-
predictions: Optional[bool]
37+
predictions: Optional[bool]
38+
39+
40+
def _validate_array_length(array, max_length, array_name):
41+
if len(array) > max_length:
42+
raise ValueError(f"{array_name} cannot exceed {max_length} items")
43+
44+
45+
def validate_catalog_export_params(params: CatalogExportParams):
46+
if "model_run_ids" in params and params["model_run_ids"] is not None:
47+
_validate_array_length(params["model_run_ids"], EXPORT_LIMIT,
48+
"model_run_ids")
49+
50+
if "project_ids" in params and params["project_ids"] is not None:
51+
_validate_array_length(params["project_ids"], EXPORT_LIMIT,
52+
"project_ids")

labelbox/schema/slice.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from labelbox.orm.db_object import DbObject
44
from labelbox.orm.model import Entity, Field
55
from labelbox.pagination import PaginatedCollection
6-
from labelbox.schema.export_params import CatalogExportParams
6+
from labelbox.schema.export_params import CatalogExportParams, validate_catalog_export_params
77
from labelbox.schema.task import Task
88
from labelbox.schema.user import User
99

@@ -88,6 +88,7 @@ def export_v2(self,
8888
"model_run_ids": None,
8989
"project_ids": None,
9090
})
91+
validate_catalog_export_params(_params)
9192

9293
mutation_name = "exportDataRowsInSlice"
9394
create_task_query_str = """mutation exportDataRowsInSlicePyApi($input: ExportDataRowsInSliceInput!){

0 commit comments

Comments
 (0)