-
Notifications
You must be signed in to change notification settings - Fork 711
Description
Proposal Summary
Update the FiftyOne Labelbox backend to support Labelbox Python SDK version 6.0.0 and later. Currently, the integration in fiftyone/utils/labelbox.py relies on legacy SDK methods and internal structures that were removed or refactored in the latest Labelbox major releases. This causes immediate AttributeError crashes when attempting to setup projects or upload annotations using current versions of the labelbox library.
Motivation
- Updating the environment to a modern labelbox version causes view.annotate(backend="labelbox", ...) to fail with multiple internal errors, specifically:
AttributeError: 'Client' object has no attribute 'get_labeling_frontends'
AttributeError: module 'labelbox.schema.ontology' has no attribute 'Option'
- The current requirement to pin labelbox < 6.0.0 forces users into Labelbox's "Legacy Editor." This prevents users from accessing significant efficiency improvements, such as interactive smart-labeling tools and improved project management workflows.
What areas of FiftyOne does this feature affect?
- App: FiftyOne application
- Core: Core
fiftyonePython library - Server: FiftyOne server
Details
The integration in fiftyone/utils/labelbox.py requires refactoring to align with the Labelbox SDK v6+ architecture:
- Replace client.get_labeling_frontends() (which is now removed) with the modern project and ontology connection logic.
- Ontology Schema: Update the construction of ontology tools. Classes like Option have been moved or renamed within the labelbox namespace (e.g., refactored out of labelbox.schema.ontology).
- Data Export/Import: Ensure load_annotations() is compatible with the new Export Task and NDJSON formats generated by modern Labelbox Workflow projects, as these differ from the legacy JSON exports.
Willingness to contribute
The FiftyOne Community welcomes contributions! Would you or another member of your organization be willing to contribute an implementation of this feature?
- Yes. I can contribute this feature independently
- Yes. I would be willing to contribute this feature with guidance from the FiftyOne community
- No. I cannot contribute this feature at this time