|
121 | 121 | { |
122 | 122 | "metadata": {}, |
123 | 123 | "source": [ |
124 | | - "# list all your metadata ontology as a dictionary accessable by id \n", |
| 124 | + "# list all your metadata ontology as a dictionary accessable by id\n", |
125 | 125 | "metadata_ontologies = mdo.fields_by_id\n", |
126 | 126 | "pprint(metadata_ontologies, indent=2)" |
127 | 127 | ], |
|
166 | 166 | "outputs": [], |
167 | 167 | "execution_count": null |
168 | 168 | }, |
| 169 | + { |
| 170 | + "metadata": {}, |
| 171 | + "source": [ |
| 172 | + "### Export metadata fields" |
| 173 | + ], |
| 174 | + "cell_type": "markdown" |
| 175 | + }, |
| 176 | + { |
| 177 | + "metadata": {}, |
| 178 | + "source": [ |
| 179 | + "data_row_ids = [\"<data_row_id>\"]\n", |
| 180 | + "global_keys = [\"<global_key>\"]\n", |
| 181 | + "\n", |
| 182 | + "# These methods provide validation that the ID you are passing is a global key or data row id ,\n", |
| 183 | + "# this method also assures that all IDs are unique\n", |
| 184 | + "datarow_identifiers = lb.DataRowIds(data_row_ids)\n", |
| 185 | + "global_key_identifiers = lb.GlobalKeys(global_keys)\n", |
| 186 | + "\n", |
| 187 | + "# Use one of the identifiers\n", |
| 188 | + "mdo.bulk_export(data_row_ids=global_key_identifiers)\n", |
| 189 | + "# mdo.bulk_export(data_row_ids=datarow_identifiers)" |
| 190 | + ], |
| 191 | + "cell_type": "code", |
| 192 | + "outputs": [], |
| 193 | + "execution_count": null |
| 194 | + }, |
| 195 | + { |
| 196 | + "metadata": {}, |
| 197 | + "source": [ |
| 198 | + "### Delete metadata fields from a data row" |
| 199 | + ], |
| 200 | + "cell_type": "markdown" |
| 201 | + }, |
| 202 | + { |
| 203 | + "metadata": {}, |
| 204 | + "source": [ |
| 205 | + "global_key = \"<global_key>\"\n", |
| 206 | + "schema_ids_to_delete =[\"<metadata_schema_id>\"]\n", |
| 207 | + "data_row_id = \"<data_row_id>\"\n", |
| 208 | + "\n", |
| 209 | + "deletions = [\n", |
| 210 | + " lb.DeleteDataRowMetadata(data_row_id=lb.GlobalKey(global_key), fields=schema_ids_to_delete)\n", |
| 211 | + " ]\n", |
| 212 | + "\n", |
| 213 | + "# Delete the specified metadata on the data row\n", |
| 214 | + "mdo.bulk_delete(deletes=deletions)" |
| 215 | + ], |
| 216 | + "cell_type": "code", |
| 217 | + "outputs": [], |
| 218 | + "execution_count": null |
| 219 | + }, |
169 | 220 | { |
170 | 221 | "metadata": {}, |
171 | 222 | "source": [ |
|
190 | 241 | "source": [ |
191 | 242 | "# Construct a metadata field of string kind\n", |
192 | 243 | "tag_metadata_field = lb.DataRowMetadataField(\n", |
193 | | - " name=\"tag\", \n", |
194 | | - " value=\"tag_string\", \n", |
| 244 | + " name=\"tag\",\n", |
| 245 | + " value=\"tag_string\",\n", |
195 | 246 | ")\n", |
196 | 247 | "\n", |
197 | 248 | "# Construct an metadata field of datetime kind\n", |
198 | 249 | "capture_datetime_field = lb.DataRowMetadataField(\n", |
199 | | - " name=\"captureDateTime\", \n", |
200 | | - " value=datetime.utcnow(), \n", |
| 250 | + " name=\"captureDateTime\",\n", |
| 251 | + " value=datetime.utcnow(),\n", |
201 | 252 | ")\n", |
202 | 253 | "\n", |
203 | 254 | "# Construct a metadata field of Enums options\n", |
204 | 255 | "split_metadata_field = lb.DataRowMetadataField(\n", |
205 | | - " name=\"split\", \n", |
| 256 | + " name=\"split\",\n", |
206 | 257 | " value=\"train\",\n", |
207 | 258 | ")\n" |
208 | 259 | ], |
|
253 | 304 | { |
254 | 305 | "metadata": {}, |
255 | 306 | "source": [ |
256 | | - "# Final \n", |
| 307 | + "# Final\n", |
257 | 308 | "custom_metadata_fields = []\n", |
258 | 309 | "\n", |
259 | | - "# Create the schema for the metadata \n", |
| 310 | + "# Create the schema for the metadata\n", |
260 | 311 | "number_schema = mdo.create_schema(\n", |
261 | | - " name=\"numberMetadataCustom\", \n", |
| 312 | + " name=\"numberMetadataCustom\",\n", |
262 | 313 | " kind=DataRowMetadataKind.number\n", |
263 | 314 | ")\n", |
264 | 315 | "\n", |
|
277 | 328 | { |
278 | 329 | "metadata": {}, |
279 | 330 | "source": [ |
280 | | - "# Create the schema for an enum metadata \n", |
| 331 | + "# Create the schema for an enum metadata\n", |
281 | 332 | "custom_metadata_fields = []\n", |
282 | 333 | "\n", |
283 | 334 | "enum_schema = mdo.create_schema(\n", |
284 | | - " name=\"enumMetadata\", \n", |
| 335 | + " name=\"enumMetadata\",\n", |
285 | 336 | " kind=DataRowMetadataKind.enum,\n", |
286 | 337 | " options=[\"option1\", \"option2\"]\n", |
287 | 338 | ")\n", |
288 | 339 | "\n", |
289 | | - "# Add fields to the metadata schema \n", |
| 340 | + "# Add fields to the metadata schema\n", |
290 | 341 | "data_row_metadata_fields_enum_1 = lb.DataRowMetadataField(\n", |
291 | 342 | " name=enum_schema.name,\n", |
292 | 343 | " value=\"option1\"\n", |
|
333 | 384 | "global_key = \"s_basic.jpg\"\n", |
334 | 385 | "data_row = {\"row_data\": \"https://storage.googleapis.com/labelbox-sample-datasets/Docs/basic.jpg\", \"global_key\": global_key}\n", |
335 | 386 | "# This line works with dictionaries as well as schemas and fields created with DataRowMetadataField\n", |
336 | | - "data_row['metadata_fields'] = custom_metadata_fields + [ split_metadata_field , capture_datetime_field_dict, tag_metadata_field ]\n", |
| 387 | + "data_row[\"metadata_fields\"] = custom_metadata_fields + [ split_metadata_field , capture_datetime_field_dict, tag_metadata_field ]\n", |
337 | 388 | "\n", |
338 | 389 | "\n", |
339 | 390 | "task = dataset.create_data_rows([data_row])\n", |
|
360 | 411 | "\n", |
361 | 412 | "# Update the metadata\n", |
362 | 413 | "updated_metadata = lb.DataRowMetadataField(\n", |
363 | | - " schema_id=num_schema.uid, \n", |
| 414 | + " schema_id=num_schema.uid,\n", |
364 | 415 | " value=10.2\n", |
365 | 416 | ")\n", |
366 | 417 | "\n", |
367 | 418 | "# Create data row payload\n", |
368 | 419 | "data_row_payload = lb.DataRowMetadata(\n", |
369 | | - " global_key=global_key, \n", |
| 420 | + " global_key=global_key,\n", |
370 | 421 | " fields=[updated_metadata]\n", |
371 | 422 | ")\n", |
372 | 423 | "\n", |
|
387 | 438 | { |
388 | 439 | "metadata": {}, |
389 | 440 | "source": [ |
390 | | - "# update a name \n", |
| 441 | + "# update a name\n", |
391 | 442 | "number_schema = mdo.update_schema(name=\"numberMetadataCustom\", new_name=\"numberMetadataCustomNew\")\n", |
392 | 443 | "\n", |
393 | 444 | "# update an Enum metadata schema option's name, this only applies to Enum metadata schema.\n", |
394 | 445 | "enum_schema = mdo.update_enum_option(\n", |
395 | | - " name=\"enumMetadata\", \n", |
| 446 | + " name=\"enumMetadata\",\n", |
396 | 447 | " option=\"option1\",\n", |
397 | 448 | " new_option=\"option3\"\n", |
398 | 449 | ")" |
|
415 | 466 | "source": [ |
416 | 467 | "data_row = next(dataset.data_rows())\n", |
417 | 468 | "for metadata_field in data_row.metadata_fields:\n", |
418 | | - " print(metadata_field['name'], \":\", metadata_field['value'])" |
| 469 | + " print(metadata_field[\"name\"], \":\", metadata_field[\"value\"])" |
419 | 470 | ], |
420 | 471 | "cell_type": "code", |
421 | 472 | "outputs": [], |
|
0 commit comments