3131from lib .app .interface .types import NotEmptyStr
3232from lib .app .interface .types import ProjectStatusEnum
3333from lib .app .interface .types import ProjectTypes
34+ from lib .app .interface .types import Setting
3435from lib .app .interface .types import validate_arguments
3536from lib .app .mixp .decorators import Trackable
3637from lib .app .serializers import BaseSerializer
4142from lib .app .serializers import TeamSerializer
4243from lib .core import LIMITED_FUNCTIONS
4344from lib .core .entities import AttachmentEntity
45+ from lib .core .entities import SettingEntity
4446from lib .core .entities .integrations import IntegrationEntity
4547from lib .core .entities .project_entities import AnnotationClassEntity
4648from lib .core .enums import ImageQuality
@@ -181,21 +183,31 @@ def create_project(
181183 project_name : NotEmptyStr ,
182184 project_description : NotEmptyStr ,
183185 project_type : NotEmptyStr ,
186+ settings : List [Setting ] = None
184187):
185188 """Create a new project in the team.
186189
187190 :param project_name: the new project's name
188191 :type project_name: str
192+
189193 :param project_description: the new project's description
190194 :type project_description: str
195+
191196 :param project_type: the new project type, Vector or Pixel.
192197 :type project_type: str
193198
199+ :param settings: list of settings objects
200+ :type settings: list of dicts
201+
194202 :return: dict object metadata the new project
195203 :rtype: dict
196204 """
205+ if settings :
206+ settings = parse_obj_as (List [SettingEntity ], settings )
207+ else :
208+ settings = []
197209 response = Controller .get_default ().create_project (
198- name = project_name , description = project_description , project_type = project_type
210+ name = project_name , description = project_description , project_type = project_type , settings = settings
199211 )
200212 if response .errors :
201213 raise AppException (response .errors )
@@ -218,7 +230,7 @@ def create_project_from_metadata(project_metadata: Project):
218230 name = project_metadata ["name" ],
219231 description = project_metadata .get ("description" ),
220232 project_type = project_metadata ["type" ],
221- settings = project_metadata .get ("settings" , []),
233+ settings = parse_obj_as ( List [ SettingEntity ], project_metadata .get ("settings" , []) ),
222234 annotation_classes = project_metadata .get ("classes" , []),
223235 workflows = project_metadata .get ("workflows" , []),
224236 instructions_link = project_metadata .get ("instructions_link" ),
0 commit comments