Skip to content

Commit 00604a0

Browse files
authored
feat(lab-3461): use autoAssign field instead of seconds_to_label_befo… (#1881)
1 parent c399cfa commit 00604a0

File tree

5 files changed

+22
-7
lines changed

5 files changed

+22
-7
lines changed

src/kili/adapters/kili_api_gateway/project/mappers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def project_data_mapper(data: ProjectDataKiliAPIGatewayInput) -> Dict:
5050
"numberOfRemainingAssets": data.number_of_remaining_assets,
5151
"numberOfReviewedAssets": data.number_of_reviewed_assets,
5252
"reviewCoverage": data.review_coverage,
53-
"secondsToLabelBeforeAutoAssign": data.seconds_to_label_before_auto_assign,
53+
"shouldAutoAssign": data.should_auto_assign,
5454
"shouldRelaunchKpiComputation": data.should_relaunch_kpi_computation,
5555
"title": data.title,
5656
"useHoneyPot": data.use_honeypot,

src/kili/adapters/kili_api_gateway/project/types.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class ProjectDataKiliAPIGatewayInput:
3232
number_of_remaining_assets: Optional[int]
3333
number_of_reviewed_assets: Optional[int]
3434
review_coverage: Optional[int]
35-
seconds_to_label_before_auto_assign: Optional[int]
35+
should_auto_assign: Optional[bool]
3636
should_relaunch_kpi_computation: Optional[bool]
3737
title: Optional[str]
3838
use_honeypot: Optional[bool]

src/kili/presentation/client/project.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Client presentation methods for projects."""
22

3+
import warnings
34
from typing import (
45
Any,
56
Dict,
@@ -304,6 +305,7 @@ def update_properties_in_project(
304305
use_honeypot: Optional[bool] = None,
305306
metadata_types: Optional[dict] = None,
306307
seconds_to_label_before_auto_assign: Optional[int] = None,
308+
should_auto_assign: Optional[bool] = None,
307309
) -> Dict[str, Any]:
308310
"""Update properties of a project.
309311
@@ -340,9 +342,8 @@ def update_properties_in_project(
340342
metadata_types: Types of the project metadata.
341343
Should be a `dict` of metadata fields name as keys and metadata types as values.
342344
Currently, possible types are: `string`, `number`
343-
seconds_to_label_before_auto_assign: When a user begins to annotate an asset,
344-
it automatically gets assigned to them.
345-
This ensures the user retains the asset until it is submitted.
345+
seconds_to_label_before_auto_assign: DEPRECATED, use `should_auto_assign` instead.
346+
should_auto_assign: If `True`, assets are automatically assigned to users when they start annotating.
346347
347348
Returns:
348349
A dict with the changed properties which indicates if the mutation was successful,
@@ -369,6 +370,14 @@ def update_properties_in_project(
369370
Not providing a type for a metadata field or providing an unsupported one
370371
will default to the `string` type.
371372
"""
373+
if seconds_to_label_before_auto_assign is not None:
374+
warnings.warn(
375+
"seconds_to_label_before_auto_assign is going to be deprecated. Please use"
376+
" `should_auto_assign` field instead to auto assign assets",
377+
DeprecationWarning,
378+
stacklevel=1,
379+
)
380+
372381
return ProjectUseCases(self.kili_api_gateway).update_properties_in_project(
373382
ProjectId(project_id),
374383
can_navigate_between_assets=can_navigate_between_assets,
@@ -391,6 +400,7 @@ def update_properties_in_project(
391400
use_honeypot=use_honeypot,
392401
title=title,
393402
metadata_types=metadata_types,
403+
should_auto_assign=should_auto_assign,
394404
seconds_to_label_before_auto_assign=seconds_to_label_before_auto_assign,
395405
)
396406

src/kili/use_cases/project/project.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ def update_properties_in_project(
127127
title: Optional[str] = None,
128128
use_honeypot: Optional[bool] = None,
129129
metadata_types: Optional[Dict] = None,
130+
should_auto_assign: Optional[bool] = None,
130131
seconds_to_label_before_auto_assign: Optional[int] = None,
131132
) -> Dict[str, object]:
132133
"""Update properties in a project."""
@@ -141,6 +142,10 @@ def update_properties_in_project(
141142
if review_coverage is not None and not 0 <= review_coverage <= 100:
142143
raise ValueError("Argument `review_coverage` must be comprised between 0 and 100.")
143144

145+
# if should_auto_assign is True or false use it, else use seconds_to_label_before_auto_assign
146+
if should_auto_assign is None and seconds_to_label_before_auto_assign is not None:
147+
should_auto_assign = seconds_to_label_before_auto_assign is not None
148+
144149
project_data = ProjectDataKiliAPIGatewayInput(
145150
can_navigate_between_assets=can_navigate_between_assets,
146151
can_skip_asset=can_skip_asset,
@@ -159,7 +164,7 @@ def update_properties_in_project(
159164
number_of_remaining_assets=number_of_remaining_assets,
160165
number_of_reviewed_assets=number_of_reviewed_assets,
161166
review_coverage=review_coverage,
162-
seconds_to_label_before_auto_assign=seconds_to_label_before_auto_assign,
167+
should_auto_assign=should_auto_assign,
163168
should_relaunch_kpi_computation=should_relaunch_kpi_computation,
164169
title=title,
165170
use_honeypot=use_honeypot,

tests/integration/presentation/test_project.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def test_when_updating_project_then_it_returns_updated_project(mocker: pytest_mo
6969
"numberOfRemainingAssets": None,
7070
"numberOfReviewedAssets": None,
7171
"reviewCoverage": 42,
72-
"secondsToLabelBeforeAutoAssign": None,
72+
"shouldAutoAssign": None,
7373
"shouldRelaunchKpiComputation": None,
7474
"title": None,
7575
"useHoneyPot": None,

0 commit comments

Comments
 (0)