Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2294,6 +2294,35 @@ tasks = client.get_robotics_tasks(
)
```

#### Update Tasks

Update a single robotics task.

```python
task_id = client.update_robotics_task(
task_id="YOUR_TASK_ID",
status="approved",
priority=10, # (optional) none: 0, low: 10, medium: 20, high: 30
assignee="USER_SLUG",
tags=["tag1", "tag2"],
operator="OPERATOR_NAME", # (optional) name of operator
annotations=[
{
"type": "sub_task",
"value": "grab",
"start": 13,
"end": 18,
}
],
metadatas=[ # (optional) metadata key-value pairs
{
"key": "metadata_key",
"value": "metadata_value"
}
]
)
```

#### Response

Example of a single robotics task object
Expand Down
29 changes: 29 additions & 0 deletions examples/update_robotics_task.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from pprint import pprint

import fastlabel

client = fastlabel.Client()

task_id = client.update_robotics_task(
task_id="YOUR_TASK_ID",
status="approved",
priority=10, # none: 0, low: 10, medium: 20, high: 30
assignee="USER_SLUG",
tags=["tag1", "tag2"],
operator="OPERATOR_NAME",
annotations=[
{
"type": "sub_task",
"value": "grab",
"start": 13,
"end": 18,
}
],
metadatas=[
{
"key": "metadata_key",
"value": "metadata_value",
}
],
)
pprint(task_id)
67 changes: 65 additions & 2 deletions fastlabel/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2080,7 +2080,8 @@ def create_robotics_task(
status: Optional[str] = None,
external_status: Optional[str] = None,
priority: Optional[Priority] = None,
tags: Optional[list[str]] = None,
tags: Optional[List[str]] = None,
operator: Optional[str] = None,
metadatas: Optional[list] = None,
**kwargs,
) -> str:
Expand All @@ -2098,6 +2099,7 @@ def create_robotics_task(
medium = 20,
high = 30,
tags is a list of tag to be set in advance (Optional).
operator is a name of operator (Optional).
metadatas is a list of metadata key-value pairs to be set in advance (Optional).
e.g.) [{"key": "metadata_key", "value": "some_value"}]
assignee is slug of assigned user (Optional).
Expand All @@ -2117,7 +2119,9 @@ def create_robotics_task(
if priority is not None:
payload["priority"] = priority
if tags:
payload["tags"] = tags or []
payload["tags"] = tags
if operator is not None:
payload["operator"] = operator
if metadatas:
payload["metadatas"] = metadatas

Expand Down Expand Up @@ -2189,6 +2193,65 @@ def get_robotics_tasks(

return self.api.get_request(endpoint, params=params)

def update_robotics_task(
self,
task_id: str,
status: Optional[str] = None,
external_status: Optional[str] = None,
priority: Optional[Priority] = None,
tags: Optional[List[str]] = None,
operator: Optional[str] = None,
annotations: Optional[List[dict]] = None,
metadatas: Optional[list] = None,
**kwargs,
) -> str:
"""
Update a single robotics task.

task_id is an id of the task (Required).
status can be 'registered', 'completed', 'skipped', 'reviewed', 'sent_back',
'approved', 'declined' (Optional).
external_status can be 'registered', 'completed', 'skipped', 'reviewed',
'sent_back', 'approved', 'declined', 'customer_declined'. (Optional)
priority is the priority of the task (default: none) (Optional).
Set one of the numbers corresponding to:
none = 0,
low = 10,
medium = 20,
high = 30,
tags is a list of tag to be set (Optional).
operator is a name of operator (Optional).
annotations is a list of annotation to be set (Optional).
metadatas is a list of metadata key-value pairs to be set (Optional).
e.g.) [{"key": "metadata_key", "value": "some_value"}]
assignee is slug of assigned user (Optional).
reviewer is slug of review user (Optional).
approver is slug of approve user (Optional).
external_assignee is slug of external assigned user (Optional).
external_reviewer is slug of external review user (Optional).
external_approver is slug of external approve user (Optional).
"""
endpoint = "tasks/robotics/" + task_id
payload = {}
if status:
payload["status"] = status
if external_status:
payload["externalStatus"] = external_status
if priority is not None:
payload["priority"] = priority
if tags:
payload["tags"] = tags
if operator is not None:
payload["operator"] = operator
if annotations:
payload["annotations"] = delete_extra_annotations_parameter(annotations)
if metadatas:
payload["metadatas"] = metadatas

self.__fill_assign_users(payload, **kwargs)

return self.api.put_request(endpoint, payload=payload)

def import_lerobot(
self,
project: str,
Expand Down
Loading