Source code for labelbox.schema.label

from typing import TYPE_CHECKING

from labelbox.orm import query
from labelbox.orm.db_object import DbObject, Updateable, BulkDeletable
from labelbox.orm.model import Entity, Field, Relationship

if TYPE_CHECKING:
    from labelbox import Benchmark, Review
""" Client-side object type definitions. """


[docs]class Label(DbObject, Updateable, BulkDeletable): """Label represents an assessment on a DataRow. For example one label could contain 100 bounding boxes (annotations). Attributes: label (str) seconds_to_label (float) agreement (float) benchmark_agreement (float) is_benchmark_reference (bool) project (Relationship): `ToOne` relationship to Project data_row (Relationship): `ToOne` relationship to DataRow reviews (Relationship): `ToMany` relationship to Review created_by (Relationship): `ToOne` relationship to User """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.reviews.supports_filtering = False label = Field.String("label") seconds_to_label = Field.Float("seconds_to_label") agreement = Field.Float("agreement") benchmark_agreement = Field.Float("benchmark_agreement") is_benchmark_reference = Field.Boolean("is_benchmark_reference") updated_at = Field.DateTime("updated_at") created_at = Field.DateTime("created_at") project = Relationship.ToOne("Project") data_row = Relationship.ToOne("DataRow") reviews = Relationship.ToMany("Review", False) created_by = Relationship.ToOne("User", False, "created_by")
[docs] @staticmethod def bulk_delete(labels) -> None: """Deletes all the given Labels. Args: labels (list of Label): The Labels to delete. """ BulkDeletable._bulk_delete(labels, False)
[docs] def create_review(self, **kwargs) -> "Review": """Creates a Review for this label. Args: **kwargs: Review attributes. At a minimum, a `Review.score` field value must be provided. """ kwargs[Entity.Review.label.name] = self kwargs[Entity.Review.project.name] = self.project() return self.client._create(Entity.Review, kwargs)
[docs] def create_benchmark(self) -> "Benchmark": """Creates a Benchmark for this Label. Returns: The newly created Benchmark. """ label_id_param = "labelId" query_str = """mutation CreateBenchmarkPyApi($%s: ID!) { createBenchmark(data: {labelId: $%s}) {%s}} """ % ( label_id_param, label_id_param, query.results_query_part(Entity.Benchmark), ) res = self.client.execute(query_str, {label_id_param: self.uid}) return Entity.Benchmark(self.client, res["createBenchmark"])