Skip to content

Commit 9bdfc0f

Browse files
authored
Merge pull request #252 from fastlabel/feature/add-update-project-user-permission
feat: プロジェクトユーザー権限更新メソッドの追加
2 parents db03b45 + 020e26e commit 9bdfc0f

File tree

3 files changed

+52
-4
lines changed

3 files changed

+52
-4
lines changed

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2547,6 +2547,32 @@ project_metadata_id = client.update_project_metadata(
25472547
)
25482548
```
25492549

2550+
### Update Project User Permission
2551+
2552+
Update or assign user permissions for a project.
2553+
2554+
```python
2555+
# Add or update user permission
2556+
result = client.update_project_user_permission(
2557+
project="YOUR_PROJECT_SLUG",
2558+
2559+
role="annotator"
2560+
)
2561+
2562+
# Remove user from project
2563+
result = client.update_project_user_permission(
2564+
project="YOUR_PROJECT_SLUG",
2565+
2566+
role="none"
2567+
)
2568+
```
2569+
2570+
Available roles:
2571+
- `annotator`: Annotator
2572+
- `reviewer`: Reviewer
2573+
- `owner`: Project owner
2574+
- `none`: Remove user from project
2575+
25502576
## Tags
25512577

25522578
### Get Tags

fastlabel/__init__.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4137,6 +4137,26 @@ def update_project_metadata(
41374137
}
41384138
return self.api.put_request(endpoint, payload=payload)
41394139

4140+
def update_project_user_permission(
4141+
self,
4142+
project: str,
4143+
email: str,
4144+
role: str,
4145+
) -> bool:
4146+
"""
4147+
Update project user permission.
4148+
4149+
project is the slug of the project (Required).
4150+
email is the email address of the user (Required).
4151+
role is the role of the user in the project (Required).
4152+
role can be 'annotator', 'reviewer', 'owner',
4153+
'external_annotator', 'external_reviewer', 'external_approver',
4154+
'external_sub_owner', 'external_owner', or 'none' to remove user from project.
4155+
"""
4156+
endpoint = "projects-users"
4157+
payload = {"project": project, "email": email, "role": role}
4158+
return self.api.put_request(endpoint, payload=payload)
4159+
41404160
# Tags
41414161

41424162
def get_tags(
@@ -4680,9 +4700,11 @@ def execute_training_job(
46804700
"learningRate": learning_rate,
46814701
"resizeOption": resize_option,
46824702
"resizeDimension": resize_dimension,
4683-
"configFile": utils.base64_encode(str(config_file_path))
4684-
if config_file_path is not None
4685-
else None,
4703+
"configFile": (
4704+
utils.base64_encode(str(config_file_path))
4705+
if config_file_path is not None
4706+
else None
4707+
),
46864708
}
46874709
if annotation_value:
46884710
payload["annotationValue"] = annotation_value

fastlabel/utils/mask_image_util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def mask_to_polygon(mask_image: Union[str, np.ndarray]) -> list[list[list[int]]]
2727

2828

2929
def mask_to_segmentation(
30-
mask_image: Union[str, np.ndarray, Mat, UMat, Image]
30+
mask_image: Union[str, np.ndarray, Mat, UMat, Image],
3131
) -> list[list[list[int]]]:
3232
if isinstance(mask_image, str):
3333
mask_image_path = mask_image

0 commit comments

Comments
 (0)