Skip to content

Commit 220b875

Browse files
authored
dataclassをmypy通すために、DataClassJsonMixinを利用するようにする。 (#214)
* update sphinx * DataClassJsonMixin を利用する。 * version up
1 parent f5827eb commit 220b875

20 files changed

+223
-232
lines changed

annofabapi/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.38.8"
1+
__version__ = "0.38.9"

annofabapi/dataclass/annotation.py

Lines changed: 19 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from dataclasses import dataclass
1414
from typing import Any, Dict, List, NewType, Optional, Tuple, Union # pylint: disable=unused-import
1515

16-
from dataclasses_json import dataclass_json
16+
from dataclasses_json import DataClassJsonMixin
1717

1818
from annofabapi.models import (
1919
AdditionalDataDefinitionType,
@@ -29,9 +29,8 @@
2929
AdditionalDataValue = Dict[str, Any]
3030

3131

32-
@dataclass_json
3332
@dataclass
34-
class Point:
33+
class Point(DataClassJsonMixin):
3534
"""
3635
座標
3736
"""
@@ -43,18 +42,16 @@ class Point:
4342
""""""
4443

4544

46-
@dataclass_json
4745
@dataclass
48-
class FullAnnotationDataClassification:
46+
class FullAnnotationDataClassification(DataClassJsonMixin):
4947
""""""
5048

5149
type: str
5250
"""Classification"""
5351

5452

55-
@dataclass_json
5653
@dataclass
57-
class FullAnnotationDataSegmentation:
54+
class FullAnnotationDataSegmentation(DataClassJsonMixin):
5855
"""
5956
塗っていないところは rgba(0,0,0,0)、塗ったところは rgba(255,255,255,1) の PNGデータをBase64エンコードしたもの。
6057
"""
@@ -66,9 +63,8 @@ class FullAnnotationDataSegmentation:
6663
"""Segmentation"""
6764

6865

69-
@dataclass_json
7066
@dataclass
71-
class FullAnnotationDataSegmentationV2:
67+
class FullAnnotationDataSegmentationV2(DataClassJsonMixin):
7268
""""""
7369

7470
data_uri: str
@@ -78,9 +74,8 @@ class FullAnnotationDataSegmentationV2:
7874
"""SegmentationV2"""
7975

8076

81-
@dataclass_json
8277
@dataclass
83-
class FullAnnotationDataBoundingBox:
78+
class FullAnnotationDataBoundingBox(DataClassJsonMixin):
8479
"""
8580
annotation_type が bounding_boxの場合に、[左上頂点座標, 右下頂点座標]を {\"x\":int, \"y\":int} の形式で記述したもの。
8681
"""
@@ -95,9 +90,8 @@ class FullAnnotationDataBoundingBox:
9590
"""BoundingBox"""
9691

9792

98-
@dataclass_json
9993
@dataclass
100-
class FullAnnotationDataPoints:
94+
class FullAnnotationDataPoints(DataClassJsonMixin):
10195
"""
10296
頂点座標 {\"x\":int, \"y\":int} の配列。 * annotation_type が polygon/polyline の場合: ポリゴン/ポリラインを構成する頂点の配列。
10397
"""
@@ -109,9 +103,8 @@ class FullAnnotationDataPoints:
109103
"""Points"""
110104

111105

112-
@dataclass_json
113106
@dataclass
114-
class FullAnnotationDataSinglePoint:
107+
class FullAnnotationDataSinglePoint(DataClassJsonMixin):
115108
"""
116109
annotation_type が pointの場合。
117110
"""
@@ -123,9 +116,8 @@ class FullAnnotationDataSinglePoint:
123116
"""SinglePoint。"""
124117

125118

126-
@dataclass_json
127119
@dataclass
128-
class FullAnnotationDataRange:
120+
class FullAnnotationDataRange(DataClassJsonMixin):
129121
"""
130122
annotation_type が rangeの場合に、[開始時間, 終了時間]を {\"begin\":number, \"end\":number} の形式で記述したもの。開始時間・終了時間の単位は秒で、精度はミリ秒まで。
131123
"""
@@ -140,9 +132,8 @@ class FullAnnotationDataRange:
140132
"""Range"""
141133

142134

143-
@dataclass_json
144135
@dataclass
145-
class AdditionalData:
136+
class AdditionalData(DataClassJsonMixin):
146137
""""""
147138

148139
additional_data_definition_id: str
@@ -161,9 +152,8 @@ class AdditionalData:
161152
""""""
162153

163154

164-
@dataclass_json
165155
@dataclass
166-
class FullAnnotationAdditionalData:
156+
class FullAnnotationAdditionalData(DataClassJsonMixin):
167157
""""""
168158

169159
additional_data_definition_id: Optional[str]
@@ -179,9 +169,8 @@ class FullAnnotationAdditionalData:
179169
""""""
180170

181171

182-
@dataclass_json
183172
@dataclass
184-
class FullAnnotationDetail:
173+
class FullAnnotationDetail(DataClassJsonMixin):
185174
""""""
186175

187176
annotation_id: Optional[str]
@@ -209,9 +198,8 @@ class FullAnnotationDetail:
209198
""""""
210199

211200

212-
@dataclass_json
213201
@dataclass
214-
class FullAnnotation:
202+
class FullAnnotation(DataClassJsonMixin):
215203
""""""
216204

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

247235

248-
@dataclass_json
249236
@dataclass
250-
class SimpleAnnotationDetail:
237+
class SimpleAnnotationDetail(DataClassJsonMixin):
251238
""""""
252239

253240
label: str
@@ -263,9 +250,8 @@ class SimpleAnnotationDetail:
263250
"""キーに属性の名前、値に各属性の値が入った辞書構造です。 """
264251

265252

266-
@dataclass_json
267253
@dataclass
268-
class SimpleAnnotation:
254+
class SimpleAnnotation(DataClassJsonMixin):
269255
""""""
270256

271257
annotation_format_version: str
@@ -299,9 +285,8 @@ class SimpleAnnotation:
299285
"""更新日時。アノテーションが一つもない場合(教師付作業が未着手のときなど)は、未指定。"""
300286

301287

302-
@dataclass_json
303288
@dataclass
304-
class SingleAnnotationDetail:
289+
class SingleAnnotationDetail(DataClassJsonMixin):
305290
""""""
306291

307292
annotation_id: str
@@ -335,9 +320,8 @@ class SingleAnnotationDetail:
335320
""""""
336321

337322

338-
@dataclass_json
339323
@dataclass
340-
class SingleAnnotation:
324+
class SingleAnnotation(DataClassJsonMixin):
341325
""""""
342326

343327
project_id: str
@@ -356,9 +340,8 @@ class SingleAnnotation:
356340
""""""
357341

358342

359-
@dataclass_json
360343
@dataclass
361-
class AnnotationDetail:
344+
class AnnotationDetail(DataClassJsonMixin):
362345
""""""
363346

364347
annotation_id: str
@@ -398,9 +381,8 @@ class AnnotationDetail:
398381
""""""
399382

400383

401-
@dataclass_json
402384
@dataclass
403-
class Annotation:
385+
class Annotation(DataClassJsonMixin):
404386
""""""
405387

406388
project_id: str

0 commit comments

Comments
 (0)