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
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Changelog

# In progress

## Added
* Add deprecation warning for queue_mode == QueueMode.Dataset when creating a new project.
* Add deprecation warning for LPOs.

## Changed
* Default behavior for metrics to not include subclasses in the calculation.
* Updated `create_batch` method to accept consensus settings.
Expand Down
30 changes: 23 additions & 7 deletions labelbox/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
from labelbox.schema.project import Project
from labelbox.schema.role import Role
from labelbox.schema.slice import CatalogSlice
from labelbox.schema.queue_mode import QueueMode

from labelbox.schema.media_type import MediaType

Expand Down Expand Up @@ -615,11 +616,17 @@ def create_project(self, **kwargs) -> Project:
>>> project = client.create_project(
name="<project_name>",
description="<project_description>",
media_type=MediaType.Image
media_type=MediaType.Image,
queue_mode=QueueMode.Batch
)

Args:
**kwargs: Keyword arguments with Project attribute values.
name (str): A name for the project
description (str): A short summary for the project
media_type (MediaType): The type of assets that this project will accept
queue_mode (Optional[QueueMode]): The queue mode to use
auto_audit_percentage (Optional[float]): The percentage of data rows that will require more than 1 label
auto_audit_number_of_labels (Optional[float]): Number of labels required for data rows selected for multiple labeling (auto_audit_percentage)
Returns:
A new Project object.
Raises:
Expand All @@ -630,7 +637,7 @@ def create_project(self, **kwargs) -> Project:
queue_mode = kwargs.get("queue_mode")
if media_type:
if MediaType.is_supported(media_type):
kwargs["media_type"] = media_type.value
media_type = media_type.value
else:
raise TypeError(f"{media_type} is not a valid media type. Use"
f" any of {MediaType.get_supported_members()}"
Expand All @@ -642,11 +649,20 @@ def create_project(self, **kwargs) -> Project:

if not queue_mode:
logger.warning(
"Default createProject behavior will soon be adjusted to prefer"
"batch projects. Pass in `queue_mode` parameter explicitly to opt-out for the"
"Default createProject behavior will soon be adjusted to prefer "
"batch projects. Pass in `queue_mode` parameter explicitly to opt-out for the "
"time being.")

return self._create(Entity.Project, kwargs)
elif queue_mode == QueueMode.Dataset:
logger.warning(
"QueueMode.Dataset will eventually be deprecated, and is no longer "
"recommended for new projects. Prefer QueueMode.Batch instead.")

return self._create(Entity.Project, {
**kwargs,
**({
'media_type': media_type
} if media_type else {})
})

def get_roles(self) -> List[Role]:
"""
Expand Down
4 changes: 4 additions & 0 deletions labelbox/schema/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -768,6 +768,10 @@ def set_labeling_parameter_overrides(self, data) -> bool:
Returns:
bool, indicates if the operation was a success.
"""
logger.warning(
"LabelingParameterOverrides are deprecated for new projects, and will eventually be removed "
"completely. Prefer to use batch based queuing with priority & consensus number of labels instead."
)
self.validate_labeling_parameter_overrides(data)
data_str = ",\n".join(
"{dataRow: {id: \"%s\"}, priority: %d, numLabels: %d }" %
Expand Down