Skip to content

Commit 84c7fd6

Browse files
Vaghinak BasentsyanVaghinak Basentsyan
authored andcommitted
Added setting serializer
1 parent fd8e2e1 commit 84c7fd6

File tree

6 files changed

+32
-9
lines changed

6 files changed

+32
-9
lines changed

src/superannotate/lib/app/interface/sdk_interface.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
from lib.app.serializers import BaseSerializers
3737
from lib.app.serializers import ImageSerializer
3838
from lib.app.serializers import ProjectSerializer
39+
from lib.app.serializers import SettingsSerializer
3940
from lib.app.serializers import TeamSerializer
4041
from lib.core.enums import ImageQuality
4142
from lib.core.exceptions import AppException
@@ -856,8 +857,12 @@ def get_project_metadata(
856857
).data
857858

858859
metadata = ProjectSerializer(response["project"]).serialize()
860+
if response.get("settings"):
861+
metadata["settings"] = [
862+
SettingsSerializer(setting).serialize() for setting in response["settings"]
863+
]
859864

860-
for elem in "settings", "classes", "workflows", "contributors":
865+
for elem in "classes", "workflows", "contributors":
861866
if response.get(elem):
862867
metadata[elem] = [
863868
BaseSerializers(attribute).serialize() for attribute in response[elem]

src/superannotate/lib/app/serializers.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,11 @@ def deserialize(data):
6262
if isinstance(data, list):
6363
return [ImageEntity(**image) for image in data]
6464
return ImageEntity(**data)
65+
66+
67+
class SettingsSerializer(BaseSerializers):
68+
def serialize(self):
69+
data = super().serialize()
70+
if data["attribute"] == "ImageQuality":
71+
data["value"] = constance.ImageQuality.get_name(data["value"])
72+
return data

src/superannotate/lib/core/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from pathlib import Path
22

33
from superannotate.lib.core.enums import AnnotationStatus
4+
from superannotate.lib.core.enums import ImageQuality
45
from superannotate.lib.core.enums import ProjectType
56
from superannotate.lib.core.enums import SegmentationStatus
67
from superannotate.lib.core.enums import TrainingStatus
@@ -63,6 +64,7 @@
6364
TrainingStatus,
6465
SegmentationStatus,
6566
TrainingTask,
67+
ImageQuality,
6668
AnnotationStatus,
6769
CONFIG_FILE_LOCATION,
6870
BACKEND_URL,

src/superannotate/lib/core/usecases.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1377,7 +1377,7 @@ def execute(self):
13771377

13781378
new_settings_to_update = []
13791379
for new_setting in self._to_update:
1380-
if new_setting["attribute"] == 'ImageQuality':
1380+
if new_setting["attribute"] == "ImageQuality":
13811381
new_setting["value"] = ImageQuality.get_value(new_setting["value"])
13821382
new_settings_to_update.append(
13831383
{
@@ -4159,7 +4159,9 @@ def s3_repository(self):
41594159
return self._s3_repo_instance
41604160

41614161
def _upload_image(self, image_path: str):
4162-
ProcessedImage = namedtuple("ProcessedImage", ["uploaded", "path", "entity", "name"])
4162+
ProcessedImage = namedtuple(
4163+
"ProcessedImage", ["uploaded", "path", "entity", "name"]
4164+
)
41634165
if self._from_s3_bucket:
41644166
image_bytes = (
41654167
GetS3ImageUseCase(s3_bucket=self._from_s3_bucket, image_path=image_path)
@@ -4180,9 +4182,16 @@ def _upload_image(self, image_path: str):
41804182

41814183
if not upload_response.errors and upload_response.data:
41824184
entity = upload_response.data
4183-
return ProcessedImage(uploaded=True, path=entity.path, entity=entity, name=Path(image_path).name)
4185+
return ProcessedImage(
4186+
uploaded=True,
4187+
path=entity.path,
4188+
entity=entity,
4189+
name=Path(image_path).name,
4190+
)
41844191
else:
4185-
return ProcessedImage(uploaded=False, path=image_path, entity=None, name=Path(image_path).name)
4192+
return ProcessedImage(
4193+
uploaded=False, path=image_path, entity=None, name=Path(image_path).name
4194+
)
41864195

41874196
@property
41884197
def paths(self):

src/superannotate/lib/infrastructure/services.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77
from urllib.parse import urljoin
88

99
import lib.core as constance
10-
import requests
10+
import requests.packages.urllib3
1111
from lib.core.exceptions import AppException
1212
from lib.core.serviceproviders import SuerannotateServiceProvider
1313
from requests.exceptions import HTTPError
14-
import requests.packages.urllib3
1514

1615
requests.packages.urllib3.disable_warnings()
1716

tests/integration/test_interface.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ def test_get_project_default_image_quality_in_editor(self):
1818
self.assertIsNotNone(sa.get_project_default_image_quality_in_editor(self.PROJECT_NAME))
1919

2020
def test_get_project_metadata(self):
21-
metadata = sa.upload_images_from_folder_to_project(self.PROJECT_NAME, self.folder_path)
22-
pass
21+
metadata = sa.get_project_metadata(self.PROJECT_NAME, include_settings=True)
22+
print(metadata)

0 commit comments

Comments
 (0)