@@ -91,13 +91,17 @@ def _get_label_mapping(db_labels):
9191
9292
9393def _write_annotation_guide (
94- zip_object , annotation_guide , guide_filename , assets_dirname , target_dir = None
95- ):
94+ zip_object : ZipFile ,
95+ annotation_guide : Optional [models .AnnotationGuide ],
96+ guide_filename : str ,
97+ assets_dirname : str ,
98+ target_dir : str ,
99+ ) -> None :
96100 if annotation_guide is not None :
97101 md = annotation_guide .markdown
98102 assets = annotation_guide .assets .all ()
99- assets_dirname = os .path .join (target_dir or "" , assets_dirname )
100- guide_filename = os .path .join (target_dir or "" , guide_filename )
103+ assets_dirname = os .path .join (target_dir , assets_dirname )
104+ guide_filename = os .path .join (target_dir , guide_filename )
101105
102106 for db_asset in assets :
103107 md = md .replace (
@@ -386,7 +390,7 @@ def _write_directory(
386390 )
387391
388392 @abstractmethod
389- def export_to (self , file : str | ZipFile , target_dir : str | None = None ) : ...
393+ def export_to (self , file : str ) -> None : ...
390394
391395 @classmethod
392396 def get_object (cls , pk : int ) -> models .Project | models .Task :
@@ -420,7 +424,7 @@ def __init__(self, pk, version=Version.V1, *, lightweight: bool):
420424 self ._label_mapping = _get_label_mapping (db_labels )
421425 self ._lightweight = lightweight
422426
423- def _write_annotation_guide (self , zip_object , target_dir = None ) :
427+ def _write_annotation_guide (self , zip_object : ZipFile , target_dir : str ) -> None :
424428 annotation_guide = (
425429 self ._db_task .annotation_guide if hasattr (self ._db_task , "annotation_guide" ) else None
426430 )
@@ -432,10 +436,9 @@ def _write_annotation_guide(self, zip_object, target_dir=None):
432436 target_dir = target_dir ,
433437 )
434438
435- def _write_data (self , zip_object , target_dir = None ):
436- target_data_dir = (
437- os .path .join (target_dir , self .DATA_DIRNAME ) if target_dir else self .DATA_DIRNAME
438- )
439+ def _write_data (self , zip_object : ZipFile , target_dir : str ) -> None :
440+ target_data_dir = os .path .join (target_dir , self .DATA_DIRNAME )
441+
439442 if self ._db_data .storage == StorageChoice .LOCAL :
440443 data_dir = self ._db_data .get_upload_dirname ()
441444 self ._write_directory (
@@ -547,19 +550,18 @@ def _write_data(self, zip_object, target_dir=None):
547550 else :
548551 raise NotImplementedError
549552
550- def _write_task (self , zip_object , target_dir = None ) :
553+ def _write_task (self , zip_object : ZipFile , target_dir : str ) -> None :
551554 task_dir = self ._db_task .get_dirname ()
552- target_task_dir = (
553- os .path .join (target_dir , self .TASK_DIRNAME ) if target_dir else self .TASK_DIRNAME
554- )
555+ target_task_dir = os .path .join (target_dir , self .TASK_DIRNAME )
556+
555557 self ._write_directory (
556558 source_dir = task_dir ,
557559 zip_object = zip_object ,
558560 target_dir = target_task_dir ,
559561 recursive = False ,
560562 )
561563
562- def _write_manifest (self , zip_object , target_dir = None ) :
564+ def _write_manifest (self , zip_object : ZipFile , target_dir : str ) -> None :
563565 def serialize_task ():
564566 task_serializer = TaskReadSerializer (self ._db_task )
565567 for field in ("url" , "owner" , "assignee" ):
@@ -674,14 +676,10 @@ def serialize_data():
674676 task ["data" ] = serialize_data ()
675677 task ["jobs" ] = serialize_jobs ()
676678
677- target_manifest_file = (
678- os .path .join (target_dir , self .MANIFEST_FILENAME )
679- if target_dir
680- else self .MANIFEST_FILENAME
681- )
679+ target_manifest_file = os .path .join (target_dir , self .MANIFEST_FILENAME )
682680 zip_object .writestr (target_manifest_file , data = JSONRenderer ().render (task ))
683681
684- def _write_annotations (self , zip_object : ZipFile , target_dir : Optional [ str ] = None ) -> None :
682+ def _write_annotations (self , zip_object : ZipFile , target_dir : str ) -> None :
685683 def serialize_annotations ():
686684 db_jobs = self ._get_db_jobs ()
687685 db_job_ids = (j .id for j in db_jobs )
@@ -708,22 +706,18 @@ def serialize_shapes():
708706 yield self ._prepare_annotations (annotation_data , self ._label_mapping )
709707
710708 annotations = serialize_annotations ()
711- target_annotations_file = (
712- os .path .join (target_dir , self .ANNOTATIONS_FILENAME )
713- if target_dir
714- else self .ANNOTATIONS_FILENAME
715- )
709+ target_annotations_file = os .path .join (target_dir , self .ANNOTATIONS_FILENAME )
716710 with zip_object .open (target_annotations_file , "w" ) as f :
717711 rapidjson .dump (annotations , f )
718712
719- def _export_task (self , zip_obj , target_dir = None ) :
713+ def _export_task (self , zip_obj : ZipFile , target_dir : str ) -> None :
720714 self ._write_data (zip_obj , target_dir )
721715 self ._write_task (zip_obj , target_dir )
722716 self ._write_manifest (zip_obj , target_dir )
723717 self ._write_annotations (zip_obj , target_dir )
724718 self ._write_annotation_guide (zip_obj , target_dir )
725719
726- def export_to (self , file : str | ZipFile , target_dir : str | None = None ) :
720+ def export_to (self , file : str | ZipFile , target_dir : str = "" ) -> None :
727721 if (
728722 self ._db_task .data .storage_method == StorageMethodChoice .FILE_SYSTEM
729723 and self ._db_task .data .storage == StorageChoice .SHARE
@@ -1154,7 +1148,7 @@ def __init__(self, pk, *, lightweight: bool, version: Version = Version.V1):
11541148 self ._label_mapping = _get_label_mapping (db_labels )
11551149 self ._lightweight = lightweight
11561150
1157- def _write_annotation_guide (self , zip_object , target_dir = None ) :
1151+ def _write_annotation_guide (self , zip_object : ZipFile ) -> None :
11581152 annotation_guide = (
11591153 self ._db_project .annotation_guide
11601154 if hasattr (self ._db_project , "annotation_guide" )
@@ -1165,7 +1159,7 @@ def _write_annotation_guide(self, zip_object, target_dir=None):
11651159 annotation_guide ,
11661160 self .ANNOTATION_GUIDE_FILENAME ,
11671161 self .ASSETS_DIRNAME ,
1168- target_dir = target_dir ,
1162+ target_dir = "" ,
11691163 )
11701164
11711165 def _write_tasks (self , zip_object ):
@@ -1201,7 +1195,7 @@ def serialize_project():
12011195
12021196 zip_object .writestr (self .MANIFEST_FILENAME , data = JSONRenderer ().render (project ))
12031197
1204- def export_to (self , file : str , target_dir : str | None = None ) :
1198+ def export_to (self , file : str ) -> None :
12051199 with ZipFile (file , "w" ) as output_file :
12061200 self ._write_annotation_guide (output_file )
12071201 self ._write_manifest (output_file )
0 commit comments