Skip to content

Commit 2109da4

Browse files
authored
Merge pull request #153 from kurusugawa-computer/annofab-v0.80.1
updage swagger and python file
2 parents 875a6d7 + 4466b41 commit 2109da4

File tree

10 files changed

+280
-83
lines changed

10 files changed

+280
-83
lines changed

annofabapi/__version__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.29.5'
1+
__version__ = '0.30.0'

annofabapi/dataclass/instruction.py

+15-15
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ class Instruction:
2222
2323
"""
2424
html: Optional[str]
25-
""""""
25+
"""作業ガイドのHTML"""
2626

2727
last_updated_datetime: Optional[str]
28-
"""* `GetInstruction` の場合: 最後に作業ガイドを更新した日時。 * `PutInstruction` の場合: 最後に作業ガイドを更新した日時を指定する。まだ一度も保存した事がない場合は指定しない。 """
28+
"""* [getInstruction](#operation/getInstruction) APIのレスポンスの場合: 最後に作業ガイドを更新した日時。 * [putInstruction](#operation/putInstruction) APIのリクエストボディの場合: 最後に作業ガイドを更新した日時を指定する。まだ一度も保存した事がない場合は指定しない。 """
2929

3030

3131
@dataclass_json
@@ -34,14 +34,14 @@ class InstructionHistory:
3434
"""
3535
3636
"""
37-
history_id: Optional[str]
38-
""""""
37+
history_id: str
38+
"""作業ガイドの履歴ID"""
3939

40-
account_id: Optional[str]
41-
""""""
40+
account_id: str
41+
"""作業ガイドを更新したユーザのアカウントID"""
4242

43-
updated_datetime: Optional[str]
44-
""""""
43+
updated_datetime: str
44+
"""作業ガイドの最終更新日時"""
4545

4646

4747
@dataclass_json
@@ -50,14 +50,14 @@ class InstructionImage:
5050
"""
5151
5252
"""
53-
image_id: Optional[str]
54-
""""""
53+
image_id: str
54+
"""作業ガイド画像ID"""
5555

56-
path: Optional[str]
57-
""""""
56+
path: str
57+
"""作業ガイド画像の実体が保存されたパスです。 """
5858

59-
url: Optional[str]
60-
""""""
59+
url: str
60+
"""作業ガイド画像を取得するための内部用URLです。"""
6161

62-
etag: Optional[str]
62+
etag: str
6363
""""""

annofabapi/generated_api.py

+4-4
Large diffs are not rendered by default.

annofabapi/generated_api2.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def get_project_cache_v2(self, project_id: str, **kwargs) -> Tuple[Any, requests
163163
project_id (str): プロジェクトID (required)
164164
165165
Returns:
166-
Tuple[CacheRecord, requests.Response]
166+
Tuple[ProjectCacheRecord, requests.Response]
167167
168168
169169
"""

annofabapi/models.py

+48-33
Original file line numberDiff line numberDiff line change
@@ -915,31 +915,6 @@ class AssigneeRuleOfResubmittedTask(Enum):
915915
* type: str
916916
`Delete` [詳しくはこちら](#section/API-Convention/API-_type)
917917
918-
"""
919-
920-
CacheRecord = Dict[str, Any]
921-
"""
922-
923-
924-
Kyes of Dict
925-
926-
* input: str
927-
928-
* members: str
929-
930-
* project: str
931-
932-
* instruction: str
933-
934-
* specs: str
935-
936-
* statistics: str
937-
938-
* organization: str
939-
940-
* supplementary: str
941-
942-
943918
"""
944919

945920
ChangePasswordRequest = Dict[str, Any]
@@ -2086,9 +2061,9 @@ class InspectionSummary(Enum):
20862061
Kyes of Dict
20872062
20882063
* html: str
2089-
2064+
作業ガイドのHTML
20902065
* last_updated_datetime: str
2091-
* `GetInstruction` の場合: 最後に作業ガイドを更新した日時。 * `PutInstruction` の場合: 最後に作業ガイドを更新した日時を指定する。まだ一度も保存した事がない場合は指定しない。
2066+
* [getInstruction](#operation/getInstruction) APIのレスポンスの場合: 最後に作業ガイドを更新した日時。 * [putInstruction](#operation/putInstruction) APIのリクエストボディの場合: 最後に作業ガイドを更新した日時を指定する。まだ一度も保存した事がない場合は指定しない。
20922067
20932068
"""
20942069

@@ -2099,11 +2074,11 @@ class InspectionSummary(Enum):
20992074
Kyes of Dict
21002075
21012076
* history_id: str
2102-
2077+
作業ガイドの履歴ID
21032078
* account_id: str
2104-
2079+
作業ガイドを更新したユーザのアカウントID
21052080
* updated_datetime: str
2106-
2081+
作業ガイドの最終更新日時
21072082
21082083
"""
21092084

@@ -2114,14 +2089,27 @@ class InspectionSummary(Enum):
21142089
Kyes of Dict
21152090
21162091
* image_id: str
2117-
2092+
作業ガイド画像ID
21182093
* path: str
2119-
2094+
作業ガイド画像の実体が保存されたパスです。
21202095
* url: str
2121-
2096+
作業ガイド画像を取得するための内部用URLです。
21222097
* etag: str
21232098
21242099
2100+
"""
2101+
2102+
InstructionImagePath = Dict[str, Any]
2103+
"""
2104+
2105+
2106+
Kyes of Dict
2107+
2108+
* url: str
2109+
ファイルアップロード用の一時URLです。このURLにファイルをアップロードします。
2110+
* path: str
2111+
作業ガイド画像のURL
2112+
21252113
"""
21262114

21272115
InternationalizationMessage = Dict[str, Any]
@@ -2796,6 +2784,31 @@ class PricePlan(Enum):
27962784
* worktime: str
27972785
作業時間(ISO 8601 duration)
27982786
2787+
"""
2788+
2789+
ProjectCacheRecord = Dict[str, Any]
2790+
"""
2791+
2792+
2793+
Kyes of Dict
2794+
2795+
* input: str
2796+
2797+
* members: str
2798+
2799+
* project: str
2800+
2801+
* instruction: str
2802+
2803+
* specs: str
2804+
2805+
* statistics: str
2806+
2807+
* organization: str
2808+
2809+
* supplementary: str
2810+
2811+
27992812
"""
28002813

28012814
ProjectConfiguration = Dict[str, Any]
@@ -3547,6 +3560,8 @@ class TaskAssignmentType(Enum):
35473560
タスクの最終更新日時
35483561
* account_id: str
35493562
変更後の担当者のアカウントID。担当者を未割り当てにする場合は未指定。
3563+
* force: bool
3564+
タスクの強制操作を行う場合に立てるフラグ。現在、強制操作は強制差戻しのみがサポートされています。
35503565
35513566
"""
35523567

annofabapi/wrapper.py

+43-11
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class AnnotationSpecsRelation:
4040
choice_id: Dict[ChoiceKey, ChoiceKey]
4141

4242

43-
def __first_true(iterable, default=None, pred=None):
43+
def _first_true(iterable, default=None, pred=None):
4444
return next(filter(pred, iterable), default)
4545

4646

@@ -298,7 +298,8 @@ def copy_annotation(self, src: TaskFrameKey, dest: TaskFrameKey, account_id: str
298298
src: コピー元のTaskFrame情報
299299
dest: コピー先のTaskFrame情報
300300
account_id: アノテーションを登録するユーザのアカウントID
301-
annotation_specs_relation: アノテーション仕様間の紐付け情報
301+
annotation_specs_relation: アノテーション仕様間の紐付け情報。``get_annotation_specs_relation`` メソッドで紐付け情報を取得できる。
302+
Noneの場合、コピー元のアノテーション仕様のID情報(ラベルID、属性ID、選択肢ID)を変換せずに、アノテーションをコピーします。
302303
303304
Returns:
304305
アノテーションのコピー実施したかどうか
@@ -370,11 +371,42 @@ def __get_choice_name_en(choice: Dict[str, Any]) -> str:
370371
messages = choice["name"]["messages"]
371372
return [e["message"] for e in messages if e["lang"] == "en-US"][0]
372373

374+
def __get_dest_additional(self, src_additional: Dict[str, Any], dest_additionals: List[Dict[str, Any]],
375+
src_labels: List[Dict[str, Any]], dest_labels: List[Dict[str, Any]],
376+
dict_label_id: Dict[str, str]) -> Optional[Dict[str, Any]]:
377+
src_additional_name_en = self.__get_additional_data_definition_name_en(src_additional)
378+
for dest_additional in dest_additionals:
379+
if src_additional_name_en != self.__get_additional_data_definition_name_en(dest_additional):
380+
continue
381+
382+
dest_label_contains_dest_additional = True
383+
for src_label in src_labels:
384+
if src_additional["additional_data_definition_id"] in src_label["additional_data_definitions"]:
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)
391+
if dest_label is None:
392+
dest_label_contains_dest_additional = False
393+
break
394+
if dest_additional["additional_data_definition_id"] not in dest_label[
395+
"additional_data_definitions"]:
396+
dest_label_contains_dest_additional = False
397+
break
398+
399+
if dest_label_contains_dest_additional:
400+
return dest_additional
401+
402+
return None
403+
373404
def get_annotation_specs_relation(self, src_project_id: str, dest_project_id: str) -> AnnotationSpecsRelation:
374405
"""
375-
プロジェクト間のアノテーション仕様の紐付け情報を取得する。ラベル、属性、選択肢の英語名で紐付ける。
406+
プロジェクト間のアノテーション仕様の紐付け情報を取得する。
407+
ラベル、属性、選択肢の英語名で紐付ける。
408+
ただし、属性は、参照されるラベルが一致していることも判定する。
376409
紐付け先がない場合は無視する。
377-
``copy_annotation`` メソッドで利用する。
378410
379411
Args:
380412
src_project_id: 紐付け元のプロジェクトID
@@ -392,17 +424,17 @@ def get_annotation_specs_relation(self, src_project_id: str, dest_project_id: st
392424
dict_label_id: Dict[str, str] = {}
393425
for src_label in src_annotation_specs["labels"]:
394426
src_label_name_en = self.__get_label_name_en(src_label)
395-
dest_label = __first_true(dest_labels, pred=lambda e, f=src_label_name_en: self.__get_label_name_en(e) == f)
427+
dest_label = _first_true(dest_labels, pred=lambda e, f=src_label_name_en: self.__get_label_name_en(e) == f)
396428
if dest_label is not None:
397429
dict_label_id[src_label["label_id"]] = dest_label["label_id"]
398430

399431
dict_additional_data_definition_id: Dict[str, str] = {}
400432
dict_choice_id: Dict[ChoiceKey, ChoiceKey] = {}
401433
for src_additional in src_annotation_specs["additionals"]:
402-
src_additional_name_en = self.__get_additional_data_definition_name_en(src_additional)
403-
dest_additional = __first_true(
404-
dest_additionals,
405-
pred=lambda e, f=src_additional_name_en: self.__get_additional_data_definition_name_en(e) == f)
434+
dest_additional = self.__get_dest_additional(src_additional=src_additional,
435+
dest_additionals=dest_additionals,
436+
src_labels=src_annotation_specs["labels"],
437+
dest_labels=dest_labels, dict_label_id=dict_label_id)
406438
if dest_additional is None:
407439
continue
408440

@@ -412,8 +444,8 @@ def get_annotation_specs_relation(self, src_project_id: str, dest_project_id: st
412444
dest_choices = dest_additional["choices"]
413445
for src_choice in src_additional["choices"]:
414446
src_choice_name_en = self.__get_choice_name_en(src_choice)
415-
dest_choice = __first_true(dest_choices,
416-
pred=lambda e, f=src_choice_name_en: self.__get_choice_name_en(e) == f)
447+
dest_choice = _first_true(dest_choices,
448+
pred=lambda e, f=src_choice_name_en: self.__get_choice_name_en(e) == f)
417449
if dest_choice is not None:
418450
dict_choice_id[ChoiceKey(src_additional["additional_data_definition_id"],
419451
src_choice["choice_id"])] = ChoiceKey(

generate/swagger/swagger-api-components.yaml

+45-3
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@
168168
schema:
169169
$ref: "#/components/schemas/ErrorRefreshTokenExpired"
170170
schemas:
171-
CacheRecord:
171+
ProjectCacheRecord:
172172
type: object
173173
properties:
174174
input:
@@ -2480,6 +2480,11 @@
24802480
allOf:
24812481
- $ref: "#/components/schemas/AccountId"
24822482
description: 変更後の担当者のアカウントID。担当者を未割り当てにする場合は未指定。
2483+
force:
2484+
type: boolean
2485+
default: false
2486+
description: |
2487+
タスクの強制操作を行う場合に立てるフラグ。現在、強制操作は強制差戻しのみがサポートされています。
24832488
TaskStart:
24842489
type: object
24852490
properties:
@@ -2912,6 +2917,22 @@
29122917
type: string
29132918
example: s3://<ANNOFAB-TEMPORARY-BUCKET-NAME>/<UUID>/<UUID>
29142919
description: アップロードしたファイルをAFの [入力データ](#tag/af-input) や [補助情報](#tag/af-supplementary) に登録するとき、この`path`を指定します。
2920+
InstructionImagePath:
2921+
type: object
2922+
required:
2923+
- url
2924+
- path
2925+
properties:
2926+
url:
2927+
type: string
2928+
format: uri
2929+
example: "https://s3.<REGION>.amazonaws.com/<ANNOFAB-TEMP-BUCKET>/<UUID>/<UUID>?param1=...&param2=..."
2930+
description: ファイルアップロード用の一時URLです。このURLにファイルをアップロードします。
2931+
path:
2932+
type: string
2933+
format: url
2934+
example: https://annofab.com/projects/{project_id}/instruction-images/{image_id}
2935+
description: 作業ガイド画像のURL
29152936
AnnotationQuery:
29162937
type: object
29172938
properties:
@@ -3805,32 +3826,53 @@
38053826
properties:
38063827
html:
38073828
type: string
3829+
description: 作業ガイドのHTML
3830+
example: "<p>test</p>"
38083831
last_updated_datetime:
38093832
type: string
38103833
format: date-time
38113834
description: |
3812-
* `GetInstruction` の場合: 最後に作業ガイドを更新した日時。
3813-
* `PutInstruction` の場合: 最後に作業ガイドを更新した日時を指定する。まだ一度も保存した事がない場合は指定しない。
3835+
* [getInstruction](#operation/getInstruction) APIのレスポンスの場合: 最後に作業ガイドを更新した日時。
3836+
* [putInstruction](#operation/putInstruction) APIのリクエストボディの場合: 最後に作業ガイドを更新した日時を指定する。まだ一度も保存した事がない場合は指定しない。
38143837
InstructionHistory:
38153838
type: object
3839+
required:
3840+
- history_id
3841+
- account_id
3842+
- updated_datetime
38163843
properties:
38173844
history_id:
38183845
type: string
3846+
description: 作業ガイドの履歴ID
38193847
account_id:
38203848
type: string
3849+
description: 作業ガイドを更新したユーザのアカウントID
38213850
updated_datetime:
38223851
type: string
38233852
format: date-time
3853+
description: 作業ガイドの最終更新日時
38243854
InstructionImage:
38253855
type: object
3856+
required:
3857+
- image_id
3858+
- path
3859+
- url
3860+
- etag
38263861
properties:
38273862
image_id:
38283863
type: string
3864+
description: 作業ガイド画像ID
38293865
path:
38303866
type: string
3867+
example: "s3://ANNOFAB-BUCKET/PATH/TO/INSTRUCTION_IMAGE"
3868+
description: |
3869+
作業ガイド画像の実体が保存されたパスです。
38313870
url:
38323871
type: string
38333872
format: uri
3873+
example: https://annofab.com/projects/{project_id}/instruction-images/{image_id}
3874+
description:
3875+
作業ガイド画像を取得するための内部用URLです。
38343876
etag:
38353877
type: string
38363878
ValidationError:

0 commit comments

Comments
 (0)