Skip to content

Commit 1f78124

Browse files
Vaghinak BasentsyanVaghinak Basentsyan
authored andcommitted
Fixed 348, 349, 351
1 parent 0504fb0 commit 1f78124

File tree

8 files changed

+84
-5
lines changed

8 files changed

+84
-5
lines changed

docs/source/conf.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,6 @@
5353
# relative to this directory. They are copied after the builtin static files,
5454
# so a file named "default.css" will overwrite the builtin "default.css".
5555
html_static_path = []
56+
57+
set_type_checking_flag = False
58+
always_document_param_types = False

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,7 +1291,7 @@ def upload_images_from_folder_to_project(
12911291
project: Union[NotEmptyStr, dict],
12921292
folder_path: Union[NotEmptyStr, Path],
12931293
extensions: Optional[
1294-
Union[List[NotEmptyStr], Tuple[str]]
1294+
Union[List[NotEmptyStr], Tuple[NotEmptyStr]]
12951295
] = constances.DEFAULT_IMAGE_EXTENSIONS,
12961296
annotation_status="NotStarted",
12971297
from_s3_bucket=None,
@@ -3437,7 +3437,7 @@ def aggregate_annotations_as_df(
34373437
include_comments: Optional[StrictBool] = False,
34383438
include_tags: Optional[StrictBool] = False,
34393439
verbose: Optional[StrictBool] = True,
3440-
folder_names: Optional[NotEmptyStr] = None,
3440+
folder_names: Optional[List[NotEmptyStr]] = None,
34413441
):
34423442
"""Aggregate annotations as pandas dataframe from project root.
34433443

src/superannotate/lib/core/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@
5959
)
6060
ATTACHING_FILES_MESSAGE = "Attaching {} file(s) to project {}."
6161

62+
ATTACHING_UPLOAD_STATE_ERROR = "You cannot attach URLs in this type of project. Please attach it in an external storage project."
63+
UPLOADING_UPLOAD_STATE_ERROR = "You cannot upload files in this type of project. Please upload it in an basic storage project."
64+
6265
DEPRECATED_VIDEO_PROJECTS_MESSAGE = (
6366
"The function does not support projects containing videos attached with URLs"
6467
)

src/superannotate/lib/core/usecases/images.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,6 +1131,10 @@ def s3_repo(self):
11311131
)
11321132

11331133
def validate_project_type(self):
1134+
if self._project.upload_state == constances.UploadState.EXTERNAL.value:
1135+
raise AppValidationException(constances.UPLOADING_UPLOAD_STATE_ERROR)
1136+
1137+
def validate_deprecation(self):
11341138
if self._project.project_type in [
11351139
constances.ProjectType.VIDEO.value,
11361140
constances.ProjectType.DOCUMENT.value,
@@ -1309,6 +1313,10 @@ def validate_extensions(self):
13091313
raise AppValidationException("")
13101314

13111315
def validate_project_type(self):
1316+
if self._project.upload_state == constances.UploadState.EXTERNAL.value:
1317+
raise AppValidationException(constances.UPLOADING_UPLOAD_STATE_ERROR)
1318+
1319+
def validate_deprecation(self):
13121320
if self._project.project_type in constances.LIMITED_FUNCTIONS:
13131321
raise AppValidationException(
13141322
constances.LIMITED_FUNCTIONS[self._project.project_type]
@@ -1907,6 +1915,11 @@ def validate_limitations(self):
19071915
):
19081916
raise AppValidationException(constances.ATTACH_USER_LIMIT_ERROR_MESSAGE)
19091917

1918+
def validate_upload_state(self):
1919+
if (self._upload_state_code and self._upload_state_code != self._project.upload_state) \
1920+
or self._project.upload_state == constances.UploadState.BASIC.value:
1921+
raise AppValidationException(constances.ATTACHING_UPLOAD_STATE_ERROR)
1922+
19101923
@property
19111924
def annotation_status_code(self):
19121925
if self._annotation_status:
@@ -3549,6 +3562,10 @@ def __init__(
35493562
self._limit = limit
35503563
self._limitation_response = None
35513564

3565+
def validate_upload_state(self):
3566+
if self._project.upload_state == constances.UploadState.EXTERNAL.value:
3567+
raise AppValidationException(constances.UPLOADING_UPLOAD_STATE_ERROR)
3568+
35523569
@property
35533570
def limitation_response(self):
35543571
if not self._limitation_response:

src/superannotate/version.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
__version__ = "5.0.0b40"
2-

tests/integration/test_depricated_functions_document.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ def test_deprecated_functions(self):
161161
except AppException as e:
162162
self.assertIn(self.EXCEPTION_MESSAGE_DOCUMENT_VIDEO, str(e))
163163
try:
164-
sa.copy_images(self.PROJECT_NAME, [self.UPLOAD_IMAGE_NAME], self.PROJECT_NAME_2)
164+
sa.copy_images(self.PROJECT_NAME, [self.UPLOAD_IMAGE_NAME], self.PROJECT_NAME)
165165
except AppException as e:
166166
self.assertIn(self.EXCEPTION_MESSAGE, str(e))
167167
try:

tests/integration/test_depricated_functions_video.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def test_deprecated_functions(self):
157157
except AppException as e:
158158
self.assertIn(self.EXCEPTION_MESSAGE_DOCUMENT_VIDEO, str(e))
159159
try:
160-
sa.copy_images(self.PROJECT_NAME, [self.UPLOAD_IMAGE_NAME], self.PROJECT_NAME_2)
160+
sa.copy_images(self.PROJECT_NAME, [self.UPLOAD_IMAGE_NAME], self.PROJECT_NAME)
161161
except AppException as e:
162162
self.assertIn(self.EXCEPTION_MESSAGE, str(e))
163163
try:
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import os
2+
from os.path import dirname
3+
4+
import src.superannotate as sa
5+
from src.superannotate import AppException
6+
from src.superannotate.lib.core import ATTACHING_UPLOAD_STATE_ERROR
7+
from src.superannotate.lib.core import UPLOADING_UPLOAD_STATE_ERROR
8+
from tests.integration.base import BaseTestCase
9+
10+
11+
class TestVectorUploadStateCode(BaseTestCase):
12+
PROJECT_NAME = "TestVectorUploadStateCode"
13+
PROJECT_DESCRIPTION = "Desc"
14+
PROJECT_TYPE = "Vector"
15+
TEST_FOLDER_PATH = "data_set"
16+
TEST_IMAGES_PATH = "sample_project_vector"
17+
PATH_TO_URLS = "attach_urls.csv"
18+
PATH_TO_VIDEOS = "sample_videos"
19+
IMAGE_NAME = "example_image_1.jpg"
20+
21+
@property
22+
def folder_path(self):
23+
return os.path.join(dirname(dirname(__file__)), self.TEST_FOLDER_PATH)
24+
25+
@property
26+
def attachments(self):
27+
return os.path.join(dirname(dirname(__file__)), self.PATH_TO_URLS)
28+
29+
def test_attach_wrong_upload_state(self):
30+
sa.upload_image_to_project(self.PROJECT_NAME,
31+
os.path.join(self.folder_path, self.TEST_IMAGES_PATH, self.IMAGE_NAME))
32+
with self.assertRaisesRegexp(AppException, ATTACHING_UPLOAD_STATE_ERROR):
33+
sa.attach_image_urls_to_project(self.PROJECT_NAME, os.path.join(self.folder_path, self.PATH_TO_URLS))
34+
35+
def test_upload_images_wrong_upload_state(self):
36+
sa.attach_image_urls_to_project(self.PROJECT_NAME, os.path.join(self.folder_path, self.PATH_TO_URLS))
37+
with self.assertRaisesRegexp(AppException, UPLOADING_UPLOAD_STATE_ERROR):
38+
sa.upload_images_from_folder_to_project(
39+
self.PROJECT_NAME,
40+
os.path.join(self.folder_path, self.TEST_IMAGES_PATH)
41+
)
42+
43+
def test_upload_image_wrong_upload_state(self):
44+
sa.attach_image_urls_to_project(self.PROJECT_NAME, os.path.join(self.folder_path, self.PATH_TO_URLS))
45+
with self.assertRaisesRegexp(AppException, UPLOADING_UPLOAD_STATE_ERROR):
46+
sa.upload_image_to_project(
47+
self.PROJECT_NAME,
48+
os.path.join(self.folder_path, self.TEST_IMAGES_PATH, self.IMAGE_NAME)
49+
)
50+
51+
def test_videos_image_wrong_upload_state(self):
52+
sa.attach_image_urls_to_project(self.PROJECT_NAME, os.path.join(self.folder_path, self.PATH_TO_URLS))
53+
with self.assertRaisesRegexp(AppException, UPLOADING_UPLOAD_STATE_ERROR):
54+
sa.upload_videos_from_folder_to_project(
55+
self.PROJECT_NAME,
56+
os.path.join(self.folder_path, self.PATH_TO_VIDEOS)
57+
)

0 commit comments

Comments
 (0)