Skip to content

Commit 28370c2

Browse files
authored
Merge pull request #64 from fastlabel/hotfix/update-status
update project workflow
2 parents 804689e + c790d2d commit 28370c2

File tree

3 files changed

+42
-28
lines changed

3 files changed

+42
-28
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ tasks = client.get_image_tasks(project="YOUR_PROJECT_SLUG")
130130
```python
131131
tasks = client.get_image_tasks(
132132
project="YOUR_PROJECT_SLUG",
133-
status="approved", # status can be 'pending', 'registered', 'completed', 'skipped', 'sent_back', 'approved'
133+
status="approved", # status can be 'pending', 'registered', 'completed', 'skipped', 'reviewed' 'sent_back', 'approved', 'declined'
134134
tags=["tag1", "tag2"] # up to 10 tags
135135
)
136136
```

fastlabel/__init__.py

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ def get_image_tasks(
129129
Returns up to 1000 at a time, to get more, set offset as the starting position to fetch.
130130
131131
project is slug of your project. (Required)
132-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
133-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
132+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
133+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
134134
tags is a list of tag. (Optional)
135135
task_name is a task name. (Optional)
136136
offset is the starting position number to fetch. (Optional)
@@ -170,8 +170,8 @@ def get_image_classification_tasks(
170170
Returns up to 1000 at a time, to get more, set offset as the starting position to fetch.
171171
172172
project is slug of your project. (Required)
173-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
174-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
173+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
174+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
175175
tags is a list of tag. (Optional)
176176
offset is the starting position number to fetch. (Optional)
177177
limit is the max number to fetch. (Optional)
@@ -207,8 +207,8 @@ def get_multi_image_tasks(
207207
Returns up to 10 at a time, to get more, set offset as the starting position to fetch.
208208
209209
project is slug of your project. (Required)
210-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
211-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
210+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
211+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
212212
tags is a list of tag. (Optional)
213213
offset is the starting position number to fetch. (Optional)
214214
limit is the max number to fetch. (Optional)
@@ -247,8 +247,8 @@ def get_video_tasks(
247247
Returns up to 10 at a time, to get more, set offset as the starting position to fetch.
248248
249249
project is slug of your project. (Required)
250-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
251-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
250+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
251+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
252252
tags is a list of tag. (Optional)
253253
task_name is a task name. (Optional)
254254
offset is the starting position number to fetch. (Optional)
@@ -288,8 +288,8 @@ def get_video_classification_tasks(
288288
Returns up to 1000 at a time, to get more, set offset as the starting position to fetch.
289289
290290
project is slug of your project. (Required)
291-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
292-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
291+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
292+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
293293
tags is a list of tag. (Optional)
294294
offset is the starting position number to fetch. (Optional)
295295
limit is the max number to fetch. (Optional)
@@ -356,8 +356,8 @@ def create_image_task(
356356
project is slug of your project. (Required)
357357
name is an unique identifier of task in your project. (Required)
358358
file_path is a path to data. Supported extensions are png, jpg, jpeg. (Required)
359-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
360-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
359+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
360+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
361361
annotations is a list of annotation to be set in advance. (Optional)
362362
tags is a list of tag to be set in advance. (Optional)
363363
"""
@@ -395,8 +395,8 @@ def create_image_classification_task(
395395
project is slug of your project. (Required)
396396
name is an unique identifier of task in your project. (Required)
397397
file_path is a path to data. Supported extensions are png, jpg, jpeg. (Required)
398-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
399-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
398+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
399+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
400400
attributes is a list of attribute to be set in advance. (Optional)
401401
tags is a list of tag to be set in advance. (Optional)
402402
"""
@@ -432,8 +432,8 @@ def create_multi_image_task(
432432
project is slug of your project. (Required)
433433
name is an unique identifier of task in your project. (Required)
434434
folder_path is a path to data folder. Files should be under the folder. Nested folder structure is not supported. Supported extensions of files are png, jpg, jpeg. (Required)
435-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
436-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
435+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
436+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
437437
annotations is a list of annotation to be set in advance. (Optional)
438438
tags is a list of tag to be set in advance. (Optional)
439439
"""
@@ -483,8 +483,8 @@ def create_video_task(
483483
project is slug of your project. (Required)
484484
name is an unique identifier of task in your project. (Required)
485485
file_path is a path to data. Supported extensions are mp4. (Required)
486-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
487-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
486+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
487+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
488488
annotations is a list of annotation to be set in advance. (Optional)
489489
tags is a list of tag to be set in advance. (Optional)
490490
"""
@@ -522,8 +522,8 @@ def create_video_classification_task(
522522
project is slug of your project. (Required)
523523
name is an unique identifier of task in your project. (Required)
524524
file_path is a path to data. Supported extensions are mp4. (Required)
525-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
526-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
525+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
526+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
527527
attributes is a list of attribute to be set in advance. (Optional)
528528
tags is a list of tag to be set in advance. (Optional)
529529
"""
@@ -555,8 +555,8 @@ def update_task(
555555
Update a single task.
556556
557557
task_id is an id of the task. (Required)
558-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
559-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
558+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
559+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
560560
tags is a list of tag to be set. (Optional)
561561
"""
562562
endpoint = "tasks/" + task_id
@@ -581,8 +581,8 @@ def update_image_classification_task(
581581
Create a single image classification task.
582582
583583
task_id is an id of the task. (Required)
584-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
585-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
584+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
585+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
586586
attributes is a list of attribute to be set in advance. (Optional)
587587
tags is a list of tag to be set in advance. (Optional)
588588
"""
@@ -610,8 +610,8 @@ def update_video_classification_task(
610610
Create a single video classification task.
611611
612612
task_id is an id of the task. (Required)
613-
status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved'. (Optional)
614-
external_status can be 'registered', 'completed', 'skipped', 'sent_back', 'approved', 'customer_sent_back'. (Optional)
613+
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined'. (Optional)
614+
external_status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
615615
attributes is a list of attribute to be set in advance. (Optional)
616616
tags is a list of tag to be set in advance. (Optional)
617617
"""
@@ -1047,6 +1047,8 @@ def create_project(
10471047
slug: str,
10481048
is_pixel: bool = False,
10491049
job_size: int = 10,
1050+
workflow: str = "two_step",
1051+
external_workflow: str = "two_step",
10501052
) -> str:
10511053
"""
10521054
Create a project.
@@ -1056,12 +1058,16 @@ def create_project(
10561058
slug is slug of your project. (Required)
10571059
is_pixel is whether to annotate image with pixel level. (Optional)
10581060
job_size is the number of tasks the annotator gets at one time. (Optional)
1061+
workflow is the type of annotation wokflow. workflow can be 'two_step' or 'three_step' (Optional)
1062+
external_workflow is the type of external annotation wokflow. external_workflow can be 'two_step' or 'three_step' (Optional)
10591063
"""
10601064
endpoint = "projects"
10611065
payload = {
10621066
"type": type,
10631067
"name": name,
10641068
"slug": slug,
1069+
"workflow": workflow,
1070+
"externalWorkflow": external_workflow,
10651071
}
10661072
if is_pixel:
10671073
payload["isPixel"] = is_pixel
@@ -1075,6 +1081,8 @@ def update_project(
10751081
name: str = None,
10761082
slug: str = None,
10771083
job_size: int = None,
1084+
workflow: str = None,
1085+
external_workflow: str = None,
10781086
) -> str:
10791087
"""
10801088
Update a project.
@@ -1083,6 +1091,8 @@ def update_project(
10831091
name is name of your project. (Optional)
10841092
slug is slug of your project. (Optional)
10851093
job_size is the number of tasks the annotator gets at one time. (Optional)
1094+
workflow is the type of annotation wokflow. workflow can be 'two_step' or 'three_step' (Optional)
1095+
external_workflow is the type of external annotation wokflow. external_workflow can be 'two_step' or 'three_step' (Optional)
10861096
"""
10871097
endpoint = "projects/" + project_id
10881098
payload = {}
@@ -1092,6 +1102,10 @@ def update_project(
10921102
payload["slug"] = slug
10931103
if job_size:
10941104
payload["jobSize"] = job_size
1105+
if workflow:
1106+
payload["workflow"] = workflow
1107+
if external_workflow:
1108+
payload["externalWorkflow"] = external_workflow
10951109
return self.api.put_request(endpoint, payload=payload)
10961110

10971111
def delete_project(self, project_id: str) -> None:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
setuptools.setup(
1010
name="fastlabel",
11-
version="0.10.0",
11+
version="0.11.0",
1212
author="eisuke-ueta",
1313
author_email="eisuke.ueta@fastlabel.ai",
1414
description="The official Python SDK for FastLabel API, the Data Platform for AI",

0 commit comments

Comments
 (0)