DataRow Metadata

class labelbox.schema.data_row_metadata.DataRowMetadataKind(value)[source]

Bases: Enum

An enumeration.

class labelbox.schema.data_row_metadata.DataRowMetadataOntology(client)[source]

Bases: object

Ontology for data row metadata

Metadata provides additional context for a data rows. Metadata is broken into two classes reserved and custom. Reserved fields are defined by Labelbox and used for creating specific experiences in the platform.

>>> mdo = client.get_data_row_metadata_ontology()
bulk_delete(deletes: List[DeleteDataRowMetadata]) List[DataRowMetadataBatchResponse][source]

Delete metadata from a datarow by specifiying the fields you want to remove

>>> delete = DeleteDataRowMetadata(
>>>                 data_row_id=UniqueId("datarow-id"),
>>>                 fields=[
>>>                        "schema-id-1",
>>>                        "schema-id-2"
>>>                        ...
>>>                    ]
>>>    )
>>> mdo.batch_delete([metadata])
>>> delete = DeleteDataRowMetadata(
>>>                 data_row_id=GlobalKey("global-key"),
>>>                 fields=[
>>>                        "schema-id-1",
>>>                        "schema-id-2"
>>>                        ...
>>>                    ]
>>>    )
>>> mdo.batch_delete([metadata])
>>> delete = DeleteDataRowMetadata(
>>>                 data_row_id="global-key",
>>>                 fields=[
>>>                        "schema-id-1",
>>>                        "schema-id-2"
>>>                        ...
>>>                    ]
>>>    )
>>> mdo.batch_delete([metadata])
Parameters:

deletes – Data row and schema ids to delete For data row, we support UniqueId, str, and GlobalKey. If you pass a str, we will assume it is a UniqueId Do not pass a mix of data row ids and global keys in the same list

Returns:

list of unsuccessful deletions. An empty list means all data rows were successfully deleted.

bulk_export(data_row_ids: List[str]) List[DataRowMetadata][source]
bulk_export(data_row_ids: UniqueIds | GlobalKeys) List[DataRowMetadata]

Exports metadata for a list of data rows

>>> mdo.bulk_export([data_row.uid for data_row in data_rows])
Parameters:
  • data_row_ids – List of data data rows to fetch metadata for. This can be a list of strings or a DataRowIdentifiers object

  • class. (DataRowIdentifier objects are lists of ids or global keys. A DataIdentifier object can be a UniqueIds or GlobalKeys) –

Returns:

A list of DataRowMetadata. There will be one DataRowMetadata for each data_row_id passed in. This is true even if the data row does not have any meta data. Data rows without metadata will have empty fields.

bulk_upsert(metadata: List[DataRowMetadata]) List[DataRowMetadataBatchResponse][source]

Upsert metadata to a list of data rows

You may specify data row by either data_row_id or global_key

>>> metadata = DataRowMetadata(
>>>                 data_row_id="datarow-id", # Alternatively, set global_key="global-key"
>>>                 fields=[
>>>                        DataRowMetadataField(schema_id="schema-id", value="my-message"),
>>>                        ...
>>>                    ]
>>>    )
>>> mdo.batch_upsert([metadata])
Parameters:

metadata – List of DataRow Metadata to upsert

Returns:

list of unsuccessful upserts. An empty list means the upload was successful.

create_schema(name: str, kind: DataRowMetadataKind, options: List[str] | None = None) DataRowMetadataSchema[source]

Create metadata schema

>>> mdo.create_schema(name, kind, options)
Parameters:
  • name (str) – Name of metadata schema

  • kind (DataRowMetadataKind) – Kind of metadata schema as DataRowMetadataKind

  • options (List[str]) – List of Enum options

Returns:

Created metadata schema as DataRowMetadataSchema

Raises:

KeyError – When provided name is not a valid custom metadata

delete_schema(name: str) bool[source]

Delete metadata schema

>>> mdo.delete_schema(name)
Parameters:

name – Name of metadata schema to delete

Returns:

True if deletion is successful, False if unsuccessful

Raises:

KeyError – When provided name is not a valid custom metadata

get_by_name(name: str) DataRowMetadataSchema | Dict[str, DataRowMetadataSchema][source]

Get metadata by name

>>> mdo.get_by_name(name)
Parameters:

name (str) – Name of metadata schema

Returns:

Metadata schema as DataRowMetadataSchema or dict, in case of Enum metadata

Raises:

KeyError – When provided name is not presented in neither reserved nor custom metadata list

parse_metadata(unparsed: List[Dict[str, List[str | Dict]]]) List[DataRowMetadata][source]

Parse metadata responses

>>> mdo.parse_metadata([metadata])
Parameters:

unparsed – An unparsed metadata export

Returns:

List of DataRowMetadata

Return type:

metadata

parse_metadata_fields(unparsed: List[Dict[str, Dict]]) List[DataRowMetadataField][source]

Parse metadata fields as list of DataRowMetadataField

>>> mdo.parse_metadata_fields([metadata_fields])
Parameters:

unparsed – An unparsed list of metadata represented as a dict containing ‘schemaId’ and ‘value’

Returns:

List of DataRowMetadataField

Return type:

metadata

parse_upsert_metadata(metadata_fields) List[Dict[str, Any]][source]
Converts either DataRowMetadataField or a dictionary representation

of DataRowMetadataField into a validated, flattened dictionary of metadata fields that are used to create data row metadata. Used internally in Dataset.create_data_rows()

Parameters:

metadata_fields – List of DataRowMetadataField or a dictionary representation of DataRowMetadataField

Returns:

List of dictionaries representing a flattened view of metadata fields

refresh_ontology()[source]

Update the DataRowMetadataOntology instance with the latest metadata ontology schemas

update_enum_option(name: str, option: str, new_option: str) DataRowMetadataSchema[source]

Update Enum metadata schema option

>>> mdo.update_enum_option(name, option, new_option)
Parameters:
  • name (str) – Name of metadata schema to update

  • option (str) – Name of Enum option to update

  • new_option (str) – New name of Enum option

Returns:

Updated metadata schema as DataRowMetadataSchema

Raises:

KeyError – When provided name is not a valid custom metadata

update_schema(name: str, new_name: str) DataRowMetadataSchema[source]

Update metadata schema

>>> mdo.update_schema(name, new_name)
Parameters:
  • name (str) – Current name of metadata schema

  • new_name (str) – New name of metadata schema

Returns:

Updated metadata schema as DataRowMetadataSchema

Raises:

KeyError – When provided name is not a valid custom metadata