Skip to content

Commit 00e32d4

Browse files
author
gdj0nes
committed
CHG: add hierarchical name index for fields
1 parent 4e92b0e commit 00e32d4

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

labelbox/schema/data_row_metadata.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ class DataRowMetadataSchema(BaseModel):
4242

4343

4444
class _CamelCaseMixin(BaseModel):
45-
4645
class Config:
4746
allow_population_by_field_name = True
4847
alias_generator = camel_case
@@ -133,9 +132,21 @@ def __init__(self, client):
133132
f.name: f for f in self.custom_fields
134133
}
135134

135+
@staticmethod
136+
def _make_name_index(fields: List[DataRowMetadataSchema]):
137+
index = {}
138+
for f in fields:
139+
if f.options:
140+
index[f.name] = {}
141+
for o in f.options:
142+
index[o.name] = o
143+
else:
144+
index[f.name] = f
145+
return index
146+
136147
@staticmethod
137148
def _make_id_index(
138-
fields: List[DataRowMetadataSchema]
149+
fields: List[DataRowMetadataSchema]
139150
) -> Dict[SchemaId, DataRowMetadataSchema]:
140151
index = {}
141152
for f in fields:
@@ -181,9 +192,9 @@ def _parse_ontology(self) -> List[DataRowMetadataSchema]:
181192
return fields
182193

183194
def parse_metadata(
184-
self, unparsed: List[Dict[str,
185-
List[Union[str,
186-
Dict]]]]) -> List[DataRowMetadata]:
195+
self, unparsed: List[Dict[str,
196+
List[Union[str,
197+
Dict]]]]) -> List[DataRowMetadata]:
187198
""" Parse metadata responses
188199
189200
>>> mdo.parse_metadata([datarow.metadata])
@@ -244,7 +255,7 @@ def bulk_upsert(
244255
raise ValueError("Empty list passed")
245256

246257
def _batch_upsert(
247-
upserts: List[_UpsertBatchDataRowMetadata]
258+
upserts: List[_UpsertBatchDataRowMetadata]
248259
) -> List[DataRowMetadataBatchResponse]:
249260
query = """mutation UpsertDataRowMetadataBetaPyApi($metadata: [DataRowCustomMetadataBatchUpsertInput!]!) {
250261
upsertDataRowCustomMetadata(data: $metadata){
@@ -273,13 +284,13 @@ def _batch_upsert(
273284
fields=list(
274285
chain.from_iterable(
275286
self._parse_upsert(m) for m in m.fields))).dict(
276-
by_alias=True))
287+
by_alias=True))
277288

278289
res = _batch_operations(_batch_upsert, items, self._batch_size)
279290
return res
280291

281292
def bulk_delete(
282-
self, deletes: List[DeleteDataRowMetadata]
293+
self, deletes: List[DeleteDataRowMetadata]
283294
) -> List[DataRowMetadataBatchResponse]:
284295
""" Delete metadata from a datarow by specifiying the fields you want to remove
285296
@@ -306,7 +317,7 @@ def bulk_delete(
306317
raise ValueError("Empty list passed")
307318

308319
def _batch_delete(
309-
deletes: List[_DeleteBatchDataRowMetadata]
320+
deletes: List[_DeleteBatchDataRowMetadata]
310321
) -> List[DataRowMetadataBatchResponse]:
311322
query = """mutation DeleteDataRowMetadataBetaPyApi($deletes: [DataRowCustomMetadataBatchDeleteInput!]!) {
312323
deleteDataRowCustomMetadata(data: $deletes) {
@@ -425,9 +436,9 @@ def _batch_items(iterable: List[Any], size: int) -> Generator[Any, None, None]:
425436

426437

427438
def _batch_operations(
428-
batch_function: _BatchFunction,
429-
items: List,
430-
batch_size: int = 100,
439+
batch_function: _BatchFunction,
440+
items: List,
441+
batch_size: int = 100,
431442
):
432443
response = []
433444

0 commit comments

Comments
 (0)