diff --git a/labelbox/schema/project.py b/labelbox/schema/project.py index 9fe774d6c..44503ec82 100644 --- a/labelbox/schema/project.py +++ b/labelbox/schema/project.py @@ -1149,6 +1149,20 @@ def _update_queue_mode(self, mode: "QueueMode") -> "QueueMode": return mode + def get_label_count(self) -> int: + """ + Returns: the total number of labels in this project. + """ + + query_str = """query LabelCountPyApi($projectId: ID!) { + project(where: {id: $projectId}) { + labelCount + } + }""" + + res = self.client.execute(query_str, {'projectId': self.uid}) + return res["project"]["labelCount"] + def get_queue_mode(self) -> "QueueMode": """ Provides the queue mode used for this project. diff --git a/tests/integration/test_project.py b/tests/integration/test_project.py index 1f7118db7..d9c93b99c 100644 --- a/tests/integration/test_project.py +++ b/tests/integration/test_project.py @@ -280,3 +280,13 @@ def test_queue_mode(client, rand_gen): quality_mode=QualityMode.Consensus) assert project.auto_audit_number_of_labels == 3 assert project.auto_audit_percentage == 0 + + +def test_label_count(client, configured_batch_project_with_label): + project = client.create_project(name="test label count") + assert project.get_label_count() == 0 + project.delete() + + [source_project, _, _, _] = configured_batch_project_with_label + num_labels = sum([1 for _ in source_project.labels()]) + assert source_project.get_label_count() == num_labels