Skip to content

Conversation

@hotsum92
Copy link
Contributor

@hotsum92 hotsum92 commented Jun 20, 2023

概要

API/SDKでタスクの優先度を取得、更新できるようにする。

対応するAPI側PR

実装

以下のタスクについて、優先度を取得更新できるように実装

  • Image
  • ImageClassification
  • Video
  • VideoClassification
  • Text
  • TextClassification
  • Audio
  • Pcd
  • SequentialPcd

検証

上記の各タスクの関数のcreate update findで更新された優先度が正しく反映されているか確認。
また、putTask でも優先順位を更新できることを確認。
0, 10, 20, 30 の値以外で更新できないことを確認。

import fastlabel
from pprint import pprint

client = fastlabel.Client()

none = 0
low = 10
medium = 20
high = 30

image_path = 'my/work/2023-06-20_priority/image.png'
image_folder_path = 'my/work/2023-06-20_priority/folder'
video_path = 'my/work/2023-06-20_priority/video.mp4'
text_path = 'my/work/2023-06-20_priority/text.txt'
audio_path = 'my/work/2023-06-20_priority/audio.mp3'
pcd_path = 'my/work/2023-06-20_priority/pcd.pcd'
pcd_folder_path = 'my/work/2023-06-20_priority/pcd'

## image task ##

### create ###

image_project_id = client.create_project('image_bbox', 'image', 'image')
image_task_id = client.create_image_task('image', 'image.png', image_path, priority=low)
image_task = client.find_image_task(image_task_id)
pprint(image_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T03:41:02.287Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'height': 1000,
# 'id': '6324d7eb-5331-41c9-b7c0-6171decbff76',
# 'name': 'image.png',
# 'priority': 10,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T03:41:02.287Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/366e5abd-3841-41ec-87be-1732642959f9/tasks/image.png?Expires=1687236067&Key-Pair-Id=K5X85BMI2SNGO&Signature=QPrAE04yoGuzvjDl15Owq1gec32z7zUCppsNTxuDm12W0Mk7Wt~jNasJPdo-pFHgSe2ChwqQJfxLcZVIByRMcz6CRWfGyIknPW3qCtFXboO9XYKJvks-vfhkvh9tuipfUtqet1L0Ka2p7W8lWRfS1ZXjw1vuq07Weh6F7OyHBhaE7UXc7ObkJNAhF-QywxuUJPuEN8-eb7PlLywwqvYz3mYESse0~wAmAi1pcqC5uV-ianV6Y88JsNFIoldqcV6ls5iAX2Q-rxqJz5MnQhELG4y-3vOkIFaLiPadQmZwAkDRBplCYxBfPb8xaPfTvUJ40uwd8H0NgVZR6lsoBrsJtQ__',
# 'width': 1000}

### update ###

client.update_image_task(image_task_id, priority=high)
image_task = client.find_image_task(image_task_id)
pprint(image_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T03:41:02.287Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'height': 1000,
# 'id': '6324d7eb-5331-41c9-b7c0-6171decbff76',
# 'name': 'image.png',
# 'priority': 30,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T03:43:28.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/366e5abd-3841-41ec-87be-1732642959f9/tasks/image.png?Expires=1687236216&Key-Pair-Id=K5X85BMI2SNGO&Signature=MiChFawmI5iKhSooKB9mBi2lZsbuDvgQ2O0-dEsheR5TyCZ0vnuukGDtOsovyaA4MlIM6dp3WD08cwZJ0qFnZkrul2QeZ-D3~38daMatX3dAMcFVX4bmtm57UE~1vnkKL3gBEI-FG8yIH7JRYgfCEVshdOrMfnfmOLLUn1aUTfwDVvzdhF3qfZ9kUM3aULMeDfx28XcDVfS6~I7YUPCTcCRhPGUY8tSfx8nfQdM8Rg4tKNbT5hnB34QlpkuvGtSnuOgqUNJo5AHP5WnVkndPvnQPag6HD6~zSyeFe~oNZ0K~tksLWX8nw7-Aekl4~izZ~GBqhD-C0kjnq9xtvYU3pQ__',
# 'width': 1000}

## image classification task ##

### create ###

image_classification_project_id = client.create_project('image_classification', 'image-classification', 'image-classification')
image_classification_task_id = client.create_image_classification_task('image-classification', 'image.png', image_path, priority=low)
image_classification_task = client.find_image_classification_task(image_classification_task_id)
pprint(image_classification_task)
#{'approver': None,
# 'assignee': None,
# 'attributes': [],
# 'createdAt': '2023-06-20T03:49:52.083Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'height': 1000,
# 'id': '7b90c69b-75fb-4e8c-b5dd-3d5597919dbd',
# 'name': 'image.png',
# 'priority': 10,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T03:49:52.083Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/ab936b25-d768-4b51-be62-c0d30397b55b/tasks/image.png?Expires=1687236597&Key-Pair-Id=K5X85BMI2SNGO&Signature=H7q6g0-OlYA3uMmO~CL5Bmt6StczHoq57P882LSVqAuUtbPArCmPGzpg1-lk8hD9rl3vffYmGnEiiNHlamApEwPT4Oded5zMigpFLNBa6tY2SqHTHjIWPkQrpszTzH9KG7pwkYGgh1DcuiCRlGSUlDGlWkiMoUtR2M3JXK8qHAcQF9NSAnwDnCic065OhDnM7FEwjSG3Ek-IEL9HD5owCHGtZUu6r1okLWM1adsYgbmfTIDgYxIcO6MdeWSL4OQP9BEQrz8RuHaY0vbBt4gqvcB9fRccYmCP-D6mc37emZDogzVCmPt-uPrUsLEsDo~0Fi1ZCR45IlQiiym5P~MlZw__',
# 'width': 1000}

### update ###

client.update_image_classification_task(image_classification_task_id, priority=high)
image_classification_task = client.find_image_classification_task(image_classification_task_id)
pprint(image_classification_task)
#{'approver': None,
# 'assignee': None,
# 'attributes': [],
# 'createdAt': '2023-06-20T03:49:52.083Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'height': 1000,
# 'id': '7b90c69b-75fb-4e8c-b5dd-3d5597919dbd',
# 'name': 'image.png',
# 'priority': 30,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T03:52:33.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/ab936b25-d768-4b51-be62-c0d30397b55b/tasks/image.png?Expires=1687236760&Key-Pair-Id=K5X85BMI2SNGO&Signature=LivuEJ3BHmxdHq~VC576WcfrS6jB~WmqGkCrR2aRY8pMPjU8IEybnOYGODOFIFkQLPuqFpUsA6r6XthcvxjAUjSWV0dgcpUKl2lFAHbq9ZyW4VL05~UXuooqDcxz4Vuybc8qF4WK8Xik1EI6jOHFRlhx5pDWWvx~kxYhl4KLgN7jAMFelps9Bsehyrqpr2iCRB0N0~-63Ln9jnQzZ4HhEfQTojmlH240GyAj32Lr~kp9ULcFJIPD9cI~V-ntc6HOE5ESB-FFJDNANZGovT-vDTLIRDOrzOfk8O7URhzdraCGGtQ7FKMpZ9Wp8AvD0x0~sb-mSZ5uOvts5qTEf0DqXQ__',
# 'width': 1000}

## multi image task ##

### create ###

multi_image_project_id = client.create_project('multi_image_bbox', 'image-multi-image', 'image-multi-image')
multi_image_task_id = client.create_multi_image_task('image-multi-image', 'image.png', image_folder_path, priority=low)
multi_image_task = client.find_multi_image_task(multi_image_task_id)
pprint(multi_image_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'contents': [{'height': 1000,
#               'name': 'image.png',
#               'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/decbde03-5673-4c11-ac6a-95d78b424d92/tasks/image.png%2Fimage.png?Expires=1687237345&Key-Pair-Id=K5X85BMI2SNGO&Signature=I4PBi83GCs4G5Z20~Iq5UeVW7HLUv208wSTo5Kp41z01jiU0eghBo-9pmb4GwQomSHxPqOE8hwObsnBDW~2aCwfHrs93sJ3~59A9Dr9Km5FF6wZyevfLPhYb7U6ZULvw8B1Bhefjt8UMZv5YHrNp6wi4bhaL-rvPXtBHJkb8tZdAcMg5hSEnmaElJ77x1tR-hT~jNME3AHvJe3-DQ~GyelxNu9BueXKspeGA1wTRsQeuQLcppV7dFK6l9nDXHg1sI2kLcLo2QaorJ~OZje1YfJElFnIFMHDUXuPKIzHHtJrXUxeGz6TSPCMNocLSjY1aLYo12MOEle8Q6fMjI3fn3A__',
#               'width': 1000}],
# 'createdAt': '2023-06-20T04:02:03.804Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '22734d83-d4c7-47ac-af9a-5884f08d715c',
# 'name': 'image.png',
# 'priority': 10,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:02:03.804Z'}

### update ###

client.update_multi_image_task(multi_image_task_id, priority=high)
multi_image_task = client.find_multi_image_task(multi_image_task_id)
pprint(multi_image_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'contents': [{'height': 1000,
#               'name': 'image.png',
#               'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/decbde03-5673-4c11-ac6a-95d78b424d92/tasks/image.png%2Fimage.png?Expires=1687237449&Key-Pair-Id=K5X85BMI2SNGO&Signature=qDWcrpljU1FMGoyFXMb2E~YOEoJKf9c9gpvn0sKuBa-r2Us~v0j0gwA5sr9TvDymwOEIjOPivB4YJMpnKyMqgmvwRTYIKelDGgsmrdp077fT2ys1q7ciUedQttEqcLuhkERKPASUbuuxkekc5kB8nbPcZcFJY9qidYDNyMe27UCdM-ha2bj~vZVGYSHt783i0o2IbaEPNBhRg8AOD7f2U6FEyDBYhDx-K3LpVLHK-Tr41QzOrHWp6zvW4HR2qaSRWbA-233ITj2aJJEqxWslSGh3OkAucSfuobAW4~Qiw6UI4yxPPFLrhmf12BTyTIGPxOLk7H3HBobMdTDOn5xKOg__',
#               'width': 1000}],
# 'createdAt': '2023-06-20T04:02:03.804Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '22734d83-d4c7-47ac-af9a-5884f08d715c',
# 'name': 'image.png',
# 'priority': 30,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:04:04.000Z'}

## video task ##

### create ###

video_project_id = client.create_project('video_bbox', 'video', 'video')
video_task_id = client.create_video_task('video', 'video.mp4', video_path, priority=low)
video_task = client.find_video_task(video_task_id)
pprint(video_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T04:12:36.784Z',
# 'duration': 5.7,
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'fps': 30,
# 'frameCount': 171,
# 'height': 1080,
# 'id': '7c06d6e8-983e-452b-aead-dea1ad247e77',
# 'name': 'video.mp4',
# 'priority': 10,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:12:36.784Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/7d9fb020-14c6-44aa-b1f1-4b4215f5ffde/tasks/video.mp4?Expires=1687237962&Key-Pair-Id=K5X85BMI2SNGO&Signature=wzYVJ-X0LOOq~RlcXtJXwoCrqdST-eC8MCRkGKIpTb7wwSRQNUETUwtcdY3CM-doJT7x27ugr7i43TQN1xiUZZLBfqjt6Cgpk4naACQdaTsySH8CqoVHMoSZpKEZN4nEFACaOJLDPH1inwK~koyiXoPPav2ykThUdThI6vqc1GpHk83~OWSHcZRZCfzXezVPFLVEWNF~38N70c4p2gNyN5lOMk1u1qNV~i9-kFlASoRMBJUT3o4iS6znseU5Jz4RfEJEGdDFArXacUG04lceFwixPyjAuUzhVGUZB5al-wgcaRzFKYs61~mhKiM04pm85GM3mqy7b9dbgXmHJ~uVDQ__',
# 'width': 1920}

### update ###

client.update_video_task(video_task_id, priority=high)
video_task = client.find_video_task(video_task_id)
pprint(video_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T04:12:36.784Z',
# 'duration': 5.7,
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'fps': 30,
# 'frameCount': 171,
# 'height': 1080,
# 'id': '7c06d6e8-983e-452b-aead-dea1ad247e77',
# 'name': 'video.mp4',
# 'priority': 30,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:13:14.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/7d9fb020-14c6-44aa-b1f1-4b4215f5ffde/tasks/video.mp4?Expires=1687238000&Key-Pair-Id=K5X85BMI2SNGO&Signature=bw5H67Fjg5BJmNIaNY8gtv9YKOYmoCGUiNbkcX0nt~Etw49SabGQuUh~XvTLnAUU-yaYSFvaLpNrmpAoRGg9IMhUrvhXE~NDrDvdz2cG-VBnJ5gHUYAMTSGqwVtTNZMRInGm5tKw9WxnYNjp7-x0qP20SGmn4EwARmj2OR1tvvLk3oaPUJ2bwNvBoDt4nwmV69kn3IGO~6HsydagpXFqP54KXD7yp6yzzWSBGeTF3fOD0cj2zq0cB1N0KtyZ-mveA1UTNyoEkgp5Qq~voHJ7VryzSRBLCvrjkXTAGfTlyG0Xg3sLo2i2rt1i73UT8rZwCHdihql1zgwmqE~f8pG49g__',
# 'width': 1920}

## video classification task ##

### create ###

video_classification_project_id = client.create_project('video_single_classification', 'video-classfication', 'video-classfication')
video_classification_task_id = client.create_video_classification_task('video-classfication', 'video.mp4', video_path, priority=low)
video_classification_task = client.find_video_classification_task(video_classification_task_id)
pprint(video_classification_task)
#{'approver': None,
# 'assignee': None,
# 'attributes': [],
# 'createdAt': '2023-06-20T04:15:23.991Z',
# 'duration': 5.7,
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'fps': 30,
# 'frameCount': 171,
# 'height': 1080,
# 'id': '9254a585-777f-4eb8-b661-4658960b03ad',
# 'name': 'video.mp4',
# 'priority': 10,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:15:23.991Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/9f19bb28-3660-45b5-b05d-ab94e0ed5fd5/tasks/video.mp4?Expires=1687238137&Key-Pair-Id=K5X85BMI2SNGO&Signature=Dc9n97nNIB8-qKSVJExyhmr057gQgpU42OunQ3bp1~XNBKZPv31FufFPW1tDEAsv7UJF2yo39Nxhs2ASa35C8RAYw-Nx3CrSmlxpp49eN~b9LjNEF78YGxVaFusNPs4UX7aWcbvJeIcDN6vwCncFxFdaFLBnJq2tLrlrSFXuuxiCXaP80iJqX~wu2~0oS9gNRqI-kYtjuQLC7opF2sYHzUXtTQxHfUqeAiPht6xnBs0SXvte1hANjWPU1zx4Xj0LbIauHIjMzb1ZoivtXb8SAsFsoS-ceDfVIZBLg017tGaWxC7r99CCeHxyx5BlDw79KpsMrH6B-JKIubU-98xqYw__',
# 'width': 1920}

### update ###

client.update_video_classification_task(video_classification_task_id, priority=high)
video_classification_task = client.find_video_classification_task(video_classification_task_id)
pprint(video_classification_task)
#{'approver': None,
# 'assignee': None,
# 'attributes': [],
# 'createdAt': '2023-06-20T04:15:23.991Z',
# 'duration': 5.7,
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'fps': 30,
# 'frameCount': 171,
# 'height': 1080,
# 'id': '9254a585-777f-4eb8-b661-4658960b03ad',
# 'name': 'video.mp4',
# 'priority': 30,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:17:04.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/9f19bb28-3660-45b5-b05d-ab94e0ed5fd5/tasks/video.mp4?Expires=1687238229&Key-Pair-Id=K5X85BMI2SNGO&Signature=yQEIBpwm~H5aTxKxkMevJD5HJQ5VwoUH-PbP8cFXIdPWCUlqTTtXSQO9aD~d9qB3BPt-UzX15iy12DSCixXLmQJrHteBWP~CjItFOrRw3pYJBRyGUZbjso4n7IyCEHMxVouNj4AONl2pSXe6~gVpN1u8Iqas7UKzE7yPnb9G~4u0ELyS0kNRmiFYY-abgC9dF30SEgt2lR~mHsIWEfYvBmhfMNFVSliatieql7YzJcJeo-YZ4Pen0CeEQgxurFquqVxvXASB7ezBRzUcl9PgTiqXwhmb5FuJK5sI4osjDYXbEQQjig4K15uYEWmFqFN8ryQJpEXJJXS3XY4hBM2lpA__',
# 'width': 1920}

## text task ##

### create ###
text_task_id = client.create_text_task('text', 'text.txt', text_path, priority=low)
text_task = client.find_text_task(text_task_id)
pprint(text_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T04:22:33.155Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': 'a6219832-e734-4dbd-8029-79206a47f6fe',
# 'name': 'text.txt',
# 'priority': 10,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:22:33.155Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/c046a587-16e0-45ec-8eac-3ce21538244f/tasks/text.txt?Expires=1687238557&Key-Pair-Id=K5X85BMI2SNGO&Signature=M4hc9jM2CbJgawG0WlY0BIbBXSfQw3xtee9XZ3I1zxJg8JyN3vwh7O6bDHWOQbNHBaoyXiAXqluTvHKXHZBFGbUVuW3RTlxqKmmy8-1bPaaebG-UudOc9iYhljAgHwUjk2HlCXRIS7Q209i8fzUMHWNDyJyEWtRovGhlY-2L8KRFKOkcdHhv2paMi9W8i9qk2DOC9fseOeDRqYekucyX1PbtdXaYNnmQOMuRo40T~mlYxXxJ6Xx4oCnJ-IumndbxrjQR9Mt~HlJgRbykHSAFVtJwIj1lz-Z-8emygmu1wSY~QiValUOdwpQavZSUe1OX7yJWAVJLcQfxNo6pyX3l6Q__'}

### update ###
client.update_text_task(text_task_id, priority=high)
text_task = client.find_text_task(text_task_id)
pprint(text_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T04:22:33.155Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': 'a6219832-e734-4dbd-8029-79206a47f6fe',
# 'name': 'text.txt',
# 'priority': 30,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T04:23:22.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/c046a587-16e0-45ec-8eac-3ce21538244f/tasks/text.txt?Expires=1687238606&Key-Pair-Id=K5X85BMI2SNGO&Signature=i4LkQfBUJvwlUwV4ucRtOfrf22IwgPGMxJbbZpLsB3qxkN-DLWzrfgp6U3FO8o256Xl-4InjDTcfo2LDfviZzgYjSR~JEVNLrGRhoaWKnbSl7CA2IPQQi-RVJSHQMbOMXbz1YGwK0AFncfYmxLaLe1DF12rh~0XxvpU9P1ioT4T935aYcjBlSe~x~Kz14hXIPkqaRlEfcJCX~Ac7IkyGgS2NuVza5yHkr4z045TxNe61IxkaFnCAg7BcfjQaexeBDXZuEYhCL2H~ND~npeeMlB5ShmIglC-mLXBhDNkqbgUXd6PxGnQQ2p7VacSd-5yO7sgAzrjPhNLwPErMIp-dFA__'}

## text classification task ##

### create ###

text_classification_task_id = client.create_text_classification_task('text-classification', 'text_classification.txt', text_path, priority=low)
text_classification_task = client.find_text_classification_task(text_classification_task_id)
pprint(text_classification_task)
#{'approver': None,
# 'assignee': None,
# 'attributes': [],
# 'createdAt': '2023-06-20T05:12:23.893Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '96f2c9cc-0980-4992-97f3-84c7c3b38f03',
# 'name': 'text_classification.txt',
# 'priority': 10,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:12:23.893Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/058265a4-ea7c-4afa-b561-8d184cbfd651/tasks/text_classification.txt?Expires=1687241548&Key-Pair-Id=K5X85BMI2SNGO&Signature=19S5k7wPcexOuY8DnQlM60l0cYUy6~Jy0apusnNCgVI37puBNgSQUnS-WW6wO2Su~ey9uEYt1~7xIC98XCSNTU5zwQXURI2pLF1PrSNkMD-2u9Bx0yFdJdkJ~fApB1y~Ye~eOVdcxR8SnJqQUwzbGZ28YYrAojwQxE9nJGmF-X68chnK1OInXdV9pWKjj9PfYLbSdbGKJMVq-DruY9YNyUc27e7AavvhTwFcxRjglAhR4gwb9w5c1a7vpISgZSDhynPaCYISIhmkvh0VS6~NLptoOERSZXMomBonCtTdSvBwEZoTM-V7FUjphjI4MBZvjS7HufPIwJLPmpacBCGg1w__'}

### update ###
client.update_text_classification_task(text_classification_task_id, priority=high)
text_classification_task = client.find_text_classification_task(text_classification_task_id)
pprint(text_classification_task)
#{'approver': None,
# 'assignee': None,
# 'attributes': [],
# 'createdAt': '2023-06-20T05:12:23.893Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '96f2c9cc-0980-4992-97f3-84c7c3b38f03',
# 'name': 'text_classification.txt',
# 'priority': 30,
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:12:58.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/058265a4-ea7c-4afa-b561-8d184cbfd651/tasks/text_classification.txt?Expires=1687241584&Key-Pair-Id=K5X85BMI2SNGO&Signature=D9U6ec9c65COOy2vCaAxRYSBWwrXlNTKUj3qW2cjNJDOCaOL9L1qzVIjBRcWXoAk8PeOD~sy6b60q5k8nxyh4JIA1L235Ukn0iXVqdRYhszBC2d5sazQ9QRev9Hkq9j43hPEScIRL4kDmJuxcTURN4x-8BWOPv2hh-V8C0cRocLTbB9x-bZcHccVtdc6yRoNu-gKYM1V5tYREAEeyZZQRcw6gKeSkDMysG9GNQ47Wl4kGN~47f47qYvxXgmqoKrknCXgIefQoGqlwl3Fk2~6wL22BMFW67uchN87ERGqFvgUxsCkeBtVxR5F2Z1ODg0iYY~TaG5i84NqpHQ04d-RQw__'}

### audio task ###

### create ###
audio_task_id = client.create_audio_task('audio', 'audio.mp3', audio_path, priority=low)
audio_task = client.find_audio_task(audio_task_id)
pprint(audio_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T05:20:13.524Z',
# 'duration': 0,
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '32635f2c-5bd0-41b7-a175-2a1e2f009772',
# 'name': 'audio.mp3',
# 'priority': 10,
# 'reviewer': None,
# 'secondsToAnnotate': 0,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:20:13.524Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/d5f6f705-689d-4de0-a596-8b84cf2ebc4a/tasks/audio.mp3?Expires=1687242018&Key-Pair-Id=K5X85BMI2SNGO&Signature=l4ZLvKcpMy7GajYCgMxi6R2iA2qi5WmIsX6O~0s0UfhJX6flTfNSfQyEoDxbXHsCDdby7Q69GQfe8kYonG40KcttUnhtE4QeJ2XNFDqY48UC4NlJP5rgOdCpkJUP2XjUAcqPha4gGWArexY3aAGB7vCyzMdLMhiXsJBArJ7VW-RNHQ-h6McM7mNQahStWVUPD0uqAxnmbuKl8FSJ1YoTPQGsKwGMURxTStAKpC62TKEkmXVdDANZfRiVzXlqeRDz2qH9qzwyjh5NP1uy0TZoHEeEt5yvu836VjelHIfvajRcsJho87Y2k~MI8d76qHwYm6ip1g02FilDNGUexSrr4g__'}

### update ###
client.update_audio_task(audio_task_id, priority=high)
audio_task = client.find_audio_task(audio_task_id)
pprint(audio_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T05:20:13.524Z',
# 'duration': 0,
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '32635f2c-5bd0-41b7-a175-2a1e2f009772',
# 'name': 'audio.mp3',
# 'priority': 30,
# 'reviewer': None,
# 'secondsToAnnotate': 0,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:23:19.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/d5f6f705-689d-4de0-a596-8b84cf2ebc4a/tasks/audio.mp3?Expires=1687242203&Key-Pair-Id=K5X85BMI2SNGO&Signature=ZJ0N0wdMkcE5ElcV4PVZzn9Au~EHbwW0rwsfrGUM~8xsS6YZcsxIfyaUtYUZzaeUy-yE44N54Q-fTzZA2o~TiZUEqXCUVE00HazOp1LBlkQl1F07z4WEQTWCVdzSuOzpn~wOWsZ34s~9hOn946c9eGfW46TsgtNtgxk2PtrSpNLDU3WGlC9BVFFsMOvWnmsGKaUnJOuj6dDTL83hlBg13wvJxAjwgn3drXOhwLqirQClILe0mVaYsj9je6exxvqbYhqSE0xra21AzYKAsk~2M0qdTxjQsTAVsVew9uhecJCJnWbLfjDD59oZoeIscEpb49tyq9GaOYBGVgHuAQZf~A__'}

### pcd task ###

### create ###

pcd_task_id = client.create_pcd_task('pcd', 'pcd.pcd', pcd_path, priority=low)
pcd_task = client.find_pcd_task(pcd_task_id)
pprint(pcd_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T05:42:38.033Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '58e0124d-2c5b-4b6e-9d46-08c950a2f8ed',
# 'name': 'pcd.pcd',
# 'priority': 10,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:42:38.033Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/68216444-bf80-4b57-9f30-c0d8ed02804c/tasks/pcd.pcd?Expires=1687243362&Key-Pair-Id=K5X85BMI2SNGO&Signature=vb-IwxqYzNIMwyMOvbL9CLFTNq2-IQawl5e-wKBBuC0sx208mswei71wfkHThxujQLB0NtKXG~tKF1~47B5IGQyDf3jWv7WeiMpHQOO1HqahsLGH6A-ZKVQToZ50OjB1RbLEsYr1VJWot1hHVvA4~zJiC9Po3UMJVl~6xHT1QG4ii0qKFZ2moNEJHUNjemC2X5et-LVvpptVgZjBnYHc7Fo-cCHCe5p~iJiqlhtmtJoYz-Xcp7CDUCjUlKmI9nDDnn8Kkfi9ZsSgJy5I0bDatBvvldvBrxHcfA3OpaTcf7yw-PdUteenOH1p9DfpEORYXng91qcVXOgTjgb7pT2CzA__'}

### update ###
client.update_pcd_task(pcd_task_id, priority=high)
pcd_task = client.find_pcd_task(pcd_task_id)
pprint(pcd_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T05:42:38.033Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'id': '58e0124d-2c5b-4b6e-9d46-08c950a2f8ed',
# 'name': 'pcd.pcd',
# 'priority': 30,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:43:13.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/68216444-bf80-4b57-9f30-c0d8ed02804c/tasks/pcd.pcd?Expires=1687243399&Key-Pair-Id=K5X85BMI2SNGO&Signature=ALib3snM4R~c7pxjfSTnMCIckF0UIFSYi3dAEqnsbRoTohfmp3FxVOfJLISB0xvpPmQitJpglGPp0kDNssaFbXju76hIoLuV9iMZ8oZemkmqw6lH9tYkITy13kLwphc8nKmNh5i76UP0P1FUQ6Ht3zrcOTo4DX9B2F9Xm~XDv3eaEP8keIhYTkaff6mmtp7Ips3T61RDszP9jv9l6Qe6vF-~oeemjqtLNkVNx6ZO0cUqWOHVC3D1sMlahbEtmqSFbyzaNQ3JyMh-dxZT17oDTOkAjUJgQSRWn9hMRZ9QZhRATArLS77Zn4qC-bCMg~v0fQ7tRDZsb2jmv0AYUxFwGw__'}

### sequential pcd task ###

### create ###
sequential_pcd_task_id = client.create_sequential_pcd_task('sequential_pcd', 'sequential_pcd.pcd', pcd_folder_path, priority=low)
sequential_pcd_task = client.find_sequential_pcd_task(sequential_pcd_task_id)
pprint(sequential_pcd_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T05:48:56.682Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'height': 0,
# 'id': 'bc4b16af-1eef-4a8c-b554-8b687f2e10fb',
# 'name': 'sequential_pcd.pcd',
# 'priority': 10,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:48:56.682Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/2a6a7627-bece-43ee-b4ff-a1e058f081e8/tasks/pcd.pcd?Expires=1687243741&Key-Pair-Id=K5X85BMI2SNGO&Signature=hXO1jpeJRfZr2oAxmtFB~RMBgjynYvqEskg9c94u0JnCUglE5m5RFWHR-pyQhVr0ys-J63JanOsn0QnfRSOvsq6UIDVP6K2I3G-3h8PjbLrEA~Vqwp9uf84YOH48wAtCfli3SoH5HIsxVUp6N80-voPNufSkvRtPKneg0o9HGemPEc5VKp5b4xK2xoidv13zlZL1~6WRiOkQwEl8euGAA7YkX9uUtEaIg-culDIHEHDRVaBHgr3l1qPz7MlYN6fj9J77FCiCRF823uX2Ow81tWaScu7W57rLhpXWVs7avohrlGCDdgKgIFbjmC7ODV2wrI3I8yrR6vYeDuXyUVPa6Q__',
# 'width': 0}

### update ###
client.update_sequential_pcd_task(sequential_pcd_task_id, priority=high)
sequential_pcd_task = client.find_sequential_pcd_task(sequential_pcd_task_id)
pprint(sequential_pcd_task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T05:48:56.682Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'height': 0,
# 'id': 'bc4b16af-1eef-4a8c-b554-8b687f2e10fb',
# 'name': 'sequential_pcd.pcd',
# 'priority': 30,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:49:37.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/2a6a7627-bece-43ee-b4ff-a1e058f081e8/tasks/pcd.pcd?Expires=1687243781&Key-Pair-Id=K5X85BMI2SNGO&Signature=biPRK7l1aSKsArkoi81~0OeEZouIuDmyuHMN1-VzcijItZAuFN99cEAXE3b~lRK01tgp60e4-mkBSFBjdYd2rfD1hRNoPMMDiRVaZiMCUJNG7ZmE-ij3-1nM3-m3PZHaceIyIZjfNd-JNiEswo504xvc2ZIGq~cpwndE6n9XraSwOhh9ymFAws8NAYywcGIlq7JJwf1qtfG3t8EvI3cEx7wiX3Tdck~JCuLs6pBzX7cMilj8Uu6Ee4bbll1BUKjJMKs~tW4gIZuRqr79HbtWsnD0uy9YhiSoEWo~U8OZ~FucHtXo1uyTCFn4IYy7~Vgzq8kdeEIafec6qnUuYY7JqA__',
# 'width': 0}

### update task ###

project_id = client.create_project('image_bbox', 'task', 'task')
task_id = client.create_image_task('task', 'image.png', image_path, priority=low)
client.update_task(task_id, priority=high)
task = client.find_image_task(task_id)
pprint(task)
#{'annotations': [],
# 'approver': None,
# 'assignee': None,
# 'createdAt': '2023-06-20T05:53:30.291Z',
# 'externalApprover': None,
# 'externalAssignee': None,
# 'externalReviewer': None,
# 'externalStatus': 'registered',
# 'height': 1000,
# 'id': 'a313ac7c-2496-4ddc-aba4-c8a94e0c6b22',
# 'name': 'image.png',
# 'priority': 30,
# 'relations': [],
# 'reviewer': None,
# 'status': 'registered',
# 'tags': [],
# 'updatedAt': '2023-06-20T05:53:34.000Z',
# 'url': 'https://local-contents.dev.fastlabel.ai/6334a2f6-7709-4fb5-8cb1-2580768d530d/698b452f-33c7-444d-a9c8-cb2c4ffa179e/tasks/image.png?Expires=1687244046&Key-Pair-Id=K5X85BMI2SNGO&Signature=mpXXsqipBDvIDBGRdND-p-RrgMokrDMpwaIPqGc3BLgHfmGUvDw25dC6vWq2~pL3n20uRCjAmV9sCyuIcMF3yu7oeHUZAuhO4BbLZ57VtEpjhTtDwF4LS0NczBuB7oKRR6qMzJZMHyK6lJT-xRkqASrif2JfpfSKXqhO9jzL1RF5tJcbutEG6c41H7fqvxMYfrWQt98ZqwwN2HP4lX7JUchFQjUzpvs8mvUC4O59v-1pFljKJPZr4Ea8vgC2MRkfSsze8ywChD7x8GScvOKU0MOSpI7tzL8~eqghWLGaMYASwUEg~nlkQv3w6jBDgKJEb6q1zQu67Pd1GxT-8W3tTQ__',
# 'width': 1000}

### out of range ###
project_id = client.create_project('image_bbox', 'out', 'out')
response = client.create_image_task('task', 'image.png', image_path, priority=100)
#Traceback (most recent call last):
#  File "<stdin>", line 1, in <module>
#  File "/usr/src/fastlabel/__init__.py", line 838, in create_image_task
#    return self.api.post_request(endpoint, payload=payload)
#  File "/usr/src/fastlabel/api.py", line 93, in post_request
#    raise FastLabelInvalidException(error, r.status_code)
#fastlabel.exceptions.FastLabelInvalidException: <Response [400]> {'params.priority': {'message': 'should be one of the following; [0,10,20,30]', 'value': 100}}

@hotsum92 hotsum92 requested a review from ueno-k-work June 20, 2023 07:47
if "external_approver" in kwargs:
payload["externalApprover"] = kwargs.get("external_approver")
if "priority" in kwargs:
payload["priority"] = kwargs.get("priority")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

__fill_assign_users というメソッドの中でpriorityが入ってくるのは異質なので、ここではなく別に切り出したいです。
(おそらくそれぞれの呼び出し元でstatusやtagと同じようにifで処理を書くのを避けたかったという意図がありそうなのは感じた上でですが、、)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ueno-k-work
共通処理でいれて、関数名考慮に入ってませんでした。
修正しました!!

if priority is not None:

にしてますが、priorityが 0に設定されたときでも更新できるようにしています。

PS:
tags では、if tags: で判定しているので、[] 空配列で更新できないような気がするので、別のPRで検証して投げようと思います。

https://docs.python.org/2/library/stdtypes.html#truth-value-testing

@ueno-k-work ueno-k-work merged commit fd7873d into main Jun 23, 2023
@ueno-k-work ueno-k-work deleted the feature/prioriry branch June 23, 2023 04:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants