Skip to content

Commit 75fdafa

Browse files
author
Kevin Kim
committed
Add return types for all functions
1 parent 50bc743 commit 75fdafa

File tree

1 file changed

+35
-15
lines changed

1 file changed

+35
-15
lines changed

labelbox/schema/data_row_metadata.py

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ def _build_ontology(self):
135135
f for f in self.fields if f.reserved
136136
]
137137
self.reserved_by_id = self._make_id_index(self.reserved_fields)
138-
self.reserved_by_name: Dict[
139-
str,
140-
DataRowMetadataSchema] = self._make_name_index(self.reserved_fields)
138+
self.reserved_by_name: Dict[str, Union[DataRowMetadataSchema, Dict[
139+
str, DataRowMetadataSchema]]] = self._make_name_index(
140+
self.reserved_fields)
141141
self.reserved_by_name_normalized: Dict[
142142
str, DataRowMetadataSchema] = self._make_normalized_name_index(
143143
self.reserved_fields)
@@ -147,15 +147,18 @@ def _build_ontology(self):
147147
f for f in self.fields if not f.reserved
148148
]
149149
self.custom_by_id = self._make_id_index(self.custom_fields)
150-
self.custom_by_name: Dict[
150+
self.custom_by_name: Dict[str, Union[DataRowMetadataSchema, Dict[
151151
str,
152-
DataRowMetadataSchema] = self._make_name_index(self.custom_fields)
152+
DataRowMetadataSchema]]] = self._make_name_index(self.custom_fields)
153153
self.custom_by_name_normalized: Dict[
154154
str, DataRowMetadataSchema] = self._make_normalized_name_index(
155155
self.custom_fields)
156156

157157
@staticmethod
158-
def _make_name_index(fields: List[DataRowMetadataSchema]):
158+
def _make_name_index(
159+
fields: List[DataRowMetadataSchema]
160+
) -> Dict[str, Union[DataRowMetadataSchema, Dict[str,
161+
DataRowMetadataSchema]]]:
159162
index = {}
160163
for f in fields:
161164
if f.options:
@@ -167,7 +170,9 @@ def _make_name_index(fields: List[DataRowMetadataSchema]):
167170
return index
168171

169172
@staticmethod
170-
def _make_normalized_name_index(fields: List[DataRowMetadataSchema]):
173+
def _make_normalized_name_index(
174+
fields: List[DataRowMetadataSchema]
175+
) -> Dict[str, DataRowMetadataSchema]:
171176
index = {}
172177
for f in fields:
173178
index[f.name] = f
@@ -226,13 +231,16 @@ def _parse_ontology(raw_ontology) -> List[DataRowMetadataSchema]:
226231
return fields
227232

228233
def refresh_ontology(self):
234+
""" Update the `DataRowMetadataOntology` instance with the latest
235+
metadata ontology schemas
236+
"""
229237
self._raw_ontology = self._get_ontology()
230238
self._build_ontology()
231239

232240
def create_schema(self,
233241
name: str,
234242
kind: DataRowMetadataKind,
235-
options: List[str] = None):
243+
options: List[str] = None) -> DataRowMetadataSchema:
236244
""" Create metadata schema
237245
238246
>>> mdo.create_schema(name, kind, options)
@@ -267,7 +275,7 @@ def create_schema(self,
267275

268276
return self._upsert_schema(upsert_schema)
269277

270-
def update_schema(self, name: str, new_name: str):
278+
def update_schema(self, name: str, new_name: str) -> DataRowMetadataSchema:
271279
""" Update metadata schema
272280
273281
>>> mdo.update_schema(name, new_name)
@@ -298,7 +306,8 @@ def update_schema(self, name: str, new_name: str):
298306

299307
return self._upsert_schema(upsert_schema)
300308

301-
def update_enum_option(self, name: str, option: str, new_option: str):
309+
def update_enum_option(self, name: str, option: str,
310+
new_option: str) -> DataRowMetadataSchema:
302311
""" Update Enum metadata schema option
303312
304313
>>> mdo.update_enum_option(name, option, new_option)
@@ -334,7 +343,7 @@ def update_enum_option(self, name: str, option: str, new_option: str):
334343

335344
return self._upsert_schema(upsert_schema)
336345

337-
def delete_schema(self, name: str):
346+
def delete_schema(self, name: str) -> bool:
338347
""" Delete metadata schema
339348
340349
>>> mdo.delete_schema(name)
@@ -579,9 +588,18 @@ def _bulk_export(_data_row_ids: List[str]) -> List[DataRowMetadata]:
579588
data_row_ids,
580589
batch_size=self._batch_size)
581590

582-
# Convert metadata to DataRowMetadataField objects, parse all fields
583-
# and return a dictionary of metadata fields for upsert
584-
def parse_upsert_metadata(self, metadata_fields):
591+
def parse_upsert_metadata(self, metadata_fields) -> List[Dict[str, Any]]:
592+
""" Converts either `DataRowMetadataField` or a dictionary representation
593+
of `DataRowMetadataField` into a validated, flattened dictionary of
594+
metadata fields that are used to create data row metadata. Used
595+
internally in `Dataset.create_data_rows()`
596+
597+
Args:
598+
metadata_fields: List of `DataRowMetadataField` or a dictionary representation
599+
of `DataRowMetadataField`
600+
Returns:
601+
List of dictionaries representing a flattened view of metadata fields
602+
"""
585603

586604
def _convert_metadata_field(metadata_field):
587605
if isinstance(metadata_field, DataRowMetadataField):
@@ -606,7 +624,9 @@ def _convert_metadata_field(metadata_field):
606624
chain.from_iterable(self._parse_upsert(m) for m in metadata_fields))
607625
return [m.dict(by_alias=True) for m in parsed_metadata]
608626

609-
def _upsert_schema(self, upsert_schema: _UpsertCustomMetadataSchemaInput):
627+
def _upsert_schema(
628+
self, upsert_schema: _UpsertCustomMetadataSchemaInput
629+
) -> DataRowMetadataSchema:
610630
query = """mutation UpsertCustomMetadataSchemaPyApi($data: UpsertCustomMetadataSchemaInput!) {
611631
upsertCustomMetadataSchema(data: $data){
612632
id

0 commit comments

Comments
 (0)