From 4eb8e8fc28c866ebf6416bf89908768585c44db3 Mon Sep 17 00:00:00 2001 From: Daisuke Miyazoe Date: Tue, 3 Mar 2026 14:52:46 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E3=82=BF=E3=82=B9=E3=82=AF=E3=81=AE?= =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E3=81=A7=E3=81=8D=E3=82=8B=20api=20=E3=82=92=E5=8F=A9=E3=81=8F?= =?UTF-8?q?=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89wo=20=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastlabel/__init__.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/fastlabel/__init__.py b/fastlabel/__init__.py index f581db8..45bcc6e 100644 --- a/fastlabel/__init__.py +++ b/fastlabel/__init__.py @@ -5184,6 +5184,27 @@ def get_histories( return self.api.get_request(endpoint, params=params) + def get_comments( + self, + project: str, + task_id: str, + offset: int = None, + limit: int = 100, + ) -> list: + if limit > 1000: + raise FastLabelInvalidException( + "Limit must be less than or equal to 1000.", 422 + ) + endpoint = "comments" + params = {"project": project} + if task_id: + params["taskId"] = task_id + if offset: + params["offset"] = offset + if limit: + params["limit"] = limit + return self.api.get_request(endpoint, params=params) + def mask_to_fastlabel_segmentation_points( self, mask_image: Union[str, np.ndarray] ) -> List[List[List[int]]]: From 2e7d0491613e4b91ade94645479c0268c86f769b Mon Sep 17 00:00:00 2001 From: Daisuke Miyazoe Date: Wed, 4 Mar 2026 11:46:58 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89?= =?UTF-8?q?=E5=90=8D=E3=81=AE=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastlabel/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlabel/__init__.py b/fastlabel/__init__.py index 45bcc6e..1394fb7 100644 --- a/fastlabel/__init__.py +++ b/fastlabel/__init__.py @@ -5184,7 +5184,7 @@ def get_histories( return self.api.get_request(endpoint, params=params) - def get_comments( + def get_task_comments( self, project: str, task_id: str, From aad9eb3403eaea16a9c592f48b95fdc73de724f9 Mon Sep 17 00:00:00 2001 From: Daisuke Miyazoe Date: Wed, 4 Mar 2026 14:58:25 +0900 Subject: [PATCH 3/3] =?UTF-8?q?get=5Ftask=5Fcomments.py=E3=81=AE=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=80=81readme=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 43 +++++++++++++++++++++++++++++++++++ examples/get_task_comments.py | 8 +++++++ 2 files changed, 51 insertions(+) create mode 100644 examples/get_task_comments.py diff --git a/README.md b/README.md index c30f42b..99721c7 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ - [Appendix](#appendix) - [Annotation](#annotation) - [Metadata](#metadata) +- [Comment](#comment) - [Project](#project) - [Dataset](#dataset) - [Converter](#converter) @@ -2654,6 +2655,48 @@ Example of a metadata object } ``` +## Comment + +### Get Task Comments + +Get comments of a task. (Up to 1000 comments) + +```python +comments = client.get_task_comments(project="YOUR_PROJECT_SLUG", task_id="YOUR_TASK_ID") +``` + +### Response + +Example of a comment object + +```python +{ + "id": "YOUR_COMMENT_ID", + "taskId": "YOUR_TASK_ID", + "contentId": "YOUR_CONTENT_ID", + "type": "text", + "isResolved": False, + "points": [185.98, 86.55], + "scale": 0, + "frame": 0, + "status": "todo", + "priority": 0, + "taskAnnotationId": None, + "issueCategoryId": None, + "color": None, + "threads": [ + { + "id": "YOUR_THREAD_ID", + "text": "comment text", + "createdAt": "2026-03-03T03:51:55.247Z", + "updatedAt": "2026-03-03T03:51:55.247Z", + }, + ], + "createdAt": "2026-03-03T03:51:55.240Z", + "updatedAt": "2026-03-03T03:51:55.240Z", +} +``` + ## Project ### Create Project diff --git a/examples/get_task_comments.py b/examples/get_task_comments.py new file mode 100644 index 0000000..a1b6352 --- /dev/null +++ b/examples/get_task_comments.py @@ -0,0 +1,8 @@ +from pprint import pprint + +import fastlabel + +client = fastlabel.Client() + +comments = client.get_task_comments(project="YOUR_PROJECT_SLUG", task_id="YOUR_TASK_ID") +pprint(comments)