Source code for annofabapi.dataclass.annotation_specs
# flake8: noqa: W291
# pylint: disable=too-many-lines,trailing-whitespace
"""
annofabapiのmodelをDataClassで定義したクラス
Note:
このファイルはopenapi-generatorで自動生成される。詳細は generate/README.mdを参照.
oneOf, allOfなどは正しく表現できない可能性がある。
"""
import warnings # pylint: disable=unused-import
from dataclasses import dataclass
from typing import Any, Dict, List, NewType, Optional, Tuple, Union # pylint: disable=unused-import
from dataclasses_json import DataClassJsonMixin
from annofabapi.models import AdditionalDataDefinitionType, AnnotationTypeFieldMinWarnRule
AdditionalDataDefaultType = Union[bool, int, str]
AdditionalDataRestrictionCondition = Dict[str, Any]
AnnotationSpecsOption = Dict[str, Any]
AnnotationType = str
AnnotationTypeFieldValue = Dict[str, Any]
@dataclass
class Keybind(DataClassJsonMixin):
""" """
code: str
"""[KeyboardEvent.code](https://developer.mozilla.org/ja/docs/Web/API/KeyboardEvent/code)に相当する値です。 """
shift: bool
"""Shiftキーを押しているかどうか"""
ctrl: bool
"""Ctrlキーを押しているかどうか"""
alt: bool
"""Altキーを押しているかどうか"""
@dataclass
class InternationalizationMessageMessages(DataClassJsonMixin):
""" """
lang: str
"""言語コード。`en-US` (英語) または `ja-JP` (日本語) のみサポートしています。"""
message: str
"""lang で指定された言語でのメッセージ"""
@dataclass
class InternationalizationMessage(DataClassJsonMixin):
""" """
messages: List[InternationalizationMessageMessages]
"""言語コードとメッセージ(テキスト)のリスト。 * アノテーションエディタなどでは、Annofabの表示言語(各ユーザーが個人設定で選んだ言語)のメッセージが使われます * 以下の名前は、[Simple Annotation](#section/Simple-Annotation-ZIP) では `en-US` のメッセージが使われます * ラベル名 * 属性名 * 選択肢名 * いずれの場合でも、表示しようとした言語が `messages` に含まれない場合、 `default_lang` に指定した言語のメッセージが使われます """
default_lang: str
"""希望された言語のメッセージが存在しない場合に、フォールバック先として使われる言語コード"""
@dataclass
class InspectionPhrase(DataClassJsonMixin):
""" """
id: str
"""定型指摘ID"""
text: InternationalizationMessage
""""""
@dataclass
class AnnotationSpecsHistory(DataClassJsonMixin):
""" """
history_id: str
"""アノテーション仕様の履歴ID"""
project_id: str
"""プロジェクトID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
updated_datetime: str
"""更新日時"""
url: str
"""アノテーション仕様が格納されたJSONのURL。URLにアクセスするには認証認可が必要です。"""
account_id: Optional[str]
"""アカウントID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
comment: Optional[str]
"""変更内容のコメント"""
[docs]@dataclass
class Color(DataClassJsonMixin):
"""
RGBで表現される色情報
"""
red: int
""""""
green: int
""""""
blue: int
""""""
@dataclass
class AdditionalDataDefinitionV1Choices(DataClassJsonMixin):
""" """
choice_id: str
"""選択肢ID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
name: InternationalizationMessage
""""""
keybind: Optional[List[Keybind]]
"""ショートカットキー"""
@dataclass
class AdditionalDataDefinitionV1(DataClassJsonMixin):
""" """
additional_data_definition_id: str
"""属性ID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
read_only: Optional[bool]
"""読み込み専用"""
name: Optional[InternationalizationMessage]
""""""
default: Optional[AdditionalDataDefaultType]
""""""
keybind: Optional[List[Keybind]]
"""ショートカットキー"""
type: AdditionalDataDefinitionType
""""""
choices: Optional[List[AdditionalDataDefinitionV1Choices]]
"""ドロップダウンまたはラジオボタンの選択肢"""
regex: Optional[str]
"""属性の値が、指定した正規表現に一致している必要があります。"""
label_ids: Optional[List[str]]
"""リンク属性において、リンク先として指定可能なラベルID(空の場合制限なし)"""
required: Optional[bool]
"""リンク属性において、入力を必須とするかどうか"""
metadata: Optional[Dict[str, str]]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """
@dataclass
class AdditionalDataDefinitionV2(DataClassJsonMixin):
""" """
additional_data_definition_id: str
"""属性ID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
read_only: Optional[bool]
"""読み込み専用"""
name: InternationalizationMessage
""""""
default: Optional[AdditionalDataDefaultType]
""""""
keybind: Optional[List[Keybind]]
"""ショートカットキー"""
type: AdditionalDataDefinitionType
""""""
choices: Optional[List[AdditionalDataDefinitionV1Choices]]
"""ドロップダウンまたはラジオボタンの選択肢"""
metadata: Optional[Dict[str, str]]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """
[docs]@dataclass
class AnnotationEditorFeature(DataClassJsonMixin):
"""
塗りつぶしの作図機能に関する情報
"""
append: bool
"""塗りつぶしの「追記」機能が使えるか否か"""
erase: bool
"""塗りつぶしの「消しゴム」機能が使えるか否か"""
freehand: bool
"""塗りつぶしの「フリーハンド」機能が使えるか否か"""
rectangle_fill: bool
"""塗りつぶしの「矩形」機能が使えるか否か"""
polygon_fill: bool
"""塗りつぶしの「ポリゴン」機能が使えるか否か"""
fill_near: bool
"""「近似色塗りつぶし」機能を有効にするかどうか"""
[docs]@dataclass
class AnnotationTypeFieldValueMinimumSize(DataClassJsonMixin):
"""
アノテーションの最小サイズに関する設定
"""
type: str
""""""
min_warn_rule: AnnotationTypeFieldMinWarnRule
""""""
min_width: int
""""""
min_height: int
""""""
@dataclass
class AnnotationTypeFieldValueMinimumSize2dWithDefaultInsertPosition(DataClassJsonMixin):
""" """
type: str
""""""
min_warn_rule: AnnotationTypeFieldMinWarnRule
""""""
min_width: int
""""""
min_height: int
""""""
position_for_minimum_bounding_box_insertion: Optional[List[int]]
"""最小矩形の挿入位置を、要素が2の配列で指定します。 """
[docs]@dataclass
class AnnotationTypeFieldValueMarginOfErrorTolerance(DataClassJsonMixin):
"""
誤差許容範囲
"""
type: str
""""""
max_pixel: int
""""""
[docs]@dataclass
class AnnotationTypeFieldValueVertexCountMinMax(DataClassJsonMixin):
"""
頂点数の最大・最小
"""
type: str
""""""
min: int
""""""
max: int
""""""
[docs]@dataclass
class AnnotationTypeFieldValueMinimumArea2d(DataClassJsonMixin):
"""
最小の面積
"""
type: str
""""""
min_area: int
""""""
[docs]@dataclass
class AnnotationTypeFieldValueDisplayLineDirection(DataClassJsonMixin):
"""
線の向き表示/非表示の設定
"""
type: str
""""""
has_direction: bool
""""""
[docs]@dataclass
class AnnotationTypeFieldValueAnnotationEditorFeature(DataClassJsonMixin):
"""
作図ツール・作図モード
"""
type: str
""""""
append: bool
""""""
erase: bool
""""""
freehand: bool
""""""
rectangle_fill: bool
""""""
polygon_fill: bool
""""""
fill_near: bool
""""""
[docs]@dataclass
class AnnotationTypeFieldValueOneIntegerFieldValue(DataClassJsonMixin):
"""
数値をひとつだけ持つフィールド
"""
type: str
""""""
value: int
""""""
[docs]@dataclass
class AnnotationTypeFieldValueOneStringFieldValue(DataClassJsonMixin):
"""
文字列を一つだけ持つフィールド
"""
type: str
""""""
value: str
""""""
[docs]@dataclass
class AnnotationTypeFieldValueOneBooleanFieldValue(DataClassJsonMixin):
"""
真偽値をひとつだけ持つフィールド
"""
type: str
""""""
value: bool
""""""
[docs]@dataclass
class AnnotationTypeFieldValueEmptyFieldValue(DataClassJsonMixin):
"""
値を持たないフィールド。 アノテーション仕様上に定義が存在すること自体に意味がある場合のフィールド値に利用します。
"""
type: str
""""""
@dataclass
class LabelV1(DataClassJsonMixin):
""" """
label_id: str
"""ラベルID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
label_name: InternationalizationMessage
""""""
keybind: List[Keybind]
"""ショートカットキー"""
annotation_type: AnnotationType
""""""
bounding_box_metadata: Optional[BoundingBoxMetadata]
""""""
segmentation_metadata: Optional[SegmentationMetadata]
""""""
additional_data_definitions: List[AdditionalDataDefinitionV1]
"""属性"""
color: Color
""""""
annotation_editor_feature: AnnotationEditorFeature
""""""
metadata: Optional[Dict[str, str]]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """
@dataclass
class LabelV2(DataClassJsonMixin):
""" """
label_id: str
"""ラベルID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
label_name: InternationalizationMessage
""""""
keybind: List[Keybind]
"""ショートカットキー"""
annotation_type: AnnotationType
""""""
bounding_box_metadata: Optional[BoundingBoxMetadata]
""""""
segmentation_metadata: Optional[SegmentationMetadata]
""""""
additional_data_definitions: List[str]
"""ラベルに所属する属性のID"""
color: Color
""""""
annotation_editor_feature: AnnotationEditorFeature
""""""
metadata: Optional[Dict[str, str]]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """
@dataclass
class AdditionalDataRestriction(DataClassJsonMixin):
""" """
additional_data_definition_id: str
"""属性ID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
condition: AdditionalDataRestrictionCondition
""""""
@dataclass
class AnnotationSpecsV1(DataClassJsonMixin):
""" """
project_id: str
"""プロジェクトID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
labels: List[LabelV1]
"""ラベル"""
inspection_phrases: List[InspectionPhrase]
"""定型指摘"""
updated_datetime: Optional[str]
"""更新日時 """
option: Optional[AnnotationSpecsOption]
""""""
metadata: Dict[str, str]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """
@dataclass
class AnnotationSpecsV2(DataClassJsonMixin):
""" """
project_id: str
"""プロジェクトID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
labels: List[LabelV2]
"""ラベル"""
additionals: List[AdditionalDataDefinitionV2]
"""属性"""
restrictions: List[AdditionalDataRestriction]
"""属性の制約"""
inspection_phrases: List[InspectionPhrase]
"""定型指摘"""
format_version: str
"""アノテーション仕様のフォーマットのバージョン"""
updated_datetime: Optional[str]
"""更新日時 """
option: Optional[AnnotationSpecsOption]
""""""
metadata: Dict[str, str]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """
@dataclass
class LabelV3(DataClassJsonMixin):
""" """
label_id: str
"""ラベルID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
label_name: InternationalizationMessage
""""""
keybind: List[Keybind]
"""ショートカットキー"""
annotation_type: AnnotationType
""""""
field_values: Dict[str, AnnotationTypeFieldValue]
"""KeyがフィールドIdであるDictionaryです。 カスタムの[組織プラグイン](#operation/putOrganizationPlugin)で利用される[UserDefinedAnnotationTypeDefinition](#section/UserDefinedAnnotationTypeDefinition).`field_definitions`で定義されます。 """
additional_data_definitions: List[str]
"""ラベルに所属する属性のID"""
color: Color
""""""
metadata: Optional[Dict[str, str]]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """
@dataclass
class AnnotationSpecsV3(DataClassJsonMixin):
""" """
project_id: str
"""プロジェクトID。[値の制約についてはこちら。](#section/API-Convention/APIID) """
labels: List[LabelV3]
"""ラベル"""
additionals: List[AdditionalDataDefinitionV2]
"""属性"""
restrictions: List[AdditionalDataRestriction]
"""属性の制約"""
inspection_phrases: List[InspectionPhrase]
"""定型指摘"""
annotation_type_version: Optional[str]
"""アノテーション種別のバージョン。 拡張仕様プラグインで定義した値が転写されます。プロジェクトに拡張仕様プラグインが設定されていない場合は未指定です。 """
format_version: str
"""アノテーション仕様のフォーマットのバージョン"""
updated_datetime: Optional[str]
"""更新日時 """
option: Optional[AnnotationSpecsOption]
""""""
metadata: Dict[str, str]
"""ユーザーが自由に登録できるkey-value型のメタデータです。 """