In order to get the best experience from the SDK, we recommend the following:

  1. Always use bulk operations

    • Unless you are testing or working on small datasets use bulk operations for faster and more reliable performance.

    • create_data_rows instead of create_data_row

    • project.export_labels() instead of project.labels()

    • Label.bulk_delete(labels) instead of [label.delete() for label in labels]

  2. Use next to get elements of a paginated collection instead of list

    • list(dataset.data_rows())[0] is going to query for every single data_row in your dataset.

    • Instead use next(dataset.data_rows()). This will request much less information and should be faster

    • If you don't want next to raise StopIteration on an empty result, you can use next( dataset.data_rows(), "default_value").

  3. Make sure to use the latest version of the SDK

    • Labelbox is a rapidly evolving company and we are constantly adding new features and optimizations.