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
72 changes: 35 additions & 37 deletions src/superannotate/lib/app/interface/sdk_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -2440,7 +2440,7 @@ def query(
_items = folder.list_items(query=query, subset_id=subset_id)
else:
_items = project.list_items(query=query, subset_id=subset_id)
exclude = {"custom_metadata", "meta"}
exclude = {"meta"}
return [serialize_item(i, project).dict(exclude=exclude) for i in _items]

def get_item_metadata(
Expand Down Expand Up @@ -2609,14 +2609,20 @@ def search_items(
items.extend(
[
serialize_item(i, project, folder).dict(exclude=exclude)
for i in folder.list_items(condition=search_condition)
for i in folder.list_items(
condition=search_condition,
include_custom_metadata=include_custom_metadata,
)
]
)
else:
folder = project.get_folder(folder_name)
items = [
serialize_item(i, project, folder).dict(exclude=exclude)
for i in folder.list_items(condition=search_condition)
for i in folder.list_items(
condition=search_condition,
include_custom_metadata=include_custom_metadata,
)
]
return items

Expand Down Expand Up @@ -2994,13 +3000,8 @@ def create_custom_fields(self, project: NotEmptyStr, fields: dict):

"""
project_name, _ = extract_project_folder(project)
project = self.controller.projects.get_by_name(project_name).data
response = self.controller.custom_fields.create_schema(
project=project, schema=fields
)
if response.errors:
raise AppException(response.errors)
return response.data
project = self.controller.get_project(project_name)
return project.create_custom_fields(fields)

def get_custom_fields(self, project: NotEmptyStr):
"""Get the schema of the custom fields defined for the project
Expand Down Expand Up @@ -3042,11 +3043,8 @@ def get_custom_fields(self, project: NotEmptyStr):
}
"""
project_name, _ = extract_project_folder(project)
project = self.controller.projects.get_by_name(project_name).data
response = self.controller.custom_fields.get_schema(project=project)
if response.errors:
raise AppException(response.errors)
return response.data
project = self.controller.get_project(project_name)
return project.get_custom_fields()

def delete_custom_fields(
self, project: NotEmptyStr, fields: conlist(str, min_items=1)
Expand Down Expand Up @@ -3096,13 +3094,9 @@ def delete_custom_fields(

"""
project_name, _ = extract_project_folder(project)
project = self.controller.projects.get_by_name(project_name).data
response = self.controller.custom_fields.delete_schema(
project=project, fields=fields
)
if response.errors:
raise AppException(response.errors)
return response.data
project = self.controller.get_project(project_name)
project.delete_custom_field(fields)
return project.get_custom_fields()

def upload_custom_values(
self, project: NotEmptyStr, items: conlist(Dict[str, dict], min_items=1)
Expand Down Expand Up @@ -3164,19 +3158,21 @@ def upload_custom_values(
::

{
"successful_items_count": 2,
"failed_items_names": ["image_3.png"]
"succeeded": ["image_1.png", "image_2.png"],
"failed": ["image_3.png"]
}
"""

project_name, folder_name = extract_project_folder(project)
project, folder = self.controller.get_project_folder(project_name, folder_name)
response = self.controller.custom_fields.upload_values(
project=project, folder=folder, items=items
)
if response.errors:
raise AppException(response.errors)
return response.data
project = self.controller.get_project(project_name)
folder = project.get_folder(folder_name)
_item_fields_mapping = {}
for i in items:
_item_fields_mapping.update(i)
_items = folder.list_items(item_names=list(_item_fields_mapping.keys()))
item_fields_map = {i: _item_fields_mapping[i.name] for i in _items}
succeeded_items, failed_items = folder.set_custom_field_values(item_fields_map)
return {"succeeded": succeeded_items, "failed": failed_items}

def delete_custom_values(
self, project: NotEmptyStr, items: conlist(Dict[str, List[str]], min_items=1)
Expand Down Expand Up @@ -3207,12 +3203,14 @@ def delete_custom_values(
)
"""
project_name, folder_name = extract_project_folder(project)
project, folder = self.controller.get_project_folder(project_name, folder_name)
response = self.controller.custom_fields.delete_values(
project=project, folder=folder, items=items
)
if response.errors:
raise AppException(response.errors)
project = self.controller.get_project(project_name)
folder = project.get_folder(folder_name)
_item_fields_mapping = {}
for i in items:
_item_fields_mapping.update(i)
_items = folder.list_items(item_names=list(_item_fields_mapping.keys()))
item_fields_map = {i: _item_fields_mapping[i.name] for i in _items}
return folder.delete_custom_field_values(item_fields_map)

def add_items_to_subset(
self, project: NotEmptyStr, subset: NotEmptyStr, items: List[dict]
Expand Down
1 change: 0 additions & 1 deletion src/superannotate/lib/core/usecases/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from lib.core.usecases.annotations import * # noqa: F403 F401
from lib.core.usecases.classes import * # noqa: F403 F401
from lib.core.usecases.custom_fields import * # noqa: F403 F401
from lib.core.usecases.images import * # noqa: F403 F401
from lib.core.usecases.integrations import * # noqa: F403 F401
from lib.core.usecases.items import * # noqa: F403 F401
Expand Down
176 changes: 0 additions & 176 deletions src/superannotate/lib/core/usecases/custom_fields.py

This file was deleted.

53 changes: 0 additions & 53 deletions src/superannotate/lib/infrastructure/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -580,58 +580,6 @@ def upload_image_annotations(
return use_case.execute()


class CustomFieldManager(BaseManager):
def create_schema(self, project: ProjectEntity, schema: dict):
use_case = usecases.CreateCustomSchemaUseCase(
reporter=Reporter(),
project=project,
schema=schema,
service_provider=self.service_provider,
)
return use_case.execute()

def get_schema(self, project: ProjectEntity):
use_case = usecases.GetCustomSchemaUseCase(
reporter=Reporter(),
project=project,
service_provider=self.service_provider,
)
return use_case.execute()

def delete_schema(self, project: ProjectEntity, fields: List[str]):
use_case = usecases.DeleteCustomSchemaUseCase(
reporter=Reporter(),
project=project,
fields=fields,
service_provider=self.service_provider,
)
return use_case.execute()

def upload_values(
self, project: ProjectEntity, folder: FolderEntity, items: List[dict]
):
use_case = usecases.UploadCustomValuesUseCase(
reporter=Reporter(),
project=project,
folder=folder,
items=items,
service_provider=self.service_provider,
)
return use_case.execute()

def delete_values(
self, project: ProjectEntity, folder: FolderEntity, items: List[dict]
):
use_case = usecases.DeleteCustomValuesUseCase(
reporter=Reporter(),
project=project,
folder=folder,
items=items,
service_provider=self.service_provider,
)
return use_case.execute()


class ModelManager(BaseManager):
def list(self, condition: Condition):
use_case = usecases.SearchMLModels(
Expand Down Expand Up @@ -757,7 +705,6 @@ def __init__(self, config: ConfigEntity):
self.annotations = AnnotationManager(
self.service_provider, config, self._session
)
self.custom_fields = CustomFieldManager(self.service_provider, self._session)
self.subsets = SubsetManager(self.service_provider, self._session)
self.models = ModelManager(self.service_provider, self._session)
self.integrations = IntegrationManager(self.service_provider, self._session)
Expand Down
2 changes: 0 additions & 2 deletions src/superannotate/lib/infrastructure/serviceprovider.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from lib.core.serviceproviders import BaseServiceProvider
from lib.infrastructure.services.annotation import AnnotationService
from lib.infrastructure.services.annotation_class import AnnotationClassService
from lib.infrastructure.services.custom_field import CustomFieldService
from lib.infrastructure.services.http_client import HttpClient
from lib.infrastructure.services.integration import IntegrationService
from lib.infrastructure.services.item import ItemService
Expand Down Expand Up @@ -49,7 +48,6 @@ def __init__(self, client: HttpClient):
self.items = ItemService(client)
self.annotations = AnnotationService(client)
self.annotation_classes = AnnotationClassService(client)
self.custom_fields = CustomFieldService(client)
self.subsets = SubsetService(client)
self.models = ModelsService(client)
self.integrations = IntegrationService(client)
Expand Down
Loading