From a79588ee5de845a7e265c1a3aded81674b14c4fd Mon Sep 17 00:00:00 2001 From: jtsodapop <67922677+jtsodapop@users.noreply.github.com> Date: Fri, 6 Nov 2020 12:16:32 -0800 Subject: [PATCH 1/3] Adding in function to toggle on and off model assisted labeling --- labelbox/schema/project.py | 29 +++++++++++++++++++++++++++- labelbox/schema/test_project.py | 21 ++++++++++++++++++++ tests/integration/test_toggle_mal.py | 13 +++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 labelbox/schema/test_project.py create mode 100644 tests/integration/test_toggle_mal.py diff --git a/labelbox/schema/project.py b/labelbox/schema/project.py index 6fa1f5b10..857aeb55a 100644 --- a/labelbox/schema/project.py +++ b/labelbox/schema/project.py @@ -367,6 +367,34 @@ def create_prediction(self, label, data_row, prediction_model=None): res = self.client.execute(query_str, params) return Prediction(self.client, res["createPrediction"]) + def enable_model_assisted_labeling(self, toggle:bool=True) -> bool: + """ Turns model assisted labeling either on or off based on input + + Args: + toggle (Boolean): True or False boolean + Returns: + True or False depending on the condition given + """ + + project_param = "project_id" + show_param = "show" + + query_str = """mutation toggle_model_assisted_labeling($%s: ID!, $%s: Boolean!) { + project(where: {id: $%s }) { + showPredictionsToLabelers(show: $%s) { + id, showingPredictionsToLabelers + } + } + }""" % (project_param, show_param,project_param, show_param) + + params = { + project_param: self.uid, + show_param: toggle + } + + res = self.client.execute(query_str, params) + return res["project"]["showPredictionsToLabelers"]["showingPredictionsToLabelers"] + def upload_annotations( self, name: str, @@ -432,7 +460,6 @@ def _is_url_valid(url: Union[str, Path]) -> bool: raise ValueError( f'Invalid annotations given of type: {type(annotations)}') - class LabelingParameterOverride(DbObject): priority = Field.Int("priority") number_of_labels = Field.Int("number_of_labels") diff --git a/labelbox/schema/test_project.py b/labelbox/schema/test_project.py new file mode 100644 index 000000000..2c1032f0b --- /dev/null +++ b/labelbox/schema/test_project.py @@ -0,0 +1,21 @@ +# from labelbox import Client +# from labelbox import Project +# from labelbox import Dataset +# import schema.project +import client +# import json +# import os +# from labelbox.schema.bulk_import_request import BulkImportRequest +# from labelbox.schema.enums import BulkImportRequestState +# import requests +# import ndjson +# import logging + +# os.system('clear)') +# logging.basicConfig(level = logging.DEBUG) + +# apikey = os.environ['apikey'] +# client = Client(apikey) + +# project = client.get_project("ckh3toeb6u8nt0721oae84nxu") +# project.enable_model_assisted_labeling() \ No newline at end of file diff --git a/tests/integration/test_toggle_mal.py b/tests/integration/test_toggle_mal.py new file mode 100644 index 000000000..7cf84614c --- /dev/null +++ b/tests/integration/test_toggle_mal.py @@ -0,0 +1,13 @@ +from labelbox import Client +from labelbox import Project +import pytest + +def test_enable_model_assisted_labeling(project): + response = project.enable_model_assisted_labeling() + assert response == True + + response = project.enable_model_assisted_labeling(True) + assert response == True + + response = project.enable_model_assisted_labeling(False) + assert response == False \ No newline at end of file From a1dbdf17b4ffc47be582c750698c21167d81671f Mon Sep 17 00:00:00 2001 From: jtsodapop <67922677+jtsodapop@users.noreply.github.com> Date: Fri, 6 Nov 2020 12:26:20 -0800 Subject: [PATCH 2/3] deleted unnecessary file --- labelbox/schema/test_project.py | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 labelbox/schema/test_project.py diff --git a/labelbox/schema/test_project.py b/labelbox/schema/test_project.py deleted file mode 100644 index 2c1032f0b..000000000 --- a/labelbox/schema/test_project.py +++ /dev/null @@ -1,21 +0,0 @@ -# from labelbox import Client -# from labelbox import Project -# from labelbox import Dataset -# import schema.project -import client -# import json -# import os -# from labelbox.schema.bulk_import_request import BulkImportRequest -# from labelbox.schema.enums import BulkImportRequestState -# import requests -# import ndjson -# import logging - -# os.system('clear)') -# logging.basicConfig(level = logging.DEBUG) - -# apikey = os.environ['apikey'] -# client = Client(apikey) - -# project = client.get_project("ckh3toeb6u8nt0721oae84nxu") -# project.enable_model_assisted_labeling() \ No newline at end of file From f9b84def31960d0dea545dfac51b9c8403d2bb3f Mon Sep 17 00:00:00 2001 From: jtsodapop <67922677+jtsodapop@users.noreply.github.com> Date: Fri, 6 Nov 2020 14:13:59 -0800 Subject: [PATCH 3/3] updating file --- labelbox/schema/project.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/labelbox/schema/project.py b/labelbox/schema/project.py index 857aeb55a..e2a6927c3 100644 --- a/labelbox/schema/project.py +++ b/labelbox/schema/project.py @@ -367,19 +367,19 @@ def create_prediction(self, label, data_row, prediction_model=None): res = self.client.execute(query_str, params) return Prediction(self.client, res["createPrediction"]) - def enable_model_assisted_labeling(self, toggle:bool=True) -> bool: + def enable_model_assisted_labeling(self, toggle: bool=True) -> bool: """ Turns model assisted labeling either on or off based on input Args: toggle (Boolean): True or False boolean Returns: - True or False depending on the condition given + True if toggled on or False if toggled off """ project_param = "project_id" show_param = "show" - query_str = """mutation toggle_model_assisted_labeling($%s: ID!, $%s: Boolean!) { + query_str = """mutation toggle_model_assisted_labelingPyApi($%s: ID!, $%s: Boolean!) { project(where: {id: $%s }) { showPredictionsToLabelers(show: $%s) { id, showingPredictionsToLabelers