Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
186 changes: 93 additions & 93 deletions Pipfile.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion annofabapi/__version__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '0.23.2'
__version__ = '0.24.0'
124 changes: 113 additions & 11 deletions annofabapi/dataclass/annotation_specs.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

OneOfbooleanintegerstring = Union[bool, int, str]

AdditionalDataRestrictionCondition = Dict[str, Any]


@dataclass_json
@dataclass
Expand All @@ -40,7 +42,7 @@ class Keybind:

@dataclass_json
@dataclass
class LabelBoundingBoxMetadata:
class LabelV1BoundingBoxMetadata:
"""

"""
Expand Down Expand Up @@ -68,7 +70,7 @@ class LabelBoundingBoxMetadata:

@dataclass_json
@dataclass
class LabelSegmentationMetadata:
class LabelV1SegmentationMetadata:
"""

"""
Expand Down Expand Up @@ -167,7 +169,7 @@ class Color:

@dataclass_json
@dataclass
class AdditionalDataDefinitionChoices:
class AdditionalDataDefinitionV1Choices:
"""

"""
Expand All @@ -183,7 +185,7 @@ class AdditionalDataDefinitionChoices:

@dataclass_json
@dataclass
class AdditionalDataDefinition:
class AdditionalDataDefinitionV1:
"""

"""
Expand All @@ -205,7 +207,7 @@ class AdditionalDataDefinition:
type: Optional[AdditionalDataDefinitionType]
""""""

choices: Optional[List[AdditionalDataDefinitionChoices]]
choices: Optional[List[AdditionalDataDefinitionV1Choices]]
""""""

regex: Optional[str]
Expand All @@ -218,6 +220,34 @@ class AdditionalDataDefinition:
"""リンク属性において、入力を必須とするかどうか"""


@dataclass_json
@dataclass
class AdditionalDataDefinitionV2:
"""

"""
additional_data_definition_id: Optional[str]
""""""

read_only: Optional[bool]
""""""

name: Optional[InternationalizationMessage]
""""""

default: Optional[OneOfbooleanintegerstring]
"""属性の初期値です。 初期値を指定する場合、属性の種類に応じて次の値を指定します。初期値を設定しない場合には空文字を指定します。 * type が flag の場合: 真偽値(`true` or `false`) * type が integer の場合: 整数値 * type が text の場合: 文字列 * type が comment の場合: 文字列 * type が choice の場合: 選択肢(`choices`)の `choice_id` * type が select の場合: 選択肢(`choices`)の `choice_id` 属性の種類に対して有効でない初期値を設定した場合、その設定は無視されます。 なお、トラッキングとリンクには初期値を設定できません。 """

keybind: Optional[List[Keybind]]
""""""

type: Optional[AdditionalDataDefinitionType]
""""""

choices: Optional[List[AdditionalDataDefinitionV1Choices]]
""""""


@dataclass_json
@dataclass
class AnnotationEditorFeature:
Expand Down Expand Up @@ -245,7 +275,7 @@ class AnnotationEditorFeature:

@dataclass_json
@dataclass
class Label:
class LabelV1:
"""

"""
Expand All @@ -261,13 +291,13 @@ class Label:
annotation_type: Optional[AnnotationType]
""""""

bounding_box_metadata: Optional[LabelBoundingBoxMetadata]
bounding_box_metadata: Optional[LabelV1BoundingBoxMetadata]
""""""

segmentation_metadata: Optional[LabelSegmentationMetadata]
segmentation_metadata: Optional[LabelV1SegmentationMetadata]
""""""

additional_data_definitions: Optional[List[AdditionalDataDefinition]]
additional_data_definitions: Optional[List[AdditionalDataDefinitionV1]]
""""""

color: Optional[Color]
Expand All @@ -282,14 +312,86 @@ class Label:

@dataclass_json
@dataclass
class AnnotationSpecs:
class LabelV2:
"""

"""
label_id: Optional[str]
""""""

label_name: Optional[InternationalizationMessage]
""""""

keybind: Optional[List[Keybind]]
""""""

annotation_type: Optional[AnnotationType]
""""""

bounding_box_metadata: Optional[LabelV1BoundingBoxMetadata]
""""""

segmentation_metadata: Optional[LabelV1SegmentationMetadata]
""""""

additional_data_definitions: Optional[List[str]]
""""""

color: Optional[Color]
""""""

annotation_editor_feature: Optional[AnnotationEditorFeature]
""""""

allow_out_of_image_bounds: Optional[bool]
""""""


@dataclass_json
@dataclass
class AdditionalDataRestriction:
"""

"""
additional_data_definition_id: Optional[str]
""""""

condition: Optional[AdditionalDataRestrictionCondition]
""""""


@dataclass_json
@dataclass
class AnnotationSpecsV1:
"""

"""
project_id: Optional[str]
"""プロジェクトID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

labels: Optional[List[LabelV1]]
""""""

inspection_phrases: Optional[List[InspectionPhrase]]
""""""


@dataclass_json
@dataclass
class AnnotationSpecsV2:
"""

"""
project_id: Optional[str]
"""プロジェクトID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

labels: Optional[List[Label]]
labels: Optional[List[LabelV2]]
""""""

additionals: Optional[List[AdditionalDataDefinitionV2]]
""""""

restrictions: Optional[List[AdditionalDataRestriction]]
""""""

inspection_phrases: Optional[List[InspectionPhrase]]
Expand Down
5 changes: 4 additions & 1 deletion annofabapi/dataclass/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

from dataclasses_json import dataclass_json

from annofabapi.models import AssigneeRuleOfResubmittedTask, InputDataType, ProjectStatus
from annofabapi.models import AssigneeRuleOfResubmittedTask, InputDataType, ProjectStatus, TaskAssignmentType


@dataclass_json
Expand All @@ -39,6 +39,9 @@ class ProjectConfiguration:
assignee_rule_of_resubmitted_task: Optional[AssigneeRuleOfResubmittedTask]
""""""

task_assignment_type: Optional[TaskAssignmentType]
""""""

max_tasks_per_member: Optional[int]
"""保留中のタスクを除き、1人(オーナー以外)に割り当てられるタスク数上限。未指定の場合は10件として扱う。"""

Expand Down
66 changes: 34 additions & 32 deletions annofabapi/generated_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ def batch_update_annotations(self, project_id: str, request_body: Optional[Any]
authorizations: ProjectAccepter


複数のアノテーションを一括更新します。 リクエストボディは、1個以上の「操作」オブジェクトを含むJSON配列になります。 操作オブジェクトには、「更新」と「削除」の2通りがあり、それぞれJSONオブジェクト構造が異なります。 これら操作オブジェクトを複数含めることで、1リクエストで複数の更新や削除ができます。 **現時点で、このAPIは複数のアノテーションを修正するためのもので、新しいアノテーションを作成することはできません**。 新しいアノテーションを更新や削除の対象に指定した場合、無視されます。 既に作成済みのアノテーションのうち、リクエストボディの配列に含まれないアノテーションは更新されません。 更新対象のアノテーションのうち、属性配列に含まれない属性は更新されません。 更新対象のアノテーションのラベルを変更する場合、変更後のラベルに含まれない属性は削除されます。 複数の操作のうち、1つでも失敗するとAPIのレスポンス全体としては失敗になります。 成功した部分までは反映されます。 受入が完了しているタスクのアノテーション更新を含む場合、オーナー以上の権限が必要になります。
複数のアノテーションを一括更新します。 リクエストボディは、1個以上の「操作」オブジェクトを含むJSON配列になります。 操作オブジェクトには、「更新」と「削除」の2通りがあり、それぞれJSONオブジェクト構造が異なります。 これら操作オブジェクトを複数含めることで、1リクエストで複数の更新や削除ができます。 **現時点で、このAPIは複数のアノテーションを修正するためのもので、新しいアノテーションを作成することはできません**。 新しいアノテーションを更新や削除の対象に指定した場合、無視されます。 既に作成済みのアノテーションのうち、リクエストボディの配列に含まれないアノテーションは更新されません。 更新対象のアノテーションのうち、属性配列に含まれない属性は更新されません。 更新対象のアノテーションのラベルを変更する場合、変更後のラベルに含まれない属性は削除されます。 また、画像全体アノテーションのラベルは変更することができません。 複数の操作のうち、1つでも失敗するとAPIのレスポンス全体としては失敗になります。 成功した部分までは反映されます。 受入が完了しているタスクのアノテーション更新を含む場合、オーナー以上の権限が必要になります。

Args:
project_id (str): プロジェクトID (required)
Expand Down Expand Up @@ -389,34 +389,6 @@ def get_archive_full_with_pro_id(self, project_id: str, **kwargs) -> Tuple[Any,
keyword_params: Dict[str, Any] = {}
return self._request_wrapper(http_method, url_path, **keyword_params)

def get_outer_with_pro_id_tas_id_inp_dat_id_ann_id(self, project_id: str, task_id: str, input_data_id: str,
annotation_id: str, **kwargs) -> Tuple[Any, requests.Response]:
"""【エディタ用】外部ファイル形式のアノテーション取得

.. deprecated:: X

authorizations: AllProjectMember


このAPIが返すアノテーションは、エディタ用です。 機械学習などで利用する成果物としてのアノテーションを取得するには、以下をご利用いただけます。 * [getAnnotation](#operation/getAnnotation): 特定のタスク - 入力データのアノテーション取得 * [getAnnotationArchive](#operation/getAnnotationArchive): プロジェクト全体のアノテーション(ZIP)

Args:
project_id (str): プロジェクトID (required)
task_id (str): タスクID (required)
input_data_id (str): 入力データID (required)
annotation_id (str): アノテーションID (required)

Returns:
Tuple[, requests.Response]


"""
warnings.warn("deprecated", DeprecationWarning)
url_path = f'/projects/{project_id}/tasks/{task_id}/inputs/{input_data_id}/annotation/{annotation_id}/outer'
http_method = 'GET'
keyword_params: Dict[str, Any] = {}
return self._request_wrapper(http_method, url_path, **keyword_params)

def post_annotation_archive_update(self, project_id: str, **kwargs) -> Tuple[Any, requests.Response]:
"""アノテーションZIP更新開始

Expand Down Expand Up @@ -486,9 +458,10 @@ def get_annotation_specs(self, project_id: str, query_params: Optional[Dict[str,
project_id (str): プロジェクトID (required)
query_params (Dict[str, Any]): Query Parameters
history_id (str): 過去のアノテーション仕様を取得する場合、[アノテーション仕様履歴取得](#operation/getAnnotationSpecsHistories)APIで取得した `history_id` の値を指定します。 未指定時は最新のアノテーション仕様を取得します。
v (str): 取得するアノテーション仕様のフォーマットバージョンを指定します。

Returns:
Tuple[AnnotationSpecs, requests.Response]
Tuple[OneOfAnnotationSpecsV1AnnotationSpecsV2, requests.Response]


"""
Expand Down Expand Up @@ -532,10 +505,10 @@ def put_annotation_specs(self, project_id: str, request_body: Optional[Any] = No
Args:
project_id (str): プロジェクトID (required)
request_body (Any): Request Body
annotation_specs_request (AnnotationSpecsRequest): (required)
unknown_base_type (UNKNOWN_BASE_TYPE): (required)

Returns:
Tuple[AnnotationSpecs, requests.Response]
Tuple[AnnotationSpecsV2, requests.Response]


"""
Expand Down Expand Up @@ -2066,6 +2039,33 @@ def put_supplementary_data(self, project_id: str, input_data_id: str, supplement
# NOTE: This method is auto generated by OpenAPI Generator
#########################################

def assign_tasks(self, project_id: str, request_body: Optional[Any] = None,
**kwargs) -> Tuple[Any, requests.Response]:
"""タスク割当


authorizations: AllProjectMember


メンバーもしくは自身にタスクを割当します。 個々のタスクの情報を取得する場合は、[タスク取得](#operation/getTask)を使います。

Args:
project_id (str): プロジェクトID (required)
request_body (Any): Request Body
task_assign_request (TaskAssignRequest): (required)

Returns:
Tuple[List[Task], requests.Response]


"""
url_path = f'/projects/{project_id}/assign-tasks'
http_method = 'POST'
keyword_params: Dict[str, Any] = {
'request_body': request_body,
}
return self._request_wrapper(http_method, url_path, **keyword_params)

def batch_update_tasks(self, project_id: str, request_body: Optional[Any] = None,
**kwargs) -> Tuple[Any, requests.Response]:
"""タスク一括更新
Expand Down Expand Up @@ -2314,6 +2314,7 @@ def start_task(self, project_id: str, request_body: Optional[Any] = None,
**kwargs) -> Tuple[Any, requests.Response]:
"""タスク割当

.. deprecated:: X

authorizations: AllProjectMember

Expand All @@ -2330,6 +2331,7 @@ def start_task(self, project_id: str, request_body: Optional[Any] = None,


"""
warnings.warn("deprecated", DeprecationWarning)
url_path = f'/projects/{project_id}/start-task'
http_method = 'POST'
keyword_params: Dict[str, Any] = {
Expand Down
3 changes: 2 additions & 1 deletion annofabapi/generated_api2.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,10 @@ def get_annotation_specs_v2(self, project_id: str, query_params: Optional[Dict[s
query_params (Dict[str, Any]): Query Parameters
cache (str): CACHE TIMESTAMP
history_id (str): 過去のアノテーション仕様を取得する場合、[アノテーション仕様履歴取得](#operation/getAnnotationSpecsHistories)APIで取得した `history_id` の値を指定します。 未指定時は最新のアノテーション仕様を取得します。
v (str): 取得するアノテーション仕様のフォーマットバージョンを指定します。

Returns:
Tuple[AnnotationSpecs, requests.Response]
Tuple[OneOfAnnotationSpecsV1AnnotationSpecsV2, requests.Response]


"""
Expand Down
Loading