Pull the latest Labelbox annotations into a tidy, ontology-agnostic table.
Project description
labelpull
Pull the latest Labelbox annotations into a tidy, ontology-agnostic table.
The Labelbox SDK already exports a project's labels and streams them. What it
doesn't give you is a tabular view of that deeply nested JSON, the correctness
logic to pick the right label when a row was reviewed, or a workflow status that
is always populated. labelpull is exactly that thin layer on top of the SDK.
Install
pip install labelpull # offline parsing + CLI
pip install 'labelpull[live]' # + the Labelbox SDK for live pulls
CLI
export LABELBOX_API_KEY=...
labelpull pull <PROJECT_ID> -o labels.csv # generic long CSV (any ontology)
labelpull pull <PROJECT_ID> --status Done # only verified rows
labelpull pull <PROJECT_ID> --since 2026-06-01 # only the latest labels
labelpull pull <PROJECT_ID> --from-export export.ndjson # offline, no API key
labelpull pull <PROJECT_ID> --schema species -o taxa.csv # speciesfirst Taxon/Organs wide CSV
--schema generic (default) writes one row per feature — every classification
and object, any ontology:
global_key,data_row_id,feature_kind,feature_name,value,workflow_status,labeled_by,created_at,parent_feature_id
Library
import labelpull
rows = list(labelpull.export("proj_id", status="Done")) # or read_export_file("export.ndjson")
features = [f for r in rows for f in labelpull.flatten(r, "proj_id")]
labelpull.write_csv("labels.csv", labelpull.GenericAdapter(), features)
print(labelpull.summarize(rows, features))
flatten() handles radio / checklist / text classifications and bbox / polygon /
line / point / mask objects (with nested classifications linked to their parent),
and always selects the most recently created label so a QC-reviewed row reports
the reviewer's answer, not the annotator's.
Write your own Adapter to collapse features into a project-specific wide table;
SpeciesAdapter is the reference implementation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file labelpull-0.1.0.tar.gz.
File metadata
- Download URL: labelpull-0.1.0.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7fa4a4fa4631a90fbfb4174f681a8fd044b504d91d5d7f5e2b6d1031edef7c28
|
|
| MD5 |
f00c87e46f18fb0c1b03312b5be7a407
|
|
| BLAKE2b-256 |
b8ffd91c6d939d301463deaf3415520265357f82de9c69e399cf39ac31e27dba
|
Provenance
The following attestation bundles were made for labelpull-0.1.0.tar.gz:
Publisher:
release.yml on traitlab/labelpull
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labelpull-0.1.0.tar.gz -
Subject digest:
7fa4a4fa4631a90fbfb4174f681a8fd044b504d91d5d7f5e2b6d1031edef7c28 - Sigstore transparency entry: 1780614665
- Sigstore integration time:
-
Permalink:
traitlab/labelpull@b9fa2b745e18c4bcfbd70e3ea3da2b83db20978f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/traitlab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b9fa2b745e18c4bcfbd70e3ea3da2b83db20978f -
Trigger Event:
push
-
Statement type:
File details
Details for the file labelpull-0.1.0-py3-none-any.whl.
File metadata
- Download URL: labelpull-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3ebb433ddd21cc3792cfdcd9df4efb5fc1d18a0d145958c1e9ead1130616672
|
|
| MD5 |
7865f101b7a76a7d69c8e056b7cd163f
|
|
| BLAKE2b-256 |
c1a59e5be23a873a522b1073193bebbe50588cc3b810aade367c40fd8dce5c14
|
Provenance
The following attestation bundles were made for labelpull-0.1.0-py3-none-any.whl:
Publisher:
release.yml on traitlab/labelpull
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
labelpull-0.1.0-py3-none-any.whl -
Subject digest:
c3ebb433ddd21cc3792cfdcd9df4efb5fc1d18a0d145958c1e9ead1130616672 - Sigstore transparency entry: 1780614719
- Sigstore integration time:
-
Permalink:
traitlab/labelpull@b9fa2b745e18c4bcfbd70e3ea3da2b83db20978f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/traitlab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b9fa2b745e18c4bcfbd70e3ea3da2b83db20978f -
Trigger Event:
push
-
Statement type: