Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

# Version 3.34.0 (...)
### Added
* Added `get_by_name()` method to MetadataOntology object to access both custom and reserved metadata by name.

# Version 3.33.1 (2022-12-14)
### Fixed
* Fixed where batch creation limit was still limiting # of data rows. SDK should now support creating batches with up to 100k data rows
Expand Down
29 changes: 27 additions & 2 deletions labelbox/schema/data_row_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,31 @@ def _build_ontology(self):
str, DataRowMetadataSchema] = self._make_normalized_name_index(
self.custom_fields)

def get_by_name(
self, name: str
) -> Union[DataRowMetadataSchema, Dict[str, DataRowMetadataSchema]]:
""" Get metadata by name
>>> mdo.get_by_name(name)
Args:
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
"""

# search through reserved names first
if name in self.reserved_by_name:
return self.reserved_by_name[name]
elif name in self.custom_by_name:
return self.custom_by_name[name]
else:
raise KeyError(f"There is no metadata with name {name}")

@staticmethod
def _make_name_index(
fields: List[DataRowMetadataSchema]
Expand Down Expand Up @@ -224,7 +249,7 @@ def _parse_ontology(raw_ontology) -> List[DataRowMetadataSchema]:
return fields

def refresh_ontology(self):
""" Update the `DataRowMetadataOntology` instance with the latest
""" Update the `DataRowMetadataOntology` instance with the latest
metadata ontology schemas
"""
self._raw_ontology = self._get_ontology()
Expand Down Expand Up @@ -279,7 +304,7 @@ def update_schema(self, name: str, new_name: str) -> DataRowMetadataSchema:
Returns:
Updated metadata schema as `DataRowMetadataSchema`
Raises:
KeyError: When provided name is not a valid custom metadata
"""
Expand Down