Skip to content

Commit cfedef9

Browse files
committed
Adjust tests.
1 parent 63605e6 commit cfedef9

File tree

12 files changed

+45
-38
lines changed

12 files changed

+45
-38
lines changed

docs/source/superannotate.sdk.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ Exports
6161
_______
6262

6363
.. autofunction:: superannotate.prepare_export
64+
.. autofunction:: superannotate.get_annotations
65+
.. autofunction:: superannotate.get_annotations_per_frame
6466
.. _ref_download_export:
6567
.. autofunction:: superannotate.download_export
6668
.. autofunction:: superannotate.get_exports

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,5 @@ mixpanel==4.8.3
1818
pydantic>=1.8.2
1919
pydantic[email]
2020
setuptools~=57.4.0
21+
aiohttp==3.8.1
22+

requirements_dev.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
-r requirements.txt
21
superannotate_schemas>=1.0.38.b1
32

requirements_prod.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
-r requirements.txt
21
superannotate_schemas=1.0.39

setup.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,18 @@
77
with open('src/superannotate/version.py') as f:
88
version = f.read().rstrip()[15:-1]
99

10-
requirements_path = f"requirements_{'dev' if parse(version).is_prerelease else 'prod'}.txt"
10+
requirements_path = "requirements_{}.txt".format('dev' if parse(version).is_prerelease else 'prod')
11+
requirements = []
1112

1213
with open(requirements_path) as f:
13-
requirements = f.read()
14-
requirements = requirements.splitlines()
14+
requirements.extend(f.read().splitlines())
1515

16-
if sys.platform == 'linux':
17-
with open('requirements_extra.txt') as f:
18-
requirements_extra = f.read()
19-
20-
requirements_extra = requirements_extra.splitlines()
21-
requirements += requirements_extra
16+
with open("requirements.txt") as f:
17+
requirements.extend(f.read().splitlines())
2218

2319
with open('README.md') as f:
2420
readme = f.read()
21+
2522
readme = "\n".join(readme.split('\n')[2:])
2623

2724

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ def create_project(self, name: str, description: str, type: str):
7272
To create a new project
7373
"""
7474
create_project(name, description, type)
75-
sys.exit(0)
7675

7776
def create_folder(self, project: str, name: str):
7877
"""

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
from pydantic import conlist
4545
from pydantic import parse_obj_as
4646
from pydantic import StrictBool
47+
from pydantic.error_wrappers import ValidationError
4748
from superannotate.logger import get_default_logger
4849
from tqdm import tqdm
4950

@@ -1634,7 +1635,10 @@ def create_annotation_classes_from_classes_json(
16341635
else:
16351636
data = open(classes_json)
16361637
classes_json = json.load(data)
1637-
annotation_classes = parse_obj_as(List[AnnotationClassEntity], classes_json)
1638+
try:
1639+
annotation_classes = parse_obj_as(List[AnnotationClassEntity], classes_json)
1640+
except ValidationError:
1641+
raise AppException("Couldn't validate annotation classes.")
16381642
logger.info(
16391643
"Creating annotation classes in project %s from %s.",
16401644
project,

src/superannotate/lib/app/mixp/utils/parsers.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,3 +1203,27 @@ def add_contributors_to_project(*args, **kwargs):
12031203
"event_name": "add_contributors_to_project",
12041204
"properties": {"User Role": user_role},
12051205
}
1206+
1207+
1208+
def get_annotations(*args, **kwargs):
1209+
project = kwargs.get("project", args[0])
1210+
items = kwargs.get("items", args[1])
1211+
1212+
return {
1213+
"event_name": "get_annotations",
1214+
"properties": {"Project": project, "items_count": len(items)},
1215+
}
1216+
1217+
1218+
def get_annotations_per_frame(*args, **kwargs):
1219+
project = kwargs.get("project", args[0])
1220+
fps = kwargs.get("fps")
1221+
if not fps:
1222+
try:
1223+
fps = args[2]
1224+
except IndexError:
1225+
fps = 1
1226+
return {
1227+
"event_name": "get_annotations_per_frame",
1228+
"properties": {"Project": project, "fps": fps},
1229+
}

src/superannotate/lib/core/entities/project_entities.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from typing import List
66

77
from lib.core.enums import ClassTypeEnum
8-
from lib.core.enums import ImageQuality
98
from lib.core.enums import SegmentationStatus
109
from superannotate_schemas.schemas.classes import AnnotationClass
1110

@@ -177,11 +176,6 @@ def to_dict(self):
177176
"value": self.value,
178177
}
179178

180-
def serialize(self):
181-
if self.attribute == "ImageQuality":
182-
self.value = ImageQuality.get_value(self.value)
183-
return self.to_dict()
184-
185179

186180
class WorkflowEntity(BaseEntity):
187181
def __init__(

src/superannotate/lib/infrastructure/repositories.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from lib.core.entities import UserEntity
2121
from lib.core.entities import WorkflowEntity
2222
from lib.core.enums import ClassTypeEnum
23+
from lib.core.enums import ImageQuality
2324
from lib.core.exceptions import AppException
2425
from lib.core.repositories import BaseManageableRepository
2526
from lib.core.repositories import BaseProjectRelatedManageableRepository
@@ -197,13 +198,15 @@ def delete(self, uuid: int):
197198
raise NotImplementedError
198199

199200
def update(self, entity: ProjectSettingEntity):
200-
res = self._service.set_project_settings(
201-
self._project.uuid, self._project.team_id, [entity.serialize()]
201+
if entity.attribute == "ImageQuality" and isinstance(entity.value, str):
202+
entity.value = ImageQuality.get_value(entity.value)
203+
self._service.set_project_settings(
204+
self._project.uuid, self._project.team_id, [entity.to_dict()]
202205
)
203206
return entity
204207

205208
@staticmethod
206-
def dict2entity(data: dict):
209+
def dict2entity(data: dict) -> ProjectSettingEntity:
207210
return ProjectSettingEntity(
208211
uuid=data["id"],
209212
project_id=data["project_id"],

0 commit comments

Comments
 (0)