@@ -42,7 +42,6 @@ class DataRowMetadataSchema(BaseModel):
4242
4343
4444class _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
427438def _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