From dc8d562c03eb09fb6c2df9b575d36a89a046119d Mon Sep 17 00:00:00 2001 From: Lukasz Gluszek Date: Tue, 16 Sep 2025 16:05:52 +0200 Subject: [PATCH 1/3] Model config response count support --- libs/labelbox/src/labelbox/schema/project.py | 10 +++++++--- requirements-dev.lock | 2 ++ requirements.lock | 2 ++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/libs/labelbox/src/labelbox/schema/project.py b/libs/labelbox/src/labelbox/schema/project.py index 8c89b9ae4..0f61278db 100644 --- a/libs/labelbox/src/labelbox/schema/project.py +++ b/libs/labelbox/src/labelbox/schema/project.py @@ -1118,18 +1118,19 @@ def get_label_count(self) -> int: res = self.client.execute(query_str, {"projectId": self.uid}) return res["project"]["labelCount"] - def add_model_config(self, model_config_id: str) -> str: + def add_model_config(self, model_config_id: str, response_count: Optional[int] = None) -> str: """Adds a model config to this project. Args: model_config_id (str): ID of a model config to add to this project. + response_count (Optional[int]): Number of responses to generate. If not provided, uses the default. Returns: str, ID of the project model config association. This is needed for updating and deleting associations. """ - query = """mutation CreateProjectModelConfigPyApi($projectId: ID!, $modelConfigId: ID!) { - createProjectModelConfig(input: {projectId: $projectId, modelConfigId: $modelConfigId}) { + query = """mutation CreateProjectModelConfigPyApi($projectId: ID!, $modelConfigId: ID!, $responseCount: Int) { + createProjectModelConfig(input: {projectId: $projectId, modelConfigId: $modelConfigId, responseCount: $responseCount}) { projectModelConfigId } }""" @@ -1138,6 +1139,9 @@ def add_model_config(self, model_config_id: str) -> str: "projectId": self.uid, "modelConfigId": model_config_id, } + + if response_count is not None: + params["responseCount"] = response_count try: result = self.client.execute(query, params) except LabelboxError as e: diff --git a/requirements-dev.lock b/requirements-dev.lock index 4dceb50ea..16352cfee 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -6,6 +6,8 @@ # features: [] # all-features: true # with-sources: false +# generate-hashes: false +# universal: false -e file:libs/labelbox -e file:libs/lbox-clients diff --git a/requirements.lock b/requirements.lock index bc7d7303e..fdf76ce9b 100644 --- a/requirements.lock +++ b/requirements.lock @@ -6,6 +6,8 @@ # features: [] # all-features: true # with-sources: false +# generate-hashes: false +# universal: false -e file:libs/labelbox -e file:libs/lbox-clients From 604cb75fcfad0f344dc9130a965029e3cf9cf122 Mon Sep 17 00:00:00 2001 From: Lukasz Gluszek Date: Tue, 16 Sep 2025 16:10:26 +0200 Subject: [PATCH 2/3] Revert changes --- requirements-dev.lock | 2 -- requirements.lock | 2 -- 2 files changed, 4 deletions(-) diff --git a/requirements-dev.lock b/requirements-dev.lock index 16352cfee..4dceb50ea 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -6,8 +6,6 @@ # features: [] # all-features: true # with-sources: false -# generate-hashes: false -# universal: false -e file:libs/labelbox -e file:libs/lbox-clients diff --git a/requirements.lock b/requirements.lock index fdf76ce9b..bc7d7303e 100644 --- a/requirements.lock +++ b/requirements.lock @@ -6,8 +6,6 @@ # features: [] # all-features: true # with-sources: false -# generate-hashes: false -# universal: false -e file:libs/labelbox -e file:libs/lbox-clients From 58f0782c00b1219d4b41088b88a34e57ced32b08 Mon Sep 17 00:00:00 2001 From: Lukasz Gluszek Date: Wed, 17 Sep 2025 12:26:02 +0200 Subject: [PATCH 3/3] Always include param --- libs/labelbox/src/labelbox/schema/project.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libs/labelbox/src/labelbox/schema/project.py b/libs/labelbox/src/labelbox/schema/project.py index 0f61278db..48b678675 100644 --- a/libs/labelbox/src/labelbox/schema/project.py +++ b/libs/labelbox/src/labelbox/schema/project.py @@ -1138,10 +1138,8 @@ def add_model_config(self, model_config_id: str, response_count: Optional[int] = params = { "projectId": self.uid, "modelConfigId": model_config_id, + "responseCount": response_count, } - - if response_count is not None: - params["responseCount"] = response_count try: result = self.client.execute(query, params) except LabelboxError as e: