Skip to content

Commit a31b627

Browse files
Erin LiuErin Liu
authored andcommitted
pull recent develop into branch
2 parents b738bf7 + 4de21d4 commit a31b627

File tree

151 files changed

+19062
-10887
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+19062
-10887
lines changed

.github/teams.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
active-learning:
2+
- '@cssetian'
3+
- '@gszpak'
4+
- '@msokoloff1'
5+
- '@tomislav-peharda'
6+
- '@jtsodapop'
7+
- '@kozikkamil'
8+
- '@dubininsergey'
9+
- '@farkob'
10+
- '@attila-papai'
11+
- '@Juanbuhler'
12+
- '@sqlboy'
13+
- '@nmaswood'
14+
- '@gdj0nes'

.github/workflows/python-package.yml

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,83 +2,86 @@ name: Labelbox Python SDK
22

33
on:
44
push:
5-
branches: [ develop, master ]
5+
branches: [develop, master]
66
pull_request:
7-
branches: [ develop, master ]
7+
branches: [develop, master]
88

99
jobs:
1010
build:
1111
if: github.event.pull_request.head.repo.full_name == github.repository
1212

1313
runs-on: ubuntu-latest
1414
strategy:
15-
max-parallel: 1
1615
matrix:
17-
# TODO: unlock parallel testing by using more API keys
18-
python-version: [3.6, 3.7, 3.8]
16+
include:
17+
- python-version: 3.6
18+
prod-key: LABELBOX_API_KEY
19+
staging-key: STAGING_LABELBOX_API_KEY
20+
- python-version: 3.7
21+
prod-key: PROD_LABELBOX_API_KEY_2
22+
staging-key: STAGING_LABELBOX_API_KEY_2
23+
- python-version: 3.8
24+
prod-key: PROD_LABELBOX_API_KEY_3
25+
staging-key: STAGING_LABELBOX_API_KEY_3
1926

2027
steps:
28+
- name: Cancel previous workflow
29+
uses: styfle/cancel-workflow-action@0.4.0
30+
with:
31+
access_token: ${{ github.token }}
2132

22-
- name: Cancel previous workflow
23-
uses: styfle/cancel-workflow-action@0.4.0
24-
with:
25-
access_token: ${{ github.token }}
26-
27-
- name: set environment for branch
28-
run: |
33+
- name: set environment for branch
34+
run: |
2935
if [[ "${{github.base_ref}}" == "master" || "${{github.ref}}" == "refs/heads/master" ]]; then
3036
echo "LABELBOX_TEST_ENVIRON=prod" >> $GITHUB_ENV
3137
else
3238
echo "LABELBOX_TEST_ENVIRON=staging" >> $GITHUB_ENV
3339
fi
3440
35-
- uses: actions/checkout@v2
36-
with:
37-
token: ${{ secrets.ACTIONS_ACCESS_TOKEN }}
38-
ref: ${{ github.head_ref }}
41+
- uses: actions/checkout@v2
42+
with:
43+
token: ${{ secrets.ACTIONS_ACCESS_TOKEN }}
44+
ref: ${{ github.head_ref }}
3945

40-
- name: Set up Python ${{ matrix.python-version }}
41-
uses: actions/setup-python@v2
42-
with:
43-
python-version: ${{ matrix.python-version }}
46+
- name: Set up Python ${{ matrix.python-version }}
47+
uses: actions/setup-python@v2
48+
with:
49+
python-version: ${{ matrix.python-version }}
4450

45-
- name: yapf
46-
id: yapf
47-
uses: AlexanderMelde/yapf-action@master
48-
with:
49-
args: --verbose --recursive --parallel --style "google"
50-
- name: dependencies
51-
run: |
52-
sudo apt-get -y update
53-
sudo apt install -y libsm6 \
54-
libxext6 \
55-
ffmpeg \
56-
libfontconfig1 \
57-
libxrender1 \
58-
libgl1-mesa-glx
59-
- name: install labelbox package
60-
run: |
61-
python -m pip install --upgrade pip
62-
python -m pip install .
63-
- name: mypy
64-
run: |
65-
pip install mypy==0.782
66-
mypy -p labelbox --pretty --show-error-codes
67-
- name: Install package and test dependencies
68-
run: |
69-
pip install tox==3.18.1
51+
- name: yapf
52+
id: yapf
53+
uses: AlexanderMelde/yapf-action@master
54+
with:
55+
args: --verbose --recursive --parallel --style "google"
56+
- name: dependencies
57+
run: |
58+
sudo apt-get -y update
59+
sudo apt install -y libsm6 \
60+
libxext6 \
61+
ffmpeg \
62+
libfontconfig1 \
63+
libxrender1 \
64+
libgl1-mesa-glx
65+
- name: install labelbox package
66+
run: |
67+
python -m pip install --upgrade pip
68+
python -m pip install .
69+
- name: mypy
70+
run: |
71+
pip install mypy==0.782
72+
mypy -p labelbox --pretty --show-error-codes
73+
- name: Install package and test dependencies
74+
run: |
75+
pip install tox==3.18.1
7076
71-
# TODO: replace tox.ini with what the Makefile does
72-
# to make sure local testing is
73-
# identical to github actions which uses tox.ini
74-
- name: Test with tox
75-
env:
76-
# make sure to tell tox to use these environs in tox.ini
77-
#
78-
# msokoloff+prod-python@labelbox.com
79-
LABELBOX_TEST_API_KEY_PROD: ${{ secrets.LABELBOX_API_KEY }}
77+
# TODO: replace tox.ini with what the Makefile does
78+
# to make sure local testing is
79+
# identical to github actions which uses tox.ini
80+
- name: Test with tox
81+
env:
82+
# make sure to tell tox to use these environs in tox.ini
83+
LABELBOX_TEST_API_KEY_PROD: ${{ secrets[matrix.prod-key] }}
8084

81-
# randall+staging-python@labelbox.com
82-
LABELBOX_TEST_API_KEY_STAGING: ${{ secrets.STAGING_LABELBOX_API_KEY }}
83-
run: |
84-
tox -e py -- -svvx
85+
LABELBOX_TEST_API_KEY_STAGING: ${{ secrets[matrix.staging-key] }}
86+
run: |
87+
tox -e py -- -svvx

.github/workflows/team-labeler.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
on: pull_request
2+
name: team-label
3+
jobs:
4+
team-labeler:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: JulienKode/team-labeler-action@v0.1.0
8+
with:
9+
repo-token: '${{ secrets.GITHUB_TOKEN }}'

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ ipython_config.py
8383
# pyenv
8484
.python-version
8585

86+
# vscode
87+
.vscode
88+
8689
# pipenv
8790
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
8891
# However, in case of collaboration, if having platform-specific dependencies or dependencies

.pre-commit-config.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
repos:
2+
- repo: https://github.com/google/yapf
3+
rev: v0.31.0
4+
hooks:
5+
- id: yapf
6+
name: "yapf"
7+
args: [-i, --style, google]

CHANGELOG.md

Lines changed: 109 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,112 @@
11
# Changelog
22

3-
## Deprecation Notice
4-
| Name | Replacement | Removed After |
5-
| ------------------------------------- | ------------------------------------- | ------------- |
6-
| `ModelRun.delete_annotation_groups()` | `ModelRun.delete_model_run_data_rows()`| 3.9 |
7-
| `ModelRun.annotation_groups()` | `ModelRun.model_run_data_rows()` | 3.9 |
8-
| `DataRowMetadataSchema.id` | `DataRowMetadataSchema.uid` | 3.9 |
9-
-----
3+
# Version 3.17.2 (2022-03-28)
4+
## Fix
5+
* Project.upsert_instructions now works properly for new projects.
6+
7+
# Version 3.17.1 (2022-03-25)
8+
## Updated
9+
* Remove unused rasterio dependency
10+
11+
# Version 3.17.0 (2022-03-22)
12+
## Added
13+
* Create batches from the SDK (Beta). Learn more about [batches](https://docs.labelbox.com/docs/batches)
14+
* Support for precision and recall metrics on Entity annotations
15+
16+
## Fix
17+
* `client.create_project` type hint added for its return type
18+
19+
## Updated
20+
* Removed batch MVP code
21+
22+
# Version 3.16.0 (2022-03-08)
23+
## Added
24+
* Ability to fetch a model run with `client.get_model_run()`
25+
* Ability to fetch labels from a model run with `model_run.export_labels()`
26+
- Note: this is only Experimental. To use, client param `enable_experimental` should
27+
be set to true
28+
* Ability to delete an attachment
29+
30+
## Fix
31+
* Logger level is no longer set to INFO
32+
33+
## Updated
34+
* Deprecation: Creating Dropdowns will no longer be supported after 2022-03-31
35+
- This includes creating/adding Dropdowns to an ontology
36+
- This includes creating/adding Dropdown Annotation Type
37+
- For the same functionality, use Radio
38+
- This will not affect existing Dropdowns
39+
40+
# Changelog
41+
# Version 3.15.0 (2022-02-28)
42+
## Added
43+
* Extras folder which contains useful applications using the sdk
44+
* Addition of ResourceTag at the Organization and Project level
45+
* Updates to the example notebooks
46+
47+
## Fix
48+
* EPSGTransformer now properly transforms Polygon to Polygon
49+
* VideoData string representation now properly shows VideoData
50+
51+
52+
# Version 3.14.0 (2022-02-10)
53+
## Added
54+
* Updated metrics for classifications to be per-answer
55+
56+
57+
# Version 3.13.0 (2022-02-07)
58+
## Added
59+
* Added `from_shapely` method to create annotation types from Shapely objects
60+
* Added `start` and `end` filter on the following methods
61+
- `Project.export_labels()`
62+
- `Project.label_generator()`
63+
- `Project.video_label_generator()`
64+
* Improved type hinting
65+
66+
67+
# Version 3.12.0 (2022-01-19)
68+
## Added
69+
* Tiled Imagery annotation type
70+
- A set of classes that support Tiled Image assets
71+
- New demo notebook can be found here: examples/annotation_types/tiled_imagery_basics.ipynb
72+
- Updated tiled image mal can be found here: examples/model_assisted_labeling/tiled_imagery_mal.ipynb
73+
* Support transformations from one EPSG to another with `EPSGTransformer` class
74+
- Supports EPSG to Pixel space transformations
75+
76+
77+
# Version 3.11.1 (2022-01-10)
78+
## Fix
79+
* Make `TypedArray` class compatible with `numpy` versions `>= 1.22.0`
80+
* `project.upsert_review_queue` quotas can now be in the inclusive range [0,1]
81+
* Restore support for upserting html instructions to a project
82+
83+
# Version 3.11.0 (2021-12-15)
84+
85+
## Fix
86+
* `Dataset.create_data_rows()` now accepts an iterable of data row information instead of a list
87+
* `project.upsert_instructions()`
88+
* now only supports pdfs since that is what the editor requires
89+
* There was a bug that could cause this to modify the project ontology
90+
91+
## Removed
92+
* `DataRowMetadataSchema.id` use `DataRowMetadataSchema.uid` instead
93+
* `ModelRun.delete_annotation_groups()` use `ModelRun.delete_model_run_data_rows()` instead
94+
* `ModelRun.annotation_groups()` use `ModelRun.model_run_data_rows()` instead
95+
96+
# Version 3.10.0 (2021-11-18)
97+
## Added
98+
* `AnnotationImport.wait_until_done()` accepts a `show_progress` param. This is set to `False` by default.
99+
* If enabled, a tqdm progress bar will indicate the import progress.
100+
* This works for all classes that inherit from AnnotationImport: `LabelImport`, `MALPredictionImport`, `MEAPredictionImport`
101+
* This is not support for `BulkImportRequest` (which will eventually be replaced by `MALPredictionImport`)
102+
* `Option.label` and `Option.value` can now be set independently
103+
* `ClassificationAnswer`s now support a new `keyframe` field for videos
104+
* New `LBV1Label.media_type field. This is a placeholder for future backend changes.
105+
106+
## Fix
107+
* Nested checklists can have extra brackets. This would cause the annotation type converter to break.
108+
109+
10110
# Version 3.9.0 (2021-11-12)
11111
## Added
12112
* New ontology management features
@@ -18,8 +118,8 @@
18118
* Set up a project from an existing ontology with `project.setup_edior()`
19119
* Added new `FeatureSchema` entity
20120
* Add support for new queue modes
21-
* Send batches of data direction to a project with `project.queue()`
22-
* Remove items from the queue with `project.dequeue()`
121+
* Send batches of data directly to a project queue with `project.queue()`
122+
* Remove items from a project queue with `project.dequeue()`
23123
* Query for and toggle the queue mode
24124

25125
# Version 3.8.0 (2021-10-22)

0 commit comments

Comments
 (0)