@@ -298,7 +298,7 @@ def copy_annotation(self, src: TaskFrameKey, dest: TaskFrameKey, account_id: str
298
298
src: コピー元のTaskFrame情報
299
299
dest: コピー先のTaskFrame情報
300
300
account_id: アノテーションを登録するユーザのアカウントID
301
- annotation_specs_relation: アノテーション仕様間の紐付け情報。
301
+ annotation_specs_relation: アノテーション仕様間の紐付け情報。``get_annotation_specs_relation`` メソッドで紐付け情報を取得できる。
302
302
Noneの場合、コピー元のアノテーション仕様のID情報(ラベルID、属性ID、選択肢ID)を変換せずに、アノテーションをコピーします。
303
303
304
304
Returns:
@@ -382,8 +382,12 @@ def __get_dest_additional(self, src_additional: Dict[str, Any], dest_additionals
382
382
dest_label_contains_dest_additional = True
383
383
for src_label in src_labels :
384
384
if src_additional ["additional_data_definition_id" ] in src_label ["additional_data_definitions" ]:
385
- dest_label_id = src_label ["label_id" ]
386
- dest_label = _first_true (dest_labels , pred = lambda e : e ["label_id" ] == dest_label_id )
385
+ dest_label_id = dict_label_id .get (src_label ["label_id" ])
386
+ if dest_label_id is None :
387
+ dest_label_contains_dest_additional = False
388
+ break
389
+
390
+ dest_label = _first_true (dest_labels , pred = lambda e , f = dest_label_id : e ["label_id" ] == f )
387
391
if dest_label is None :
388
392
dest_label_contains_dest_additional = False
389
393
break
@@ -399,9 +403,10 @@ def __get_dest_additional(self, src_additional: Dict[str, Any], dest_additionals
399
403
400
404
def get_annotation_specs_relation (self , src_project_id : str , dest_project_id : str ) -> AnnotationSpecsRelation :
401
405
"""
402
- プロジェクト間のアノテーション仕様の紐付け情報を取得する。ラベル、属性、選択肢の英語名で紐付ける。
406
+ プロジェクト間のアノテーション仕様の紐付け情報を取得する。
407
+ ラベル、属性、選択肢の英語名で紐付ける。
408
+ ただし、属性は、参照されるラベルが一致していることも判定する。
403
409
紐付け先がない場合は無視する。
404
- ``copy_annotation`` メソッドで利用する。
405
410
406
411
Args:
407
412
src_project_id: 紐付け元のプロジェクトID
0 commit comments