Skip to content

Commit f4080c2

Browse files
committed
Add form argument in create_project method
1 parent 0eed125 commit f4080c2

File tree

9 files changed

+1540
-1
lines changed

9 files changed

+1540
-1
lines changed

src/superannotate/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import sys
44

55

6-
__version__ = "4.4.37"
6+
__version__ = "4.4.38dev1"
77

88

99
os.environ.update({"sa_version": __version__})

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,6 +1131,7 @@ def create_project(
11311131
workflows: Any = None,
11321132
instructions_link: str = None,
11331133
workflow: str = None,
1134+
form: dict = None,
11341135
):
11351136
"""Create a new project in the team.
11361137
@@ -1159,6 +1160,9 @@ def create_project(
11591160
:param instructions_link: str of instructions URL
11601161
:type instructions_link: str
11611162
1163+
:param form: form object that will be used for the MULTIMODAL project.
1164+
:type form: dict
1165+
11621166
:return: dict object metadata the new project
11631167
:rtype: dict
11641168
"""
@@ -1172,6 +1176,11 @@ def create_project(
11721176
settings = parse_obj_as(List[SettingEntity], settings)
11731177
else:
11741178
settings = []
1179+
if ProjectType(project_type) == ProjectType.MULTIMODAL:
1180+
logger.error("Form is required for Multimodal projects.")
1181+
if classes is not None:
1182+
raise AppException("You can't provide classes for Multimodal projects.")
1183+
settings.append(SettingEntity(attribute="TemplateState", value=1))
11751184
if classes:
11761185
classes = parse_obj_as(List[AnnotationClassEntity], classes)
11771186
project_entity = entities.ProjectEntity(
@@ -1194,6 +1203,9 @@ def create_project(
11941203
project_response = self.controller.projects.create(project_entity)
11951204
project_response.raise_for_status()
11961205
project = project_response.data
1206+
if form:
1207+
form_response = self.controller.projects.attach_form(project, form)
1208+
form_response.raise_for_status()
11971209
if classes:
11981210
classes_response = self.controller.annotation_classes.create_multiple(
11991211
project, classes

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
from lib.core.entities.items import PROJECT_ITEM_ENTITY_MAP
1313
from lib.core.entities.items import TiledEntity
1414
from lib.core.entities.items import VideoEntity
15+
from lib.core.entities.multimodal_form import FormModel
16+
from lib.core.entities.multimodal_form import generate_classes_from_form
1517
from lib.core.entities.project import AttachmentEntity
1618
from lib.core.entities.project import ContributorEntity
1719
from lib.core.entities.project import CustomFieldEntity
@@ -55,4 +57,7 @@
5557
"UserEntity",
5658
"IntegrationEntity",
5759
"PROJECT_ITEM_ENTITY_MAP",
60+
# multimodal
61+
"FormModel",
62+
"generate_classes_from_form",
5863
]

0 commit comments

Comments
 (0)