Skip to content

Commit

Permalink
Annofab v0.144.0対応 (#449)
Browse files Browse the repository at this point in the history
* requests InvalidJsonErrorはリトライしないようにした

* poetry update

* update swagger

* get_instruction_image_url_for_put, create_temp_pathの修正

* version up

* update swagger

* update api,model

* 修正

* コメント

* 修正

* format

* update wrapper
  • Loading branch information
yuji38kwmt committed May 11, 2022
1 parent 552e1e2 commit 687a72b
Show file tree
Hide file tree
Showing 14 changed files with 1,055 additions and 933 deletions.
2 changes: 1 addition & 1 deletion annofabapi/__version__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.55.3"
__version__ = "0.56.0"
102 changes: 48 additions & 54 deletions annofabapi/dataclass/annotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,53 +32,49 @@
@dataclass
class Point(DataClassJsonMixin):
"""
座標
点の座標値
"""

x: int
""""""
"""X座標の値[ピクセル]"""

y: int
""""""
"""Y座標の値[ピクセル]"""


@dataclass
class FullAnnotationDataClassification(DataClassJsonMixin):
""" """

type: str
"""Classification"""
"""`Classification` """


@dataclass
class FullAnnotationDataSegmentation(DataClassJsonMixin):
"""
塗っていないところは rgba(0,0,0,0)、塗ったところは rgba(255,255,255,1) の PNGデータをBase64エンコードしたもの。
"""
""" """

data_uri: str
""""""
"""塗りつぶし画像のパス"""

type: str
"""Segmentation"""
"""`Segmentation` """


@dataclass
class FullAnnotationDataSegmentationV2(DataClassJsonMixin):
""" """

data_uri: str
""""""
"""塗りつぶし画像のパス"""

type: str
"""SegmentationV2"""
"""`SegmentationV2` """


@dataclass
class FullAnnotationDataBoundingBox(DataClassJsonMixin):
"""
annotation_type が bounding_boxの場合に、[左上頂点座標, 右下頂点座標]を {\"x\":int, \"y\":int} の形式で記述したもの。
"""
""" """

left_top: Point
""""""
Expand All @@ -87,49 +83,43 @@ class FullAnnotationDataBoundingBox(DataClassJsonMixin):
""""""

type: str
"""BoundingBox"""
"""`BoundingBox` """


@dataclass
class FullAnnotationDataPoints(DataClassJsonMixin):
"""
頂点座標 {\"x\":int, \"y\":int} の配列。 * annotation_type が polygon/polyline の場合: ポリゴン/ポリラインを構成する頂点の配列。
"""
""" """

points: List[Point]
""""""
"""頂点の座標値"""

type: str
"""Points"""
"""`Points` """


@dataclass
class FullAnnotationDataSinglePoint(DataClassJsonMixin):
"""
annotation_type が pointの場合。
"""
""" """

point: Point
""""""

type: str
"""SinglePoint"""
"""`SinglePoint` """


@dataclass
class FullAnnotationDataRange(DataClassJsonMixin):
"""
annotation_type が rangeの場合に、[開始時間, 終了時間]を {\"begin\":number, \"end\":number} の形式で記述したもの。開始時間・終了時間の単位は秒で、精度はミリ秒まで。
"""
""" """

begin: float
"""開始時間(ミリ秒)。小数点以下はミリ秒以下を表します。"""
"""開始時間(ミリ秒)"""

end: float
"""終了時間(ミリ秒)。小数点以下はミリ秒以下を表します。"""
"""終了時間(ミリ秒)"""

type: str
"""Range"""
"""`Range` """


@dataclass
Expand All @@ -154,18 +144,20 @@ class AdditionalData(DataClassJsonMixin):

@dataclass
class FullAnnotationAdditionalData(DataClassJsonMixin):
""" """
"""
属性情報
"""

additional_data_definition_id: Optional[str]
additional_data_definition_id: str
"""属性ID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

additional_data_definition_name: Optional[InternationalizationMessage]
additional_data_definition_name: InternationalizationMessage
""""""

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

value: Optional[AdditionalDataValue]
value: AdditionalDataValue
""""""


Expand All @@ -174,7 +166,7 @@ class FullAnnotationDetail(DataClassJsonMixin):
""" """

annotation_id: str
"""アノテーションID。[値の制約についてはこちら。](#section/API-Convention/APIID)<br> annotation_type が classification の場合は label_id と同じ値が格納されます。 """
"""アノテーションID。[値の制約についてはこちら。](#section/API-Convention/APIID) `annotation_type`が`classification`の場合は label_id と同じ値が格納されます。 """

user_id: str
"""ユーザーID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
Expand All @@ -195,7 +187,7 @@ class FullAnnotationDetail(DataClassJsonMixin):
""""""

additional_data_list: List[FullAnnotationAdditionalData]
""""""
"""属性情報。 """


@dataclass
Expand All @@ -212,22 +204,22 @@ class FullAnnotation(DataClassJsonMixin):
""""""

task_phase_stage: int
""""""
"""タスクのフェーズのステージ番号"""

task_status: TaskStatus
""""""

input_data_id: str
"""入力データID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

input_data_name: Optional[str]
""""""
input_data_name: str
"""入力データ名"""

details: List[FullAnnotationDetail]
""""""
"""矩形、ポリゴン、全体アノテーションなど個々のアノテーションの配列"""

updated_datetime: Optional[str]
""""""
"""更新日時。アノテーションが一つもない場合(教師付作業が未着手のときなど)は、未指定。"""

annotation_format_version: str
"""アノテーションフォーマットのバージョンです。 アノテーションフォーマットとは、プロジェクト個別のアノテーション仕様ではなく、Annofabのアノテーション構造のことです。 したがって、アノテーション仕様を更新しても、このバージョンは変化しません。 バージョンの読み方と更新ルールは、業界慣習の[Semantic Versioning](https://semver.org/)にもとづきます。 JSONに出力されるアノテーションフォーマットのバージョンは、アノテーションZIPが作成される時点のものが使われます。 すなわち、`1.0.0`の時点のタスクで作成したアノテーションであっても、フォーマットが `1.0.1` に上がった次のZIP作成時では `1.0.1` となります。 バージョンを固定してZIPを残しておきたい場合は、プロジェクトが完了した時点でZIPをダウンロードして保管しておくか、またはプロジェクトを「停止中」にします。 """
Expand Down Expand Up @@ -267,7 +259,7 @@ class SimpleAnnotation(DataClassJsonMixin):
""""""

task_phase_stage: int
""""""
"""タスクのフェーズのステージ番号"""

task_status: TaskStatus
""""""
Expand All @@ -287,10 +279,12 @@ class SimpleAnnotation(DataClassJsonMixin):

@dataclass
class SingleAnnotationDetail(DataClassJsonMixin):
""" """
"""
アノテーション情報
"""

annotation_id: str
"""アノテーションID。[値の制約についてはこちら。](#section/API-Convention/APIID)<br> annotation_type が classification の場合は label_id と同じ値が格納されます。 """
"""アノテーションID。[値の制約についてはこちら。](#section/API-Convention/APIID) `annotation_type`が`classification`の場合は label_id と同じ値が格納されます。 """

account_id: str
"""アカウントID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
Expand All @@ -311,13 +305,13 @@ class SingleAnnotationDetail(DataClassJsonMixin):
"""data_holding_typeがouterの場合のみ存在し、データへの一時URLが格納される"""

additional_data_list: List[AdditionalData]
""""""
"""属性情報。 アノテーション属性の種類(`additional_data_definition`の`type`)によって、属性値を格納するプロパティは変わります。 | 属性の種類 | `additional_data_definition`の`type` | 属性値を格納するプロパティ | |------------|-------------------------|----------------------| | ON/OFF | flag | flag | | 整数 | integer | integer | | 自由記述(1行)| text | comment | | 自由記述(複数行)| comment | comment | | トラッキングID | tracking | comment | | アノテーションリンク | link | comment | | 排他選択(ラジオボタン) |choice | choice | | 排他選択(ドロップダウン) | select | choice | """

created_datetime: str
""""""
"""作成日時"""

updated_datetime: str
""""""
"""更新日時"""


@dataclass
Expand All @@ -337,15 +331,15 @@ class SingleAnnotation(DataClassJsonMixin):
""""""

updated_datetime: str
""""""
"""更新日時"""


@dataclass
class AnnotationDetail(DataClassJsonMixin):
""" """

annotation_id: str
"""アノテーションID。[値の制約についてはこちら。](#section/API-Convention/APIID)<br> annotation_type が classification の場合は label_id と同じ値が格納されます。 """
"""アノテーションID。[値の制約についてはこちら。](#section/API-Convention/APIID) `annotation_type`が`classification`の場合は label_id と同じ値が格納されます。 """

account_id: str
"""アカウントID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
Expand All @@ -372,13 +366,13 @@ class AnnotationDetail(DataClassJsonMixin):
"""外部ファイルに保存されたアノテーションの認証済み一時URL。`data_holding_type`が`inner`の場合、または[putAnnotation](#operation/putAnnotation) APIのリクエストボディに渡す場合は未指定です。"""

additional_data_list: List[AdditionalData]
"""各要素は、 [アノテーション仕様](#operation/getAnnotationSpecs)で定義された属性(`additional_data_definitions`内)のいずれかの要素と対応づけます。 各要素は、どの属性なのかを表す`additional_data_definition_id`と値が必要です。値は、属性の種類に対応するキーに格納します(下表)<table> <tr><th>アノテーション属性の種類<br>(<code>additional_data_definition</code>の<code>type</code>)</th><th>属性の値を格納するキー</th><th>データ型</th></tr> <tr><td><code>text</code>, <code>comment</code> または <code>tracking</code></td><td><code>comment</code></td><td>string</td></tr> <tr><td><code>flag<c/ode></td><td><code>flag</code></td><td>boolean</td></tr> <tr><td><code>integer</code></td><td><code>integer</code></td><td>integer</td></tr> <tr><td><code>choice</code> または <code>select</code></td><td><code>choice</code></td><td>string(選択肢ID)</td></tr> <tr><td><code>link</code></td><td><code>comment</code></td><td>string(アノテーションID)</td></tr> </table> """
"""属性情報。 アノテーション属性の種類(`additional_data_definition`の`type`)によって、属性値を格納するプロパティは変わります| 属性の種類 | `additional_data_definition`の`type` | 属性値を格納するプロパティ | |------------|-------------------------|----------------------| | ON/OFF | flag | flag | | 整数 | integer | integer | | 自由記述(1行)| text | comment | | 自由記述(複数行)| comment | comment | | トラッキングID | tracking | comment | | アノテーションリンク | link | comment | | 排他選択(ラジオボタン) |choice | choice | | 排他選択(ドロップダウン) | select | choice | """

created_datetime: Optional[str]
""""""
"""作成日時"""

updated_datetime: Optional[str]
""""""
"""更新日時"""


@dataclass
Expand All @@ -398,4 +392,4 @@ class Annotation(DataClassJsonMixin):
"""矩形、ポリゴン、全体アノテーションなど個々のアノテーションの配列。"""

updated_datetime: Optional[str]
"""新規作成時は未指定、更新時は必須(更新前の日時) """
"""更新日時"""
34 changes: 20 additions & 14 deletions annofabapi/dataclass/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
class Resolution(DataClassJsonMixin):
""" """

width: float
""""""
width: int
"""画像の幅[ピクセル]"""

height: float
""""""
height: int
"""画像の高さ[ピクセル]"""


@dataclass
Expand All @@ -41,29 +41,35 @@ class InputData(DataClassJsonMixin):
project_id: str
"""プロジェクトID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

organization_id: str
"""組織ID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

input_data_set_id: str
"""入力データセットID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

input_data_name: str
"""表示用の名前です。"""
"""入力データ名"""

input_data_path: str
"""入力データの実体が保存されたパスです。 s3スキーマまたはhttpsスキーマのみサポートしています。 """

url: Optional[str]
"""入力データを取得するためのhttpsスキーマのURLです。 このURLはセキュリティのために認証認可が必要となっており、URLだけでは入力データを参照できません。 このURLは内部用であり、常に変更になる可能性があります。そのため、アクセスは保証外となります。 また、このURLのレスポンスは最低1時間キャッシュされます。 キャッシュを無効にしたい場合は、クエリパラメータにアクセス毎にランダムなUUIDなどを付与してください。 設定の不備等でデータが取得できない場合、この属性は設定されません。 """
"""システム内部用のプロパティ"""

etag: Optional[str]
""""""
"""[HTTPレスポンスヘッダー ETag](https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/ETag)に相当する値です。 """

original_input_data_path: Optional[str]
"""AF外部のストレージから登録された場合、その外部ストレージ中のパス。 それ以外の場合は値なし """
"""システム内部用のプロパティ """

updated_datetime: str
""""""
"""更新日時"""

sign_required: Optional[bool]
"""データがSigned Cookieによるクロスオリジン配信に対応しているか否かです。 """
sign_required: bool
"""CloudFrontのSignedCookieを使ったプライベートストレージを利用するかどうか """

metadata: Optional[Dict[str, str]]
"""ユーザーが自由に登録できるkey-value型のメタデータです。主にカスタムエディタで使われることを想定しています。 """
metadata: Dict[str, str]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """

system_metadata: Optional[SystemMetadata]
system_metadata: SystemMetadata
""""""
14 changes: 7 additions & 7 deletions annofabapi/dataclass/project_member.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class ProjectMember(DataClassJsonMixin):
"""ユーザーID。[値の制約についてはこちら。](#section/API-Convention/APIID) """

username: str
""""""
"""ユーザー名"""

member_status: ProjectMemberStatus
""""""
Expand All @@ -43,14 +43,14 @@ class ProjectMember(DataClassJsonMixin):
biography: Optional[str]
"""人物紹介、略歴。 この属性は、Annofab外の所属先や肩書などを表すために用います。 Annofab上の「複数の組織」で活動する場合、本籍を示すのに便利です。 """

updated_datetime: Optional[str]
""""""
updated_datetime: str
"""更新日時"""

created_datetime: Optional[str]
""""""
created_datetime: str
"""作成日時"""

sampling_inspection_rate: Optional[int]
"""メンバー固有の抜取検査率(0-100のパーセント値)。"""
"""抜取検査率(パーセント)"""

sampling_acceptance_rate: Optional[int]
"""メンバー固有の抜取受入率(0-100のパーセント値)。"""
"""抜取受入率(パーセント)"""

0 comments on commit 687a72b

Please sign in to comment.